From 65bd60eadb49fdd17d2f02210974e8b52dd8182c Mon Sep 17 00:00:00 2001 From: pk910 Date: Fri, 8 Jul 2011 17:42:10 +0200 Subject: [PATCH] added mode +a access check --- src/proto-p10.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/proto-p10.c b/src/proto-p10.c index f8817be..b4a0707 100644 --- a/src/proto-p10.c +++ b/src/proto-p10.c @@ -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; -- 2.20.1