[srvx-commits] CVS: services/src chanserv.c,1.254,1.255
Brought to you by:
entrope
|
From: Zoot <zo...@us...> - 2002-08-01 01:23:55
|
Update of /cvsroot/srvx/services/src
In directory usw-pr-cvs1:/tmp/cvs-serv13667/src
Modified Files:
chanserv.c
Log Message:
Split ChanServ's noregister command into two; one to add noregisters and another to search them.
Index: chanserv.c
===================================================================
RCS file: /cvsroot/srvx/services/src/chanserv.c,v
retrieving revision 1.254
retrieving revision 1.255
diff -C2 -r1.254 -r1.255
*** chanserv.c 31 Jul 2002 02:36:55 -0000 1.254
--- chanserv.c 1 Aug 2002 01:23:51 -0000 1.255
***************
*** 131,136 ****
/* Do-not-register channels */
#define CSMSG_DNR_INFO "$b%s$b is do-not-register (by $b%s$b): %s"
- #define CSMSG_END_DNR_LIST "End of do-not-register list."
#define CSMSG_DNR_CHANNEL "Only network staff may register $b%s$b."
#define CSMSG_DNR_CHANNEL_MOVE "Only network staff may move $b%s$b."
--- 131,136 ----
/* Do-not-register channels */
+ #define CSMSG_NOT_DNR "$b%s$b is not a valid channel name or *handle."
#define CSMSG_DNR_INFO "$b%s$b is do-not-register (by $b%s$b): %s"
#define CSMSG_DNR_CHANNEL "Only network staff may register $b%s$b."
#define CSMSG_DNR_CHANNEL_MOVE "Only network staff may move $b%s$b."
***************
*** 1504,1545 ****
static CHANSERV_FUNC(cmd_noregister)
{
! const char *chan_name = NULL;
unsigned int arg = 1;
- struct do_not_register *dnr;
! if(channel)
{
! if((argc > 1) && (argv[1][0] == '*')) {
! chan_name = argv[1];
! arg = 2;
! } else {
! chan_name = channel->name;
! }
}
! else if(argc > 1)
{
! if(!IsCSChannelName(argv[1]) && (argv[1][0] != '*'))
! {
! chanserv_notice(user, MSG_NOT_CHANNEL_NAME);
! return 0;
! }
! chan_name = argv[1];
! arg = 2;
}
! if(chan_name && (arg < argc))
{
! unsplit_string(argv+arg, argc-arg);
! if((argv[arg][0] == '*') && !get_handle_info(argv[arg]+1))
! {
! chanserv_notice(user, MSG_HANDLE_UNKNOWN, argv[arg]+1);
! }
! else
! {
! chanserv_add_dnr(chan_name, user->handle_info->handle, argv[arg]);
! chanserv_notice(user, CSMSG_NOREGISTER_CHANNEL, chan_name);
! }
}
! else if(chan_name && (dnr = chanserv_is_dnr(chan_name, 0)))
{
chanserv_notice(user, CSMSG_DNR_INFO, dnr->chan_name, dnr->setter, dnr->reason);
--- 1504,1546 ----
static CHANSERV_FUNC(cmd_noregister)
{
! const char *target = NULL;
unsigned int arg = 1;
! if(IsCSChannelName(argv[1]) || (*argv[1] == '*'))
{
! REQUIRE_PARAMS(3);
!
! target = argv[1];
! arg = 2;
}
! else if(channel)
{
! target = channel->name;
! }
! else
! {
! chanserv_notice(user, CSMSG_NOT_DNR, argv[1]);
! return 0;
}
! unsplit_string(argv + arg, argc - arg);
! if((*target == '*') && !get_handle_info(target + 1))
{
! chanserv_notice(user, MSG_HANDLE_UNKNOWN, target + 1);
! return 0;
}
!
! chanserv_add_dnr(target, user->handle_info->handle, argv[arg]);
! chanserv_notice(user, CSMSG_NOREGISTER_CHANNEL, target);
!
! return 1;
! }
!
! static CHANSERV_FUNC(cmd_noregisters)
! {
! struct do_not_register *dnr;
! (void)argc;
!
! if((dnr = chanserv_is_dnr(argv[1], 0)))
{
chanserv_notice(user, CSMSG_DNR_INFO, dnr->chan_name, dnr->setter, dnr->reason);
***************
*** 1547,1568 ****
else
{
dict_iterator_t it;
for (it = dict_first(handle_dnrs); it; it = iter_next(it))
{
dnr = iter_data(it);
chanserv_notice(user, CSMSG_DNR_INFO, dnr->chan_name, dnr->setter, dnr->reason);
}
for (it = dict_first(plain_dnrs); it; it = iter_next(it))
{
dnr = iter_data(it);
chanserv_notice(user, CSMSG_DNR_INFO, dnr->chan_name, dnr->setter, dnr->reason);
}
for (it = dict_first(mask_dnrs); it; it = iter_next(it))
{
dnr = iter_data(it);
chanserv_notice(user, CSMSG_DNR_INFO, dnr->chan_name, dnr->setter, dnr->reason);
}
- chanserv_notice(user, CSMSG_END_DNR_LIST);
}
--- 1548,1594 ----
else
{
+ unsigned int matches = 0;
dict_iterator_t it;
+ chanserv_notice(user, MSG_SEARCH_RESULTS, "do-not-registers");
for (it = dict_first(handle_dnrs); it; it = iter_next(it))
{
+ if(!match_ircglob(iter_key(it), argv[1]))
+ {
+ continue;
+ }
dnr = iter_data(it);
chanserv_notice(user, CSMSG_DNR_INFO, dnr->chan_name, dnr->setter, dnr->reason);
+ matches++;
}
for (it = dict_first(plain_dnrs); it; it = iter_next(it))
{
+ if(!match_ircglob(iter_key(it), argv[1]))
+ {
+ continue;
+ }
dnr = iter_data(it);
chanserv_notice(user, CSMSG_DNR_INFO, dnr->chan_name, dnr->setter, dnr->reason);
+ matches++;
}
for (it = dict_first(mask_dnrs); it; it = iter_next(it))
{
+ if(!match_ircglobs(argv[1], iter_key(it)))
+ {
+ continue;
+ }
dnr = iter_data(it);
chanserv_notice(user, CSMSG_DNR_INFO, dnr->chan_name, dnr->setter, dnr->reason);
+ matches++;
+ }
+
+ if(matches)
+ {
+ chanserv_notice(user, MSG_MATCH_COUNT, matches);
+ }
+ else
+ {
+ chanserv_notice(user, MSG_NO_MATCHES);
}
}
***************
*** 6952,6956 ****
DEFINE_COMMAND(god, 1, MODCMD_REQUIRE_AUTHED, "flags", "+oper,+networkhelper", NULL);
DEFINE_COMMAND(register, 2, MODCMD_REQUIRE_AUTHED, "account_flags", "+g", "flags", "+acceptchan", NULL);
! DEFINE_COMMAND(noregister, 3, MODCMD_REQUIRE_AUTHED, "account_flags", "+g", NULL);
DEFINE_COMMAND(allowregister, 2, 0, "template", "noregister", NULL);
DEFINE_COMMAND(move, 2, MODCMD_REQUIRE_AUTHED|MODCMD_REQUIRE_REGCHAN, "template", "register", NULL);
--- 6978,6983 ----
DEFINE_COMMAND(god, 1, MODCMD_REQUIRE_AUTHED, "flags", "+oper,+networkhelper", NULL);
DEFINE_COMMAND(register, 2, MODCMD_REQUIRE_AUTHED, "account_flags", "+g", "flags", "+acceptchan", NULL);
! DEFINE_COMMAND(noregister, 2, MODCMD_REQUIRE_AUTHED, "account_flags", "+g", NULL);
! DEFINE_COMMAND(noregisters, 2, MODCMD_REQUIRE_AUTHED, "template", "noregister", NULL);
DEFINE_COMMAND(allowregister, 2, 0, "template", "noregister", NULL);
DEFINE_COMMAND(move, 2, MODCMD_REQUIRE_AUTHED|MODCMD_REQUIRE_REGCHAN, "template", "register", NULL);
|