Index: /climm/include/util_opts.h =================================================================== --- /climm/include/util_opts.h (revision 2831) +++ /climm/include/util_opts.h (revision 2838) @@ -87,4 +87,6 @@ #define CO_SCRIPT (COF_BOOL | CO_GLOBAL | 0x000104UL) /* open a scripting connection */ #define CO_S5USE (COF_BOOL | CO_SERVER | 0x000404UL) /* use Socks 5 proxy */ +#define CO_TAGRESSOURCE (COF_BOOL | CO_SERVER | 0x001004UL) /* append random string to ressource to make unique */ +#define CO_AUTOTAGRES (COF_BOOL | CO_SERVER | 0x004004UL) /* append random string to ressource to make unique (automatically set) */ #define CO_LOCAL (COF_BOOL | CO_CONTACT | 0x000105UL) /* local contact (do not put on roster, don't get/send status) */ Index: /climm/src/xmpp_base.c =================================================================== --- /climm/src/xmpp_base.c (revision 2833) +++ /climm/src/xmpp_base.c (revision 2838) @@ -1116,4 +1116,6 @@ return IKS_NET_DROPPED; case IKS_NODE_ERROR: + if (!strcmp (iks_name (iks_first_tag (node)), "conflict")) + OptSetVal (&serv->copts, CO_AUTOTAGRES, 1); XmppStreamError (serv, s_sprintf ("stream error [%s]", iks_name (iks_first_tag (node)))); if (node) iks_delete (node); @@ -1244,5 +1246,9 @@ conn->serv->xmpp_id = iks_id_new (iks_parser_stack (prs), conn->serv->screen); if (!conn->serv->xmpp_id->resource) - conn->serv->xmpp_id = iks_id_new (iks_parser_stack (prs), s_sprintf ("%s@%s/%s", conn->serv->xmpp_id->user, conn->serv->xmpp_id->server, "iks")); + conn->serv->xmpp_id = iks_id_new (iks_parser_stack (prs), + s_sprintf ("%s@%s/climm", conn->serv->xmpp_id->user, conn->serv->xmpp_id->server)); + if (ConnectionPrefVal (conn->serv, CO_TAGRESSOURCE) || ConnectionPrefVal (conn->serv, CO_AUTOTAGRES)) + conn->serv->xmpp_id = iks_id_new (iks_parser_stack (prs), + s_sprintf ("%s/%s%04X%04X", conn->serv->xmpp_id->partial, conn->serv->xmpp_id->resource, rand() % 0xffff, rand() % 0xffff)); iks_set_log_hook (prs, XmppSaveLog); } Index: /climm/src/util_opts.c =================================================================== --- /climm/src/util_opts.c (revision 2637) +++ /climm/src/util_opts.c (revision 2838) @@ -68,4 +68,5 @@ { "dcauth", CO_DCAUTH }, { "dccont", CO_DCCONT }, + { "tagressource", CO_TAGRESSOURCE }, { "revealtime", CO_REVEALTIME }, { "autoaway", CO_AUTOAWAY },