summaryrefslogtreecommitdiffstats
path: root/main/common/cmdtbl.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/common/cmdtbl.c')
-rw-r--r--main/common/cmdtbl.c548
1 files changed, 278 insertions, 270 deletions
diff --git a/main/common/cmdtbl.c b/main/common/cmdtbl.c
index e2010c0..858300c 100644
--- a/main/common/cmdtbl.c
+++ b/main/common/cmdtbl.c
@@ -1,7 +1,7 @@
/**************************************************************************
*
* Copyright (c) 2013 Alcatel-Lucent
- *
+ *
* Alcatel Lucent licenses this file to You under the Apache License,
* Version 2.0 (the "License"); you may not use this file except in
* compliance with the License. A copy of the License is contained the
@@ -31,7 +31,7 @@
#include "genlib.h"
#include "xcmddcl.h"
-#define ULVLCMD "ulvl"
+#define ULVLCMD "ulvl"
#if INCLUDE_MEMCMDS
#define INCLUDE_PM 1
@@ -42,443 +42,451 @@
#define INCLUDE_MT 1
#endif
-extern int Arp(int, char **);
-extern int BbcCmd(int, char **);
-extern int BinfoCmd(int, char **);
-extern int BmemCmd(int, char **);
-extern int Call(int, char **);
-extern int Cast(int, char **);
-extern int Cm(int, char **);
-extern int CfCmd(int, char **);
-extern int Dis(int, char **);
-extern int Dm(int, char **);
-extern int Dhcp(int, char **);
-extern int DnsCmd(int, char **);
-extern int Echo(int, char **);
-extern int Edit(int, char **);
-extern int Ether(int, char **);
-extern int Exit(int, char **);
-extern int FatfsCmd(int, char **);
-extern int FbiCmd(int, char **);
-extern int FlashCmd(int, char **);
-extern int Fm(int, char **);
-extern int Gdb(int, char **);
-extern int Goto(int, char **);
-extern int Gosub(int, char **);
-extern int Heap(int, char **);
-extern int Help(int, char **);
-extern int History(int, char **);
-extern int Icmp(int, char **);
-extern int Ide(int, char **);
-extern int I2cCmd(int, char **);
-extern int If(int, char **);
-extern int Igmp(int, char **);
-extern int Item(int, char **);
-extern int Jffs2Cmd(int, char **);
-extern int Mt(int, char **);
-extern int MtraceCmd(int, char **);
-extern int Pm(int, char **);
-extern int Prof(int, char **);
-extern int Read(int, char **);
-extern int Reg(int, char **);
-extern int Reset(int, char **);
-extern int Return(int, char **);
-extern int SdCmd(int, char **);
-extern int Set(int, char **);
-extern int Sleep(int, char **);
-extern int Sm(int, char **);
-extern int SpifCmd(int, char **);
-extern int Strace(int, char **);
-extern int StructCmd(int, char **);
-extern int SyslogCmd(int, char **);
-extern int Tfs(int, char **);
-extern int Tftp(int, char **);
-extern int TsiCmd(int, char **);
-extern int Ulvl(int, char **);
-extern int Unzip(int, char **);
-extern int Version(int, char **);
-extern int WhatCmd(int, char **);
-extern int Xmodem(int, char **);
-
-extern char *ArpHelp[];
+extern int Arp(int, char **);
+extern int BbcCmd(int, char **);
+extern int BinfoCmd(int, char **);
+extern int BmemCmd(int, char **);
+extern int Call(int, char **);
+extern int Cast(int, char **);
+extern int Cm(int, char **);
+extern int CfCmd(int, char **);
+extern int Dis(int, char **);
+extern int Dm(int, char **);
+extern int Dhcp(int, char **);
+extern int DnsCmd(int, char **);
+extern int Echo(int, char **);
+extern int Edit(int, char **);
+extern int Ether(int, char **);
+extern int Exit(int, char **);
+extern int FatfsCmd(int, char **);
+extern int FbiCmd(int, char **);
+extern int FlashCmd(int, char **);
+extern int Fm(int, char **);
+extern int Gdb(int, char **);
+extern int Goto(int, char **);
+extern int Gosub(int, char **);
+extern int Heap(int, char **);
+extern int Help(int, char **);
+extern int History(int, char **);
+extern int Icmp(int, char **);
+extern int Ide(int, char **);
+extern int I2cCmd(int, char **);
+extern int If(int, char **);
+extern int Igmp(int, char **);
+extern int Item(int, char **);
+extern int Jffs2Cmd(int, char **);
+extern int Mt(int, char **);
+extern int MtraceCmd(int, char **);
+extern int Pm(int, char **);
+extern int Prof(int, char **);
+extern int Read(int, char **);
+extern int Reg(int, char **);
+extern int Reset(int, char **);
+extern int Return(int, char **);
+extern int SdCmd(int, char **);
+extern int Set(int, char **);
+extern int Sleep(int, char **);
+extern int Sm(int, char **);
+extern int SpifCmd(int, char **);
+extern int Strace(int, char **);
+extern int StructCmd(int, char **);
+extern int SyslogCmd(int, char **);
+extern int Tfs(int, char **);
+extern int Tftp(int, char **);
+extern int TsiCmd(int, char **);
+extern int Ulvl(int, char **);
+extern int Unzip(int, char **);
+extern int Version(int, char **);
+extern int WhatCmd(int, char **);
+extern int Xmodem(int, char **);
+
+extern char *ArpHelp[];
extern char *BbcHelp[];
extern char *BinfoHelp[];
extern char *BmemHelp[];
-extern char *CallHelp[];
+extern char *CallHelp[];
extern char *CastHelp[];
-extern char *CfHelp[];
-extern char *CmHelp[];
-extern char *DisHelp[];
-extern char *DhcpHelp[];
+extern char *CfHelp[];
+extern char *CmHelp[];
+extern char *DisHelp[];
+extern char *DhcpHelp[];
extern char *DmHelp[];
extern char *DnsHelp[];
-extern char *EchoHelp[];
-extern char *EditHelp[];
-extern char *EtherHelp[];
-extern char *ExitHelp[];
-extern char *FatfsHelp[];
-extern char *FbiHelp[];
-extern char *FlashHelp[];
-extern char *FmHelp[];
+extern char *EchoHelp[];
+extern char *EditHelp[];
+extern char *EtherHelp[];
+extern char *ExitHelp[];
+extern char *FatfsHelp[];
+extern char *FbiHelp[];
+extern char *FlashHelp[];
+extern char *FmHelp[];
extern char *GdbHelp[];
-extern char *GosubHelp[];
-extern char *GotoHelp[];
-extern char *HelpHelp[];
+extern char *GosubHelp[];
+extern char *GotoHelp[];
+extern char *HelpHelp[];
extern char *HeapHelp[];
-extern char *HistoryHelp[];
-extern char *IcmpHelp[];
+extern char *HistoryHelp[];
+extern char *IcmpHelp[];
extern char *IdeHelp[];
extern char *I2cHelp[];
-extern char *IfHelp[];
+extern char *IfHelp[];
extern char *IgmpHelp[];
-extern char *ItemHelp[];
-extern char *Jffs2Help[];
-extern char *MtHelp[];
+extern char *ItemHelp[];
+extern char *Jffs2Help[];
+extern char *MtHelp[];
extern char *MtraceHelp[];
-extern char *PmHelp[];
-extern char *ProfHelp[];
-extern char *ReadHelp[];
-extern char *RegHelp[];
-extern char *ResetHelp[];
-extern char *ReturnHelp[];
-extern char *SdHelp[];
-extern char *SetHelp[];
-extern char *SleepHelp[];
-extern char *SmHelp[];
-extern char *SpifHelp[];
-extern char *StraceHelp[];
-extern char *StructHelp[];
+extern char *PmHelp[];
+extern char *ProfHelp[];
+extern char *ReadHelp[];
+extern char *RegHelp[];
+extern char *ResetHelp[];
+extern char *ReturnHelp[];
+extern char *SdHelp[];
+extern char *SetHelp[];
+extern char *SleepHelp[];
+extern char *SmHelp[];
+extern char *SpifHelp[];
+extern char *StraceHelp[];
+extern char *StructHelp[];
extern char *SyslogHelp[];
-extern char *TfsHelp[];
-extern char *TftpHelp[];
-extern char *TsiHelp[];
-extern char *UlvlHelp[];
+extern char *TfsHelp[];
+extern char *TftpHelp[];
+extern char *TsiHelp[];
+extern char *UlvlHelp[];
extern char *UnzipHelp[];
-extern char *VersionHelp[];
-extern char *WhatHelp[];
-extern char *XmodemHelp[];
+extern char *VersionHelp[];
+extern char *WhatHelp[];
+extern char *XmodemHelp[];
struct monCommand cmdlist[] = {
#if INCLUDE_ETHERNET
- { "arp", Arp, ArpHelp, CMDFLAG_NOMONRC },
+ { "arp", Arp, ArpHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_BBC
- { "bbc", BbcCmd, BbcHelp, 0 },
+ { "bbc", BbcCmd, BbcHelp, 0 },
#endif
#if INCLUDE_BMEM
- { "bmem", BmemCmd, BmemHelp, 0 },
+ { "bmem", BmemCmd, BmemHelp, 0 },
#endif
#if INCLUDE_BOARDINFO
- { "brdinfo", BinfoCmd, BinfoHelp, 0 },
+ { "brdinfo", BinfoCmd, BinfoHelp, 0 },
#endif
- { "call", Call, CallHelp, CMDFLAG_NOMONRC },
+ { "call", Call, CallHelp, CMDFLAG_NOMONRC },
#if INCLUDE_CAST
- { "cast", Cast, CastHelp, 0 },
+ { "cast", Cast, CastHelp, 0 },
#endif
#if INCLUDE_CF
- { "cf", CfCmd, CfHelp, 0 },
+ { "cf", CfCmd, CfHelp, 0 },
#endif
#if INCLUDE_CM
- { "cm", Cm, CmHelp, 0 },
+ { "cm", Cm, CmHelp, 0 },
#endif
#if INCLUDE_DHCPBOOT
- { "dhcp", Dhcp, DhcpHelp, CMDFLAG_NOMONRC },
+ { "dhcp", Dhcp, DhcpHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_DISASSEMBLER
- { "dis", Dis, DisHelp, 0 },
+ { "dis", Dis, DisHelp, 0 },
#endif
#if INCLUDE_DM
- { "dm", Dm, DmHelp, 0 },
+ { "dm", Dm, DmHelp, 0 },
#endif
#if INCLUDE_DNS
- { "dns", DnsCmd, DnsHelp, 0 },
+ { "dns", DnsCmd, DnsHelp, 0 },
#endif
#if INCLUDE_TFSSCRIPT
- { "echo", Echo, EchoHelp, 0 },
+ { "echo", Echo, EchoHelp, 0 },
#endif
#if INCLUDE_EDIT
- { "edit", Edit, EditHelp, 0 },
+ { "edit", Edit, EditHelp, 0 },
#endif
#if INCLUDE_ETHERNET
- { "ether", Ether, EtherHelp, CMDFLAG_NOMONRC },
+ { "ether", Ether, EtherHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_TFSSCRIPT
- { "exit", Exit, ExitHelp, 0 },
+ { "exit", Exit, ExitHelp, 0 },
#endif
#if INCLUDE_FATFS
- { "fatfs", FatfsCmd, FatfsHelp, 0 },
+ { "fatfs", FatfsCmd, FatfsHelp, 0 },
#endif
#if INCLUDE_FBI
- { "fbi", FbiCmd, FbiHelp, 0 },
+ { "fbi", FbiCmd, FbiHelp, 0 },
#endif
#if INCLUDE_FLASH
- { "flash", FlashCmd, FlashHelp, 0 },
+ { "flash", FlashCmd, FlashHelp, 0 },
#endif
#if INCLUDE_FM
- { "fm", Fm, FmHelp, 0 },
+ { "fm", Fm, FmHelp, 0 },
#endif
#if INCLUDE_GDB
- { "gdb", Gdb, GdbHelp, CMDFLAG_NOMONRC },
+ { "gdb", Gdb, GdbHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_TFSSCRIPT
- { "gosub", Gosub, GosubHelp, 0 },
- { "goto", Goto, GotoHelp, 0 },
+ { "gosub", Gosub, GosubHelp, 0 },
+ { "goto", Goto, GotoHelp, 0 },
#endif
#if INCLUDE_MALLOC
- { "heap", Heap, HeapHelp, 0 },
+ { "heap", Heap, HeapHelp, 0 },
#endif
- { "help", Help, HelpHelp, 0 },
- { "?", Help, HelpHelp, 0 },
+ { "help", Help, HelpHelp, 0 },
+ { "?", Help, HelpHelp, 0 },
#if INCLUDE_LINEEDIT
- { "history", History, HistoryHelp, 0 },
+ { "history", History, HistoryHelp, 0 },
#endif
#if INCLUDE_I2C
- { "i2c", I2cCmd, I2cHelp, 0 },
+ { "i2c", I2cCmd, I2cHelp, 0 },
#endif
#if INCLUDE_ICMP
- { "icmp", Icmp, IcmpHelp, CMDFLAG_NOMONRC },
+ { "icmp", Icmp, IcmpHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_IDE
- { "ide", Ide, IdeHelp, CMDFLAG_NOMONRC },
+ { "ide", Ide, IdeHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_IGMP
- { "igmp", Igmp, IgmpHelp, CMDFLAG_NOMONRC },
+ { "igmp", Igmp, IgmpHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_TFSSCRIPT
- { "if", If, IfHelp, 0 },
+ { "if", If, IfHelp, 0 },
#endif
#if INCLUDE_TFSSCRIPT
- { "item", Item, ItemHelp, 0 },
+ { "item", Item, ItemHelp, 0 },
#endif
#if INCLUDE_JFFS2
- { "jffs2", Jffs2Cmd, Jffs2Help, 0 },
+ { "jffs2", Jffs2Cmd, Jffs2Help, 0 },
#endif
#if INCLUDE_MT
- { "mt", Mt, MtHelp, 0 },
+ { "mt", Mt, MtHelp, 0 },
#endif
#if INCLUDE_MEMTRACE
- { "mtrace", MtraceCmd, MtraceHelp, 0 },
+ { "mtrace", MtraceCmd, MtraceHelp, 0 },
#endif
#if INCLUDE_PM
- { "pm", Pm, PmHelp, 0 },
+ { "pm", Pm, PmHelp, 0 },
#endif
#if INCLUDE_PROFILER
- { "prof", Prof, ProfHelp, 0 },
+ { "prof", Prof, ProfHelp, 0 },
#endif
#if INCLUDE_TFSSCRIPT
- { "read", Read, ReadHelp, 0 },
+ { "read", Read, ReadHelp, 0 },
#endif
#if INCLUDE_STRACE
- { "reg", Reg, RegHelp, 0 },
+ { "reg", Reg, RegHelp, 0 },
#endif
- { "reset", Reset, ResetHelp, 0 },
+ { "reset", Reset, ResetHelp, 0 },
#if INCLUDE_TFSSCRIPT
- { "return", Return, ReturnHelp, 0 },
+ { "return", Return, ReturnHelp, 0 },
#endif
#if INCLUDE_SD
- { "sd", SdCmd, SdHelp, 0 },
+ { "sd", SdCmd, SdHelp, 0 },
#endif
- { "set", Set, SetHelp, 0 },
+ { "set", Set, SetHelp, 0 },
#if INCLUDE_TFSSCRIPT
- { "sleep", Sleep, SleepHelp, 0 },
+ { "sleep", Sleep, SleepHelp, 0 },
#endif
#if INCLUDE_SM
- { "sm", Sm, SmHelp, 0 },
+ { "sm", Sm, SmHelp, 0 },
#endif
#if INCLUDE_SPIF
- { "spif", SpifCmd, SpifHelp, 0 },
+ { "spif", SpifCmd, SpifHelp, 0 },
#endif
#if INCLUDE_STRACE
- { "strace", Strace, StraceHelp, 0 },
+ { "strace", Strace, StraceHelp, 0 },
#endif
#if INCLUDE_STRUCT
- { "struct", StructCmd, StructHelp, 0 },
+ { "struct", StructCmd, StructHelp, 0 },
#endif
#if INCLUDE_SYSLOG
- { "syslog", SyslogCmd, SyslogHelp, CMDFLAG_NOMONRC },
+ { "syslog", SyslogCmd, SyslogHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_USRLVL
- { ULVLCMD, Ulvl, UlvlHelp, 0 },
+ { ULVLCMD, Ulvl, UlvlHelp, 0 },
#endif
#if INCLUDE_TFTP
- { "tftp", Tftp, TftpHelp, CMDFLAG_NOMONRC },
+ { "tftp", Tftp, TftpHelp, CMDFLAG_NOMONRC },
#endif
#if INCLUDE_TFSCLI
- { "tfs", Tfs, TfsHelp, 0 },
+ { "tfs", Tfs, TfsHelp, 0 },
#endif
#if INCLUDE_TSI
- { "tsi", TsiCmd, TsiHelp, 0 },
+ { "tsi", TsiCmd, TsiHelp, 0 },
#endif
#if INCLUDE_UNZIP
- { "unzip", Unzip, UnzipHelp, 0 },
+ { "unzip", Unzip, UnzipHelp, 0 },
#endif
#if INCLUDE_XMODEM
- { "xmodem", Xmodem, XmodemHelp, 0 },
+ { "xmodem", Xmodem, XmodemHelp, 0 },
#endif
- { "version", Version, VersionHelp, 0 },
+ { "version", Version, VersionHelp, 0 },
#if INCLUDE_TFS
- { "what", WhatCmd, WhatHelp, 0 },
+ { "what", WhatCmd, WhatHelp, 0 },
#endif
-#include "xcmdtbl.h" /* For non-generic commands that are */
- /* specific to a particular target. */
- { 0,0,0,0 },
+#include "xcmdtbl.h" /* For non-generic commands that are */
+ /* specific to a particular target. */
+ { 0,0,0,0 },
};
#if INCLUDE_USRLVL
/* cmdUlvl[]:
- * This table stores one char per command that contains that command's
- * user level. The default user level of all commands is 0, but can
- * be re-defined by the ulvl -c command.
+ * This table stores one char per command that contains that command's
+ * user level. The default user level of all commands is 0, but can
+ * be re-defined by the ulvl -c command.
*/
char cmdUlvl[(sizeof(cmdlist)/sizeof(struct monCommand))];
/* setCmdUlvl():
- * The incoming string is a command name followed by a comma and a user
- * level (ranging from 0 thru 4).
- * Return 0 if pass, 1 if new level was user-level rejected, -1 if error.
+ * The incoming string is a command name followed by a comma and a user
+ * level (ranging from 0 thru 4).
+ * Return 0 if pass, 1 if new level was user-level rejected, -1 if error.
*/
int
setCmdUlvl(char *cmdlvl, int verbose)
{
- extern char *appcmdUlvl;
- extern struct monCommand *appCmdlist;
- struct monCommand *cptr;
- int newlevel, idx, pass, doall;
- char *comma, *lvlptr, buffer[32], *cmdandlevel;
-
- /* Make a copy of the incoming string so that we can
- * modify it...
- */
- if (strlen(cmdlvl) > (sizeof(buffer)-1))
- goto showerr;
-
- strcpy(buffer,cmdlvl);
- cmdandlevel = buffer;
-
- /* First verify that the comma is in the string... */
- comma = strchr(cmdandlevel,',');
- if (!comma)
- goto showerr;
-
- /* Retrieve and verify the new level to be assigned...
- * If the level value is the string "off", then we assign a level
- * value that is greater than MAXUSRLEVEL so that the command is
- * essentially disabled as a built-in.
- */
- if (strcmp(comma+1,"off") == 0) {
- newlevel = MAXUSRLEVEL+1;
- }
- else {
- newlevel = atoi(comma+1);
- if ((newlevel < MINUSRLEVEL) || (newlevel > MAXUSRLEVEL))
- goto showerr;
- }
-
- *comma = 0;
-
- /* Don't allow adjustment of the ulvl command itself. It must be
- * able to run as user level 0 all the time...
- */
- if (!strcmp(cmdandlevel,ULVLCMD)) {
- printf("Can't adjust '%s' user level.\n",ULVLCMD);
- return(-1);
- }
-
- if (appCmdlist) {
- pass = 0;
- cptr = appCmdlist;
- lvlptr = appcmdUlvl;
- }
- else {
- pass = 1;
- cptr = cmdlist;
- lvlptr = cmdUlvl;
- }
-
- /* If the command string is "ALL" then we set all commands
- * to the requested level.
- */
- if (!strcmp(cmdandlevel,"ALL"))
- doall = 1;
- else
- doall = 0;
-
- while(pass < 2) {
- if ((cptr == cmdlist) && (cmdandlevel[0] == '_'))
- cmdandlevel++;
-
- /* Find the command in the table that is to be adjusted... */
- for(idx=0;cptr->name;cptr++,idx++) {
- if (doall || (!strcmp(cmdandlevel,cptr->name))) {
- /* Even with doall set, we don't want to touch
- * the ULVLCMD level...
- */
- if (doall && !strcmp(cptr->name,ULVLCMD))
- continue;
-
- /* If the command's user level is to be lowered, then the
- * current monitor userlevel must be at least as high as the
- * command's current user level...
- */
- if ((newlevel < lvlptr[idx]) && (getUsrLvl() < lvlptr[idx])) {
- if (verbose)
- printf("User-level access denied: %s\n",cmdandlevel);
- return(1);
- }
- lvlptr[idx] = newlevel;
- if (!doall)
- return(0);
- }
- }
- cptr = cmdlist;
- lvlptr = cmdUlvl;
- pass++;
- }
-
- if (doall)
- return(0);
+ extern char *appcmdUlvl;
+ extern struct monCommand *appCmdlist;
+ struct monCommand *cptr;
+ int newlevel, idx, pass, doall;
+ char *comma, *lvlptr, buffer[32], *cmdandlevel;
+
+ /* Make a copy of the incoming string so that we can
+ * modify it...
+ */
+ if(strlen(cmdlvl) > (sizeof(buffer)-1)) {
+ goto showerr;
+ }
+
+ strcpy(buffer,cmdlvl);
+ cmdandlevel = buffer;
+
+ /* First verify that the comma is in the string... */
+ comma = strchr(cmdandlevel,',');
+ if(!comma) {
+ goto showerr;
+ }
+
+ /* Retrieve and verify the new level to be assigned...
+ * If the level value is the string "off", then we assign a level
+ * value that is greater than MAXUSRLEVEL so that the command is
+ * essentially disabled as a built-in.
+ */
+ if(strcmp(comma+1,"off") == 0) {
+ newlevel = MAXUSRLEVEL+1;
+ } else {
+ newlevel = atoi(comma+1);
+ if((newlevel < MINUSRLEVEL) || (newlevel > MAXUSRLEVEL)) {
+ goto showerr;
+ }
+ }
+
+ *comma = 0;
+
+ /* Don't allow adjustment of the ulvl command itself. It must be
+ * able to run as user level 0 all the time...
+ */
+ if(!strcmp(cmdandlevel,ULVLCMD)) {
+ printf("Can't adjust '%s' user level.\n",ULVLCMD);
+ return(-1);
+ }
+
+ if(appCmdlist) {
+ pass = 0;
+ cptr = appCmdlist;
+ lvlptr = appcmdUlvl;
+ } else {
+ pass = 1;
+ cptr = cmdlist;
+ lvlptr = cmdUlvl;
+ }
+
+ /* If the command string is "ALL" then we set all commands
+ * to the requested level.
+ */
+ if(!strcmp(cmdandlevel,"ALL")) {
+ doall = 1;
+ } else {
+ doall = 0;
+ }
+
+ while(pass < 2) {
+ if((cptr == cmdlist) && (cmdandlevel[0] == '_')) {
+ cmdandlevel++;
+ }
+
+ /* Find the command in the table that is to be adjusted... */
+ for(idx=0; cptr->name; cptr++,idx++) {
+ if(doall || (!strcmp(cmdandlevel,cptr->name))) {
+ /* Even with doall set, we don't want to touch
+ * the ULVLCMD level...
+ */
+ if(doall && !strcmp(cptr->name,ULVLCMD)) {
+ continue;
+ }
+
+ /* If the command's user level is to be lowered, then the
+ * current monitor userlevel must be at least as high as the
+ * command's current user level...
+ */
+ if((newlevel < lvlptr[idx]) && (getUsrLvl() < lvlptr[idx])) {
+ if(verbose) {
+ printf("User-level access denied: %s\n",cmdandlevel);
+ }
+ return(1);
+ }
+ lvlptr[idx] = newlevel;
+ if(!doall) {
+ return(0);
+ }
+ }
+ }
+ cptr = cmdlist;
+ lvlptr = cmdUlvl;
+ pass++;
+ }
+
+ if(doall) {
+ return(0);
+ }
showerr:
- if (verbose)
- printf("Input error: %s\n",cmdlvl);
- return(-1);
+ if(verbose) {
+ printf("Input error: %s\n",cmdlvl);
+ }
+ return(-1);
}
#endif