Fixed /ATTR allow off to actually work.
authorPekka Riikonen <priikone@silcnet.org>
Fri, 18 Oct 2002 08:07:39 +0000 (08:07 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Fri, 18 Oct 2002 08:07:39 +0000 (08:07 +0000)
CHANGES
apps/irssi/src/silc/core/silc-queries.c

diff --git a/CHANGES b/CHANGES
index 96a78a9a66a2e6eaaabc7d08e9989f5259c3d970..aba27ff46ef439fbc8a93cfb569a699bf091064f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,9 @@ Fri Oct 18 10:51:04 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
          was processing wrong callback context.  Affected files
          are lib/silcclient/client.c and protocol.c.
 
+       * Fixed the /ATTR allow off to actually work.  Affected file
+         is irssi/src/silc/core/silc-queries.c.
+
 Thu Oct 17 23:45:12 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 
        * Fixed string formatting crashbug in lib/silccore/silcattrs.c.
index 65caad74c499a8883b467d4feea5af5940d60fd5..3b913ce91d03b6178f2ccb0703ff7a0a6839dd6e 100644 (file)
@@ -261,6 +261,33 @@ void silc_query_attributes_default(SilcClient client,
   memset(&pk, 0, sizeof(pk));
   memset(&vcard, 0, sizeof(vcard));
 
+  allowed = settings_get_bool("attr_allow");
+  if (!allowed) {
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_USER_INFO, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_SERVICE, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_STATUS_MOOD, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_STATUS_FREETEXT, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_STATUS_MESSAGE, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_PREFERRED_LANGUAGE, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_PREFERRED_CONTACT, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_TIMEZONE, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_GEOLOCATION, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_DEVICE_INFO, NULL);
+    silc_client_attribute_del(silc_client, conn,
+                             SILC_ATTRIBUTE_USER_PUBLIC_KEY, NULL);
+    return;
+  }
+
   sv = settings_get_str("attr_vcard");
   if (sv && *sv) {
     /* Put USER_INFO */