]> jfr.im git - irc/rqf/shadowircd.git/commitdiff
Add new constants for presence key/value lengths
authorJilles Tjoelker <redacted>
Wed, 3 Jun 2009 21:38:07 +0000 (23:38 +0200)
committerJilles Tjoelker <redacted>
Wed, 3 Jun 2009 21:38:07 +0000 (23:38 +0200)
instead of overloading NICKLEN/TOPICLEN.

include/client.h
include/ircd_defs.h
src/client.c

index 8f370906898e23090290d03761c3ec738c3043c8..26809f3d8dcf7e38a1321286ec4b1a7fa1d0ab89 100644 (file)
@@ -121,8 +121,8 @@ struct ZipStats
 
 struct MetadataEntry
 {
-       char key[NICKLEN+1];
-       char value[TOPICLEN];
+       char key[METADATAKEYLEN];
+       char value[METADATAVALUELEN];
 };
 
 struct Client
index 071c92f0f50c94259d6b71590e1f778688cf0db2..cb26b953d5324e837167c081b494828d1c44e03f 100644 (file)
 #define BANREASONLEN   390     /* kline/dline */
 #define AWAYLEN                TOPICLEN
 #define KILLLEN         200    /* with Killed (nick ()) added this should fit in quit */
+#define METADATAKEYLEN 31
+/* :012345678901234567890123456789012345678901234567890123456789123 792 * 012345678901234567890123456789 012345678901234567890123456789 :
+ * takes at most 137 bytes
+ * :123456789 ENCAP * PRESENCE 012345678901234567890123456789 :
+ * takes at most 63 bytes
+ * */
+#define METADATAVALUELEN 300
 
 /* 23+1 for \0 */
 #define KEYLEN          24
index 32f950a26a44b7293376b6928428327395704c72..a395ec81c075d65d24c843bc6eb249337cb03f13 100644 (file)
@@ -1753,15 +1753,15 @@ set_metadata(struct Client *client_p, const char *key, const char *value)
                if (md == NULL)
                {
                        md = rb_bh_alloc(metadata_heap);
-                       rb_strlcpy(md->key, key, NICKLEN);
+                       rb_strlcpy(md->key, key, sizeof md->key);
                        irc_dictionary_add(client_p->user->metadata, md->key, md);
                }
                else if (!strcmp(md->key, key) && !strcmp(md->value, value))
                        return;
                else
-                       rb_strlcpy(md->key, key, NICKLEN);
+                       rb_strlcpy(md->key, key, sizeof md->key);
 
-               rb_strlcpy(md->value, value, TOPICLEN);
+               rb_strlcpy(md->value, value, sizeof md->value);
        }
 
        sendto_common_channels_local_with_capability(client_p, CLICAP_PRESENCE, form_str(RPL_METADATACHG), me.name, client_p->name, key, value);