X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fproto-p10.c;h=b4a0707d3718d801c2b0d9c62064f5f18a8fdee1;hb=65bd60eadb49fdd17d2f02210974e8b52dd8182c;hp=f8817be1266bd5d12f9dbe256b1467085807a3d5;hpb=7673eb2e6fcdd8685d2c29760f1215d8ecbb86a9;p=srvx.git 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;