changeset 2066:69699ba3010f

Add 'iq_version_hide', 'iq_version_hide_version'
author Mikael Berthe <mikael@lilotux.net>
date Sun, 28 Apr 2013 11:25:13 +0200
parents c09fc3834c69
children 79659eb4f66f
files mcabber/mcabber/xmpp_iq.c mcabber/mcabberrc.example
diffstat 2 files changed, 23 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/mcabber/xmpp_iq.c	Sun Apr 28 11:10:04 2013 +0200
+++ b/mcabber/mcabber/xmpp_iq.c	Sun Apr 28 11:25:13 2013 +0200
@@ -702,18 +702,15 @@
 {
   LmMessage *r;
   LmMessageNode *query;
-  char *os = NULL;
-  char *ver = mcabber_version();
 
   if (!settings_opt_get_int("iq_hide_requests")) {
     scr_LogPrint(LPRINT_LOGNORM, "Received an IQ version request from <%s>",
                  lm_message_get_from(m));
   }
-  if (!settings_opt_get_int("iq_version_hide_os")) {
-    struct utsname osinfo;
-    uname(&osinfo);
-    os = g_strdup_printf("%s %s %s", osinfo.sysname, osinfo.release,
-                         osinfo.machine);
+
+  if (settings_opt_get_int("iq_version_hide")) {
+    send_iq_error(c, m, XMPP_ERROR_SERVICE_UNAVAILABLE);
+    return LM_HANDLER_RESULT_REMOVE_MESSAGE;
   }
 
   r = lm_message_new_iq_from_query(m, LM_MESSAGE_SUB_TYPE_RESULT);
@@ -722,13 +719,25 @@
   lm_message_node_set_attribute(query, "xmlns", NS_VERSION);
 
   lm_message_node_add_child(query, "name", PACKAGE_NAME);
-  lm_message_node_add_child(query, "version", ver);
-  if (os) {
+
+  // MCabber version
+  if (!settings_opt_get_int("iq_version_hide_version")) {
+    char *ver = mcabber_version();
+    lm_message_node_add_child(query, "version", ver);
+    g_free(ver);
+  }
+
+  // OS details
+  if (!settings_opt_get_int("iq_version_hide_os")) {
+    char *os;
+    struct utsname osinfo;
+    uname(&osinfo);
+    os = g_strdup_printf("%s %s %s", osinfo.sysname, osinfo.release,
+                         osinfo.machine);
     lm_message_node_add_child(query, "os", os);
     g_free(os);
   }
 
-  g_free(ver);
   lm_connection_send(c, r, NULL);
   lm_message_unref(r);
   return LM_HANDLER_RESULT_REMOVE_MESSAGE;
--- a/mcabber/mcabberrc.example	Sun Apr 28 11:10:04 2013 +0200
+++ b/mcabber/mcabberrc.example	Sun Apr 28 11:25:13 2013 +0200
@@ -186,6 +186,10 @@
 # your OS version.
 #set iq_version_hide_os = 0
 #
+# Set iq_version_hide_version to 1 if you do not want to allow people to
+# retrieve your mcabber version.
+#set iq_version_hide_version = 0
+#
 # Set iq_version_hide_time to 1 if you do not want to allow people to retrieve
 # your OS time.
 #set iq_version_hide_time = 0