examples/test-lm.c
changeset 167 7bcccfa734e2
parent 140 103227122f45
child 482 08a9810b415b
--- a/examples/test-lm.c	Tue Aug 22 17:57:59 2006 +0000
+++ b/examples/test-lm.c	Tue Aug 22 23:33:06 2006 +0000
@@ -55,6 +55,21 @@
   { 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 @@
 		    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 @@
 		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,