$gate: patch-src_core_xep_version_c,v 1.1 2010/04/04 16:58:12 dukzcry Exp $ Send arch info on version os info request in addition to os name --- src/core/xep/version.c.orig Fri Apr 3 15:21:35 2009 +++ src/core/xep/version.c Sun Apr 4 20:48:27 2010 @@ -44,6 +44,8 @@ send_version(XMPP_SERVER_REC *server, const char *dest LmMessageNode *node; struct utsname u; char *recoded; + unsigned char *sysdescr; + size_t sysname_len; recoded = xmpp_recode_out(dest); lmsg = lm_message_new_with_sub_type(recoded, LM_MESSAGE_TYPE_IQ, @@ -58,8 +60,18 @@ send_version(XMPP_SERVER_REC *server, const char *dest IRSSI_XMPP_PACKAGE); lm_message_node_add_child(node, "version", IRSSI_XMPP_VERSION); - if (uname(&u) == 0) - lm_message_node_add_child(node, "os", u.sysname); + if (uname(&u) == 0) { + sysname_len = strlen(u.sysname); + sysdescr = g_malloc(sysname_len + strlen(u.machine) + 2); + + memmove(sysdescr, u.sysname, sysname_len); + sysdescr[sysname_len] = '/'; + memmove(sysdescr + sysname_len + 1, u.machine, strlen(u.machine)); + sysdescr[sysname_len + strlen(u.machine) + 1] = '\0'; + lm_message_node_add_child(node, "os", sysdescr); + g_free(sysdescr); + sysdescr = NULL; + } } signal_emit("xmpp send iq", 2, server, lmsg); lm_message_unref(lmsg);