# HG changeset patch # User Mikael Berthe # Date 1367141113 -7200 # Node ID 69699ba3010f96bc648134074112c882b732b033 # Parent c09fc3834c69b14f5cb2f4c96d7fafb3060d4b05 Add 'iq_version_hide', 'iq_version_hide_version' diff -r c09fc3834c69 -r 69699ba3010f mcabber/mcabber/xmpp_iq.c --- 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; diff -r c09fc3834c69 -r 69699ba3010f mcabber/mcabberrc.example --- 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