]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - modules/core/m_metadata.c
Add some ircd-seven love to CREDITS.
[irc/rqf/shadowircd.git] / modules / core / m_metadata.c
index 889bd88dcf1a02ea56fb9c35f84cc4d6e1d72370..77fe0fe766d07e17a1458a53d4080bf805fe6b7e 100644 (file)
@@ -17,7 +17,7 @@
 #include "whowas.h"
 #include "monitor.h"
 
-void me_metadata(struct Client *, struct Client *, int, const char **);
+static int me_metadata(struct Client *, struct Client *, int, const char **);
 
 struct Message metadata_msgtab = {
        "METADATA", 0, 0, 0, MFLG_SLOW,
@@ -30,19 +30,36 @@ mapi_clist_av1 metadata_clist[] = {
 
 DECLARE_MODULE_AV1(metadata, NULL, NULL, metadata_clist, NULL, NULL, "$Revision$");
 
-void
+static int
 me_metadata(struct Client *client_p, struct Client *source_p, int parc, const char *parv[])
 {
-       struct Client *target_p;
+       if(parv[2][0] == '#')
+       {
+               struct Channel *chptr;
 
-       if((target_p = find_client(parv[2])) == NULL)
-               return;
+               if((chptr = find_channel(parv[2])) == NULL)
+                       return 0;
 
-       if(!target_p->user)
-               return;
+               if(!strcmp(parv[1], "ADD") && parv[4] != NULL)
+                       channel_metadata_add(chptr, parv[3], parv[4], 0);
+               if(!strcmp(parv[1], "DELETE") && parv[3] != NULL)
+                       channel_metadata_delete(chptr, parv[3], 0);
+       }
 
-       if(!strcmp(parv[1], "ADD") && parv[4] != NULL)
-               user_metadata_add(target_p, parv[3], parv[4], 0);
-       if(!strcmp(parv[1], "DELETE") && parv[3] != NULL)
-               user_metadata_delete(target_p, parv[3], 0);
-}
\ No newline at end of file
+       else
+       {
+               struct Client *target_p;
+
+               if((target_p = find_id(parv[2])) == NULL)
+                       return 0;
+
+               if(!target_p->user)
+                       return 0;
+
+               if(!strcmp(parv[1], "ADD") && parv[4] != NULL)
+                       user_metadata_add(target_p, parv[3], parv[4], 0);
+               if(!strcmp(parv[1], "DELETE") && parv[3] != NULL)
+                       user_metadata_delete(target_p, parv[3], 0);
+       }
+       return 0;
+}