Nouveau patch de la lib smack voir le lien http://blog.jayway.com/2008/11/21/give-back-my-xmpp-in-android/
authorPhilippe Lago <lago_p@epitech.net>
Wed, 11 Mar 2009 11:22:07 +0100
changeset 2 bd6a3c902f21
parent 1 e5e777c35cdf
child 3 8f33768df089
Nouveau patch de la lib smack voir le lien http://blog.jayway.com/2008/11/21/give-back-my-xmpp-in-android/
libs/smack-android-r1.diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libs/smack-android-r1.diff	Wed Mar 11 11:22:07 2009 +0100
@@ -0,0 +1,407 @@
+Index: org/jivesoftware/smack/XMPPConnection.java
+===================================================================
+--- org/jivesoftware/smack/XMPPConnection.java	(revision 10869)
++++ org/jivesoftware/smack/XMPPConnection.java	(working copy)
+@@ -1082,7 +1082,7 @@
+                     catch (Exception ex) {
+                         try {
+                             debuggerClass =
+-                                    Class.forName("org.jivesoftware.smack.debugger.LiteDebugger");
++                                    Class.forName("org.jivesoftware.smack.debugger.ConsoleDebugger");
+                         }
+                         catch (Exception ex2) {
+                             ex2.printStackTrace();
+Index: org/jivesoftware/smack/sasl/SASLMechanism.java
+===================================================================
+--- org/jivesoftware/smack/sasl/SASLMechanism.java	(revision 10869)
++++ org/jivesoftware/smack/sasl/SASLMechanism.java	(working copy)
+@@ -20,24 +20,18 @@
+ 
+ package org.jivesoftware.smack.sasl;
+ 
+-import org.jivesoftware.smack.XMPPException;
+-import org.jivesoftware.smack.SASLAuthentication;
+-import org.jivesoftware.smack.util.Base64;
+-
+ import java.io.IOException;
+-import java.util.Map;
+ import java.util.HashMap;
++import java.util.Map;
++
++import javax.security.auth.callback.Callback;
+ import javax.security.auth.callback.CallbackHandler;
+ import javax.security.auth.callback.UnsupportedCallbackException;
+-import javax.security.auth.callback.Callback;
+-import javax.security.auth.callback.NameCallback;
+-import javax.security.auth.callback.PasswordCallback;
+-import javax.security.sasl.RealmCallback;
+-import javax.security.sasl.RealmChoiceCallback;
+-import javax.security.sasl.Sasl;
+-import javax.security.sasl.SaslClient;
+-import javax.security.sasl.SaslException;
+ 
++import org.jivesoftware.smack.SASLAuthentication;
++import org.jivesoftware.smack.XMPPException;
++import org.jivesoftware.smack.util.Base64;
++
+ /**
+  * Base class for SASL mechanisms. Subclasses must implement these methods:
+  * <ul>
+@@ -56,7 +50,7 @@
+ public abstract class SASLMechanism implements CallbackHandler {
+ 
+     private SASLAuthentication saslAuthentication;
+-    protected SaslClient sc;
++    //protected SaslClient sc;
+     protected String authenticationId;
+     protected String password;
+     protected String hostname;
+@@ -88,7 +82,7 @@
+ 
+         String[] mechanisms = { getName() };
+         Map<String,String> props = new HashMap<String,String>();
+-        sc = Sasl.createSaslClient(mechanisms, username, "xmpp", host, props, this);
++        //sc = Sasl.createSaslClient(mechanisms, username, "xmpp", host, props, this);
+         authenticate();
+     }
+ 
+@@ -105,7 +99,7 @@
+     public void authenticate(String username, String host, CallbackHandler cbh) throws IOException, XMPPException {
+         String[] mechanisms = { getName() };
+         Map<String,String> props = new HashMap<String,String>();
+-        sc = Sasl.createSaslClient(mechanisms, username, "xmpp", host, props, cbh);
++        //sc = Sasl.createSaslClient(mechanisms, username, "xmpp", host, props, cbh);
+         authenticate();
+     }
+ 
+@@ -113,17 +107,17 @@
+         StringBuilder stanza = new StringBuilder();
+         stanza.append("<auth mechanism=\"").append(getName());
+         stanza.append("\" xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\">");
+-        try {
+-            if(sc.hasInitialResponse()) {
+-                byte[] response = sc.evaluateChallenge(new byte[0]);
+-                String authenticationText = Base64.encodeBytes(response,Base64.DONT_BREAK_LINES);
+-                if(authenticationText != null && !authenticationText.equals("")) {                 
+-                    stanza.append(authenticationText);
+-                }
+-            }
+-        } catch (SaslException e) {
+-            throw new XMPPException("SASL authentication failed", e);
+-        }
++//        try {
++//            if(sc.hasInitialResponse()) {
++//                byte[] response = sc.evaluateChallenge(new byte[0]);
++//                String authenticationText = Base64.encodeBytes(response,Base64.DONT_BREAK_LINES);
++//                if(authenticationText != null && !authenticationText.equals("")) {                 
++//                    stanza.append(authenticationText);
++//                }
++//            }
++//        } catch (SaslException e) {
++//            throw new XMPPException("SASL authentication failed", e);
++//        }
+         stanza.append("</auth>");
+ 
+         // Send the authentication to the server
+@@ -142,12 +136,12 @@
+         // Build the challenge response stanza encoding the response text
+         StringBuilder stanza = new StringBuilder();
+ 
+-        byte response[];
+-        if(challenge != null) {
+-            response = sc.evaluateChallenge(Base64.decode(challenge));
+-        } else {
+-            response = sc.evaluateChallenge(null);
+-        }
++        byte response[] = null;
++//        if(challenge != null) {
++//            response = sc.evaluateChallenge(Base64.decode(challenge));
++//        } else {
++//            response = sc.evaluateChallenge(null);
++//        }
+ 
+         String authenticationText = Base64.encodeBytes(response,Base64.DONT_BREAK_LINES);
+         if(authenticationText.equals("")) {
+@@ -179,21 +173,21 @@
+      */
+     public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+         for (int i = 0; i < callbacks.length; i++) {
+-            if (callbacks[i] instanceof NameCallback) {
+-                NameCallback ncb = (NameCallback)callbacks[i];
+-                ncb.setName(authenticationId);
+-            } else if(callbacks[i] instanceof PasswordCallback) {
+-                PasswordCallback pcb = (PasswordCallback)callbacks[i];
+-                pcb.setPassword(password.toCharArray());
+-            } else if(callbacks[i] instanceof RealmCallback) {
+-                RealmCallback rcb = (RealmCallback)callbacks[i];
+-                rcb.setText(hostname);
+-            } else if(callbacks[i] instanceof RealmChoiceCallback){
+-                //unused
+-                //RealmChoiceCallback rccb = (RealmChoiceCallback)callbacks[i];
+-            } else {
++//            if (callbacks[i] instanceof NameCallback) {
++//                NameCallback ncb = (NameCallback)callbacks[i];
++//                ncb.setName(authenticationId);
++//            } else if(callbacks[i] instanceof PasswordCallback) {
++//                PasswordCallback pcb = (PasswordCallback)callbacks[i];
++//                pcb.setPassword(password.toCharArray());
++//            } else if(callbacks[i] instanceof RealmCallback) {
++//                RealmCallback rcb = (RealmCallback)callbacks[i];
++//                rcb.setText(hostname);
++//            } else if(callbacks[i] instanceof RealmChoiceCallback){
++//                //unused
++//                //RealmChoiceCallback rccb = (RealmChoiceCallback)callbacks[i];
++//            } else {
+                throw new UnsupportedCallbackException(callbacks[i]);
+-            }
++            //}
+          }
+     }
+ }
+Index: org/jivesoftware/smack/sasl/SASLGSSAPIMechanism.java
+===================================================================
+--- org/jivesoftware/smack/sasl/SASLGSSAPIMechanism.java	(revision 10869)
++++ org/jivesoftware/smack/sasl/SASLGSSAPIMechanism.java	(working copy)
+@@ -25,8 +25,6 @@
+ import java.io.IOException;
+ import java.util.Map;
+ import java.util.HashMap;
+-import javax.security.sasl.Sasl;
+-import javax.security.sasl.SaslClient;
+ import javax.security.auth.callback.CallbackHandler;
+ 
+ /**
+@@ -62,8 +60,8 @@
+     public void authenticate(String username, String host, CallbackHandler cbh) throws IOException, XMPPException {
+         String[] mechanisms = { getName() };
+         Map props = new HashMap();
+-        props.put(Sasl.SERVER_AUTH,"TRUE");
+-        sc = Sasl.createSaslClient(mechanisms, username, "xmpp", host, props, cbh);
++        //props.put(Sasl.SERVER_AUTH,"TRUE");
++        //sc = Sasl.createSaslClient(mechanisms, username, "xmpp", host, props, cbh);
+         authenticate();
+     }
+ 
+@@ -81,8 +79,8 @@
+     public void authenticate(String username, String host, String password) throws IOException, XMPPException {
+         String[] mechanisms = { getName() };
+         Map props = new HashMap();
+-        props.put(Sasl.SERVER_AUTH,"TRUE");
+-        sc = Sasl.createSaslClient(mechanisms, username, "xmpp", host, props, this);
++        //props.put(Sasl.SERVER_AUTH,"TRUE");
++        //sc = Sasl.createSaslClient(mechanisms, username, "xmpp", host, props, this);
+         authenticate();
+     }
+ 
+Index: org/jivesoftware/smack/ConnectionConfiguration.java
+===================================================================
+--- org/jivesoftware/smack/ConnectionConfiguration.java	(revision 10869)
++++ org/jivesoftware/smack/ConnectionConfiguration.java	(working copy)
+@@ -57,13 +57,13 @@
+ 
+     private boolean compressionEnabled = false;
+ 
+-    private boolean saslAuthenticationEnabled = true;
++    private boolean saslAuthenticationEnabled = false;
+     /**
+      * Used to get information from the user
+      */
+     private CallbackHandler callbackHandler;
+ 
+-    private boolean debuggerEnabled = XMPPConnection.DEBUG_ENABLED;
++    private boolean debuggerEnabled = true;//XMPPConnection.DEBUG_ENABLED;
+ 
+     // Flag that indicates if a reconnection should be attempted when abruptly disconnected
+     private boolean reconnectionAllowed = true;
+@@ -517,7 +517,7 @@
+      *        logging into the server.
+      */
+     public void setSASLAuthenticationEnabled(boolean saslAuthenticationEnabled) {
+-        this.saslAuthenticationEnabled = saslAuthenticationEnabled;
++        //this.saslAuthenticationEnabled = saslAuthenticationEnabled;
+     }
+ 
+     /**
+Index: org/jivesoftware/smack/util/DNSUtil.java
+===================================================================
+--- org/jivesoftware/smack/util/DNSUtil.java	(revision 10869)
++++ org/jivesoftware/smack/util/DNSUtil.java	(working copy)
+@@ -19,9 +19,6 @@
+ 
+ package org.jivesoftware.smack.util;
+ 
+-import javax.naming.directory.Attributes;
+-import javax.naming.directory.DirContext;
+-import javax.naming.directory.InitialDirContext;
+ import java.util.Hashtable;
+ import java.util.Map;
+ 
+@@ -38,13 +35,13 @@
+      */
+     private static Map cache = new Cache(100, 1000*60*10);
+ 
+-    private static DirContext context;
++    //private static DirContext context;
+