From: Jeremy Allison Date: Fri, 29 Sep 2000 20:08:00 +0000 (+0000) Subject: utils/smbcontrol.c: Fixes from Herb for interactive use. X-Git-Tag: samba-4.0.0alpha6~801^2~19236 X-Git-Url: http://git.samba.org/samba.git/?p=ira%2Fwip.git;a=commitdiff_plain;h=641d9223d2def8fc4cacf046bf9cc988e0ec5588 utils/smbcontrol.c: Fixes from Herb for interactive use. printing/nt_printing.c: No C++ comments please :-). Jeremy. (This used to be commit dd9f668108215f18240458fc33bf872a6fc9e6be) --- diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c index 73d54f305cf..69e9233d273 100644 --- a/source3/printing/nt_printing.c +++ b/source3/printing/nt_printing.c @@ -1347,7 +1347,7 @@ NT_DEVICEMODE *construct_nt_devicemode(const fstring default_devicename) nt_devmode->scale = 0x64; nt_devmode->copies = 01; nt_devmode->defaultsource = BIN_FORMSOURCE; - nt_devmode->printquality = RES_HIGH; // 0x0258; + nt_devmode->printquality = RES_HIGH; /* 0x0258 */ nt_devmode->color = COLOR_MONOCHROME; nt_devmode->duplex = DUP_SIMPLEX; nt_devmode->yresolution = 0; diff --git a/source3/utils/smbcontrol.c b/source3/utils/smbcontrol.c index b31b53473c4..cedb13620d5 100644 --- a/source3/utils/smbcontrol.c +++ b/source3/utils/smbcontrol.c @@ -33,15 +33,20 @@ static struct { {NULL, -1} }; -static void usage(void) +static void usage(BOOL doexit) { int i; - printf("Usage: smbcontrol \n\n"); + if (doexit) { + printf("Usage: smbcontrol -i\n"); + printf(" smbcontrol \n\n"); + } else { + printf(" \n\n"); + } printf("\t is one of \"nmbd\", \"smbd\" or a process ID\n"); printf("\t is one of: "); for (i=0; msg_types[i].name; i++) printf("%s, ", msg_types[i].name); printf("\n"); - exit(1); + if (doexit) exit(1); } static int pong_count; @@ -94,54 +99,45 @@ static int parse_type(char *mtype) } - int main(int argc, char *argv[]) +/**************************************************************************** +do command +****************************************************************************/ +static BOOL do_command(char *dest, char *msg_name, char *params) { - char *dest; int i, n, v; - pstring servicesf = CONFIGFILE; int mtype; - TimeInit(); - setup_logging(argv[0],True); - - charset_initialise(); - lp_load(servicesf,False,False,False); - - message_init(); - - if (argc < 3) usage(); - - dest = argv[1]; - mtype = parse_type(argv[2]); + mtype = parse_type(msg_name); if (mtype == -1) { - fprintf(stderr,"Couldn't resolve message type: %s\n", argv[2]); - exit(1); + fprintf(stderr,"Couldn't resolve message type: %s\n", msg_name); + return(False); } - argc -= 2; - argv += 2; - switch (mtype) { case MSG_DEBUG: - if (argc < 2) { + if (!params) { fprintf(stderr,"MSG_DEBUG needs a parameter\n"); - exit(1); + return(False); } - v = atoi(argv[1]); + v = atoi(params); send_message(dest, MSG_DEBUG, &v, sizeof(int)); break; case MSG_FORCE_ELECTION: if (!strequal(dest, "nmbd")) { fprintf(stderr,"force-election can only be sent to nmbd\n"); - exit(1); + return(False); } send_message(dest, MSG_FORCE_ELECTION, NULL, 0); break; case MSG_PING: message_register(MSG_PONG, pong_function); - n = atoi(argv[1]); + if (!params) { + fprintf(stderr,"MSG_PING needs a parameter\n"); + return(False); + } + n = atoi(params); for (i=0;i 2 ? argv[2] : 0)); + } + + while (True) { + char *myargv[3]; + int myargc; + + printf("smbcontrol> "); + if (!gets(temp)) break; + myargc = 0; + while ((myargc < 3) && + (myargv[myargc] = strtok(myargc?NULL:temp," \t"))) { + myargc++; + } + if (!myargc) break; + if (myargc < 2) + usage(False); + else if (!do_command(myargv[0],myargv[1],myargc > 2 ? myargv[2] : 0)) + usage(False); + } + return(0); }