* examples/lm-send-async.c:
authormr <mr>
Tue, 22 Aug 2006 23:33:06 +0000 (23:33 +0000)
committermr <mr>
Tue, 22 Aug 2006 23:33:06 +0000 (23:33 +0000)
* examples/lm-send-sync.c:
* examples/test-lm.c: Make use of lm_connection_set_jid() and make
sure we only use the part before the '@' for the username when
authenticating, this means that these test clients will now work
with GoogleTalk.

ChangeLog
examples/lm-send-async.c
examples/lm-send-sync.c
examples/test-lm.c

index 9aea908cc354f540b2194edbadc6f69a227809f7..a872db7145d8282032d499e9dce043aa8c653c18 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2006-08-23  Martyn Russell  <martyn@imendio.com>
+
+       * examples/lm-send-async.c:
+       * examples/lm-send-sync.c: 
+       * examples/test-lm.c: Make use of lm_connection_set_jid() and make
+       sure we only use the part before the '@' for the username when
+       authenticating, this means that these test clients will now work
+       with GoogleTalk.
+
 2006-08-22  Mikael Hallendal  <micke@imendio.com>
 
        * loudmouth/lm-message-node.c: (lm_message_node_to_string):
index a256f13acf98da9fdd9d1721f35b81d31b654383..97c7bef8d4b6bd308807187e6e74019e47c003d7 100644 (file)
@@ -66,6 +66,21 @@ static GOptionEntry entries[] =
   { NULL }
 };
 
+static gchar *
+get_part_name (const gchar *username)
+{
+       const gchar *ch;
+
+       g_return_val_if_fail (username != NULL, NULL);
+
+       ch = strchr (username, '@');
+       if (!ch) {
+               return NULL;
+       }
+
+       return g_strndup (username, ch - username);
+}
+
 static void
 print_finger (const char   *fpr,
              unsigned int  size)
@@ -159,15 +174,21 @@ connection_open_cb (LmConnection *connection,
                    gpointer      user_data)
 {
        if (success) {
-               if (!lm_connection_authenticate (connection, username, 
+               gchar *user;
+
+               user = get_part_name (username);
+               if (!lm_connection_authenticate (connection, user, 
                                                 password, resource,
                                                 connection_auth_cb, 
                                                 NULL, FALSE,  NULL)) {
+                       g_free (user);
                        g_printerr ("LmSendAsync: Failed to send authentication\n");
                        g_main_loop_quit (main_loop);
                        return;
                }
-               
+
+               g_free (user);
+
                g_print ("LmSendAsync: Sent authentication message\n");
        } else {
                g_printerr ("LmSendAsync: Failed to connect\n");
@@ -192,9 +213,15 @@ main (int argc, char **argv)
                return EXIT_FAILURE;
        }
 
+       if (username && strchr (username, '@') == NULL) {
+               g_printerr ("LmSendAsync: Username must have an '@' included\n");
+               return EXIT_FAILURE;
+       }
+
        main_context = g_main_context_new ();
         connection = lm_connection_new_with_context (server, main_context);
        lm_connection_set_port (connection, port);
+       lm_connection_set_jid (connection, username);
 
        if (fingerprint) {
                LmSSL *ssl;
index 2b0163e61ac671e044401cfd7688c9f5328157da..b0dc221662613b0c5f3fe4aa522493459a83ce89 100644 (file)
@@ -63,6 +63,21 @@ static GOptionEntry entries[] =
   { NULL }
 };
 
+static gchar *
+get_part_name (const gchar *username)
+{
+       const gchar *ch;
+
+       g_return_val_if_fail (username != NULL, NULL);
+
+       ch = strchr (username, '@');
+       if (!ch) {
+               return NULL;
+       }
+
+       return g_strndup (username, ch - username);
+}
+
 static void
 print_finger (const char   *fpr,
              unsigned int  size)
@@ -125,6 +140,7 @@ main (int argc, char **argv)
        GError         *error = NULL;
         LmConnection   *connection;
        LmMessage      *m;
+       gchar          *user;
 
        context = g_option_context_new ("- test send message synchronously");
        g_option_context_add_main_entries (context, entries, NULL);
@@ -136,8 +152,14 @@ main (int argc, char **argv)
                return EXIT_FAILURE;
        }
 
+       if (username && strchr (username, '@') == NULL) {
+               g_printerr ("LmSendSync: Username must have an '@' included\n");
+               return EXIT_FAILURE;
+       }
+
         connection = lm_connection_new (server);
        lm_connection_set_port (connection, port);
+       lm_connection_set_jid (connection, username);
 
        if (fingerprint) {
                LmSSL *ssl;
@@ -166,12 +188,15 @@ main (int argc, char **argv)
                return EXIT_FAILURE;
         }
 
+       user = get_part_name (username);
        if (!lm_connection_authenticate_and_block (connection,
-                                                  username, password, resource,
+                                                  user, password, resource,
                                                   &error)) {
+               g_free (user);
                g_printerr ("LmSendSync: Failed to authenticate: %s\n", error->message);
                return EXIT_FAILURE;
        }
+       g_free (user);
        
        m = lm_message_new (recipient, LM_MESSAGE_TYPE_MESSAGE);
        lm_message_node_add_child (m->node, "body", message);
index 1ec2d7547510151070462c327fd7cb6c5beb2963..fc1097a08d72d8175c6613aae948c6d90f364415 100644 (file)
@@ -55,6 +55,21 @@ static GOptionEntry entries[] =
   { NULL }
 };
 
+static gchar *
+get_part_name (const gchar *username)
+{
+       const gchar *ch;
+
+       g_return_val_if_fail (username != NULL, NULL);
+
+       ch = strchr (username, '@');
+       if (!ch) {
+               return NULL;
+       }
+
+       return g_strndup (username, ch - username);
+}
+
 static void
 print_finger (const char   *fpr,
              unsigned int  size)
@@ -141,10 +156,14 @@ connection_open_cb (LmConnection *connection,
                    gpointer      user_data)
 {
        if (success) {
-               lm_connection_authenticate (connection, username, 
+               gchar *user;
+
+               user = get_part_name (username);
+               lm_connection_authenticate (connection, user, 
                                            password, resource,
                                            connection_auth_cb, 
                                            NULL, FALSE,  NULL);
+               g_free (user);
                
                g_print ("TestLM: Sent authentication message\n");
        } else {
@@ -218,8 +237,14 @@ main (int argc, char **argv)
                return EXIT_FAILURE;
        }
 
+       if (username && strchr (username, '@') == NULL) {
+               g_printerr ("TestLM: Username must have an '@' included\n");
+               return EXIT_FAILURE;
+       }
+
         connection = lm_connection_new (server);
        lm_connection_set_port (connection, port);
+       lm_connection_set_jid (connection, username);
 
        handler = lm_message_handler_new (handle_messages, NULL, NULL);
        lm_connection_register_message_handler (connection, handler,