added mode +a access check
authorpk910 <philipp@zoelle1.de>
Fri, 8 Jul 2011 15:42:10 +0000 (17:42 +0200)
committerpk910 <philipp@zoelle1.de>
Fri, 8 Jul 2011 15:45:50 +0000 (17:45 +0200)
src/proto-p10.c

index f8817be1266bd5d12f9dbe256b1467085807a3d5..b4a0707d3718d801c2b0d9c62064f5f18a8fdee1 100644 (file)
@@ -1776,6 +1776,30 @@ static CMD_FUNC(cmd_relay)
              sprintf(tmp,"%s LR\n",argv[3]);
              irc_relay(tmp);
             }
+        } else if(strcmp("JA", argv[2]) == 0) {
+            struct userData *uData;
+            struct chanNode *cn;
+            struct userNode *user;
+            char tmp[MAXLEN];
+            cn = GetChannel(argv[4]);
+            if (!cn) return 0;
+            if (!(user = GetUserN(argv[3]))) return 0;
+            if(!cn->channel_info) {
+                //channel not registered
+                sprintf(tmp,"%s JAA %s %s\n",argv[3],cn->name,argv[6]);
+            } else if((uData = GetChannelUser(cn->channel_info, user->handle_info))) {
+                if(uData->access >= atoi(argv[5])) {
+                    //we can join
+                    sprintf(tmp,"%s JAA %s %s\n",argv[3],cn->name,argv[6]);
+                } else {
+                    //access too low
+                    sprintf(tmp,"%s JAR %s %i %i\n",argv[3],cn->name,uData->access,uData->access);
+                }
+            } else {
+                //0 access
+                sprintf(tmp,"%s JAR %s %s %s\n",argv[3],cn->name,"0","0");
+            }
+            irc_relay(tmp);
         }
     }
     return 1;