X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fopserv.c;h=d6aedf50ed7fe9ee83a46902ea13026ba93d8c60;hb=839ab9c7c30c63c0bb584da4ab6fe41f54f22ac4;hp=d445077b7a132b7fa325f41514af3172d531c8d6;hpb=437ee8606d0f6e8dcc238eb6882d0211df84b3ce;p=srvx.git diff --git a/src/opserv.c b/src/opserv.c index d445077..d6aedf5 100644 --- a/src/opserv.c +++ b/src/opserv.c @@ -767,18 +767,23 @@ static MODCMD_FUNC(cmd_block) struct userNode *target; struct gline *gline; char *reason; + unsigned long duration = 0; + unsigned int offset = 2; target = GetUserH(argv[1]); if (!target) { - reply("MSG_NICK_UNKNOWN", argv[1]); - return 0; + reply("MSG_NICK_UNKNOWN", argv[1]); + return 0; } if (IsService(target)) { - reply("MSG_SERVICE_IMMUNE", target->nick); - return 0; + reply("MSG_SERVICE_IMMUNE", target->nick); + return 0; + } + if(argc > 2 && (duration = ParseInterval(argv[2]))) { + offset = 3; } - reason = (argc > 2) ? unsplit_string(argv+2, argc-2, NULL) : NULL; - gline = opserv_block(target, user->handle_info->handle, reason, 0); + reason = (argc > offset) ? unsplit_string(argv+offset, argc-offset, NULL) : NULL; + gline = opserv_block(target, user->handle_info->handle, reason, duration); reply("OSMSG_GLINE_ISSUED", gline->target); return 1; }