[BACK]Return to patch-src_core_xep_version_c CVS log [TXT][DIR] Up to [local] / ports / net / irssi-xmpp / patches

File: [local] / ports / net / irssi-xmpp / patches / Attic / patch-src_core_xep_version_c (download)

Revision 1.1.1.1 (vendor branch), Thu Jun 3 05:45:46 2010 UTC (14 years ago) by yason
Branch: dukzcry
CVS Tags: import
Changes since 1.1: +0 -0 lines

import

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