$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);