--- res/res_jabber.c.orig 2010-11-06 11:29:55.000000000 +0100 +++ res/res_jabber.c 2010-11-07 20:49:02.000000000 +0100 @@ -403,7 +403,7 @@ static struct ast_flags globalflags = { AJI_AUTOREGISTER | AJI_AUTOACCEPT }; /*! \brief PubSub flags, initialized to default values */ -static struct ast_flags pubsubflags = { AJI_AUTOREGISTER }; +static struct ast_flags pubsubflags = { 0 }; /*! * \internal * \brief Deletes the aji_client data structure. @@ -3545,7 +3545,7 @@ iks *item = NULL; if (iks_has_children(pak->query)) { item = iks_first_tag(pak->query); - ast_verbose("Connection: %s\nNode name: %s\n", client->jid->partial, + ast_verbose("Connection %s: %s\nNode name: %s\n", client->name, client->jid->partial, iks_find_attrib(item, "node")); while ((item = iks_next_tag(item))) { ast_verbose("Node name: %s\n", iks_find_attrib(item, "node")); @@ -3569,16 +3569,16 @@ ast_cli_args *a) { struct aji_client *client; - const char *name = "asterisk"; + const char *name = NULL; const char *collection = NULL; switch (cmd) { case CLI_INIT: e->command = "jabber list nodes"; e->usage = - "Usage: jabber list nodes [name]\n" - " Lists nodes on PubSub server\n" - " as configured in jabber.conf.\n"; + "Usage: jabber list nodes [collection]\n" + " Lists the user's nodes on the respective connection\n" + " ([connection] as configured in jabber.conf.)\n"; return NULL; case CLI_GENERATE: return NULL; @@ -3613,13 +3613,13 @@ ast_cli_args *a) { struct aji_client *client; - const char *name = "asterisk"; + const char *name; switch (cmd) { case CLI_INIT: e->command = "jabber purge nodes"; e->usage = - "Usage: jabber purge nodes [name]\n" + "Usage: jabber purge nodes \n" " Purges nodes on PubSub server\n" " as configured in jabber.conf.\n"; return NULL; @@ -3627,11 +3627,11 @@ return NULL; } - if (a->argc > 5) { + if (a->argc != 5) { return CLI_SHOWUSAGE; - } else if (a->argc == 5) { - name = a->argv[3]; } + name = a->argv[3]; + if (!(client = ASTOBJ_CONTAINER_FIND(&clients, name))) { ast_cli(a->fd, "Unable to find client '%s'!\n", name); return CLI_FAILURE; @@ -3693,13 +3693,13 @@ ast_cli_args *a) { struct aji_client *client; - const char *name = "asterisk"; + const char *name; switch (cmd) { case CLI_INIT: e->command = "jabber delete node"; e->usage = - "Usage: jabber delete node [name]\n" + "Usage: jabber delete node \n" " Deletes a node on PubSub server\n" " as configured in jabber.conf.\n"; return NULL; @@ -3707,11 +3707,11 @@ return NULL; } - if (a->argc > 5) { + if (a->argc != 5) { return CLI_SHOWUSAGE; - } else if (a->argc == 5) { - name = a->argv[3]; } + name = a->argv[3]; + if (!(client = ASTOBJ_CONTAINER_FIND(&clients, name))) { ast_cli(a->fd, "Unable to find client '%s'!\n", name); return CLI_FAILURE; @@ -3839,14 +3839,14 @@ static char *aji_cli_create_collection(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) { struct aji_client *client; - const char *name = "asterisk"; - const char *collection_name = "test_collection"; + const char *name; + const char *collection_name; switch (cmd) { case CLI_INIT: e->command = "jabber create collection"; e->usage = - "Usage: jabber create collection [name] [node name]\n" + "Usage: jabber create collection \n" " Creates a PubSub collection node using the account\n" " as configured in jabber.conf.\n"; return NULL; @@ -3854,14 +3854,13 @@ return NULL; } - if (a->argc > 5) { + if (a->argc != 5) { return CLI_SHOWUSAGE; - } else if (a->argc == 5) { - name = a->argv[3]; - collection_name = a->argv[4]; } + name = a->argv[3]; + collection_name = a->argv[4]; - if (!(client = ASTOBJ_CONTAINER_FIND(&clients, name))) { + if (!(client = ASTOBJ_CONTAINER_FIND(&clients, name))) { ast_cli(a->fd, "Unable to find client '%s'!\n", name); return CLI_FAILURE; } @@ -3878,15 +3877,15 @@ static char *aji_cli_create_leafnode(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) { struct aji_client *client; - const char *name = "asterisk"; - const char *collection_name = "test_collection"; - const char *leaf_name = "test_leaf"; + const char *name; + const char *collection_name; + const char *leaf_name; switch (cmd) { case CLI_INIT: e->command = "jabber create leaf"; e->usage = - "Usage: jabber create leaf [name] [collection_name] [node name]\n" + "Usage: jabber create leaf \n" " Creates a PubSub leaf node using the account\n" " as configured in jabber.conf.\n"; return NULL; @@ -3894,13 +3893,12 @@ return NULL; } - if (a->argc > 6) { + if (a->argc != 6) { return CLI_SHOWUSAGE; - } else if (a->argc == 6) { - name = a->argv[3]; - collection_name = a->argv[4]; - leaf_name = a->argv[5]; } + name = a->argv[3]; + collection_name = a->argv[4]; + leaf_name = a->argv[5]; if (!(client = ASTOBJ_CONTAINER_FIND(&clients, name))) { ast_cli(a->fd, "Unable to find client '%s'!\n", name); @@ -4080,10 +4078,10 @@ switch (cmd) { case CLI_INIT: - e->command = "jabber show connected"; + e->command = "jabber show connections"; e->usage = - "Usage: jabber show connected\n" - " Shows state of clients and components\n"; + "Usage: jabber show connections\n" + " Shows state of client and component connections\n"; return NULL; case CLI_GENERATE: return NULL; @@ -4106,7 +4104,7 @@ default: status = "Unknown"; } - ast_cli(a->fd, " User: %s - %s\n", iterator->user, status); + ast_cli(a->fd, " [%s] %s - %s\n", iterator->name, iterator->user, status); ASTOBJ_UNLOCK(iterator); }); ast_cli(a->fd, "----\n"); @@ -4170,26 +4168,25 @@ { struct aji_client *client; struct aji_resource *resource; - const char *name = "asterisk"; + const char *name; struct aji_message *tmp; switch (cmd) { case CLI_INIT: e->command = "jabber test"; e->usage = - "Usage: jabber test [client]\n" + "Usage: jabber test \n" " Sends test message for debugging purposes. A specific client\n" - " as configured in jabber.conf can be optionally specified.\n"; + " as configured in jabber.conf must be specified.\n"; return NULL; case CLI_GENERATE: return NULL; } - if (a->argc > 3) { + if (a->argc != 3) { return CLI_SHOWUSAGE; - } else if (a->argc == 3) { - name = a->argv[2]; } + name = a->argv[2]; if (!(client = ASTOBJ_CONTAINER_FIND(&clients, name))) { ast_cli(a->fd, "Unable to find client '%s'!\n", name);