[srvx-commits] CVS: services/src modcmd.c,1.1,1.2
Brought to you by:
entrope
|
From: Entrope <en...@us...> - 2002-07-30 19:26:50
|
Update of /cvsroot/srvx/services/src
In directory usw-pr-cvs1:/tmp/cvs-serv20513/src
Modified Files:
modcmd.c
Log Message:
add ?modcmd command to configure commands at run-time
return correct value from svccmd_can_invoke()
remove spurious assignment to pos in svccmd_send_help()
Index: modcmd.c
===================================================================
RCS file: /cvsroot/srvx/services/src/modcmd.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** modcmd.c 30 Jul 2002 02:15:11 -0000 1.1
--- modcmd.c 30 Jul 2002 19:26:46 -0000 1.2
***************
*** 380,384 ****
postaccess:
if (flags & MODCMD_NO_LOG) res &= ~MODCMD_LOG_COMMAND;
! return 1;
refuse:
--- 380,384 ----
postaccess:
if (flags & MODCMD_NO_LOG) res &= ~MODCMD_LOG_COMMAND;
! return res;
refuse:
***************
*** 500,504 ****
expn = cmd->extra;
- pos = strlen(display);
for (arg = pos = 0; arg < expn->argc; ++arg) {
len = strlen(expn->argv[arg]);
--- 500,503 ----
***************
*** 952,955 ****
--- 951,971 ----
}
+ static MODCMD_FUNC(cmd_modcmd) {
+ struct svccmd *svccmd;
+ unsigned int arg, changed=0;
+
+ assert(argc >= 4);
+ /* TODO: must be able to specify command name like "trace\ gline" */
+ if (!(svccmd = svccmd_resolve_name(cmd, argv[1]))) {
+ send_message(user, cmd->parent->bot, "Unknown/unresolvable command name %s", argv[1]);
+ return 0;
+ }
+ for (arg = 2; arg+2 < argc; arg += 2) {
+ if (svccmd_configure(svccmd, user, cmd->parent->bot, argv[arg], argv[arg+1])) changed = 1;
+ }
+ /* TODO: either show new values for svccmd options or report success as things are changed */
+ return changed;
+ }
+
void
modcmd_nick_change(struct userNode *user, const char *new_nick) {
***************
*** 979,982 ****
--- 995,999 ----
expand_alias_command = modcmd_register(modcmd_module, "expand alias", cmd_expand_alias, 0, 0, NULL);
help_command = modcmd_register(modcmd_module, "help", cmd_help, 1, 0, NULL);
+ modcmd_register(modcmd_module, "modcmd", cmd_modcmd, 4, 0, "access", "999", NULL);
modcmd_register(modcmd_module, "readhelp", cmd_readhelp, 2, 0, "access", "650", NULL);
modcmd_register(modcmd_module, "timecmd", cmd_timecmd, 2, 0, "access", "1", NULL);
|