Module Name: src Committed By: tsutsui Date: Thu May 19 22:12:35 UTC 2011
Modified Files: src/distrib/utils/ssh: Makefile ssh.c Log Message: - WARNSfy - KNF, ANSIfy, misc cosmetics note: this is small shell, not secure shell. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/distrib/utils/ssh/Makefile cvs rdiff -u -r1.3 -r1.4 src/distrib/utils/ssh/ssh.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/utils/ssh/Makefile diff -u src/distrib/utils/ssh/Makefile:1.7 src/distrib/utils/ssh/Makefile:1.8 --- src/distrib/utils/ssh/Makefile:1.7 Wed Dec 12 00:05:10 2001 +++ src/distrib/utils/ssh/Makefile Thu May 19 22:12:35 2011 @@ -1,6 +1,7 @@ -# $NetBSD: Makefile,v 1.7 2001/12/12 00:05:10 tv Exp $ +# $NetBSD: Makefile,v 1.8 2011/05/19 22:12:35 tsutsui Exp $ # Small Shell (i.e. for boot media) +WARNS?= 4 PROG= ssh NOMAN= # defined Index: src/distrib/utils/ssh/ssh.c diff -u src/distrib/utils/ssh/ssh.c:1.3 src/distrib/utils/ssh/ssh.c:1.4 --- src/distrib/utils/ssh/ssh.c:1.3 Wed Oct 21 23:12:09 2009 +++ src/distrib/utils/ssh/ssh.c Thu May 19 22:12:35 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: ssh.c,v 1.3 2009/10/21 23:12:09 snj Exp $ */ +/* $NetBSD: ssh.c,v 1.4 2011/05/19 22:12:35 tsutsui Exp $ */ /* * Copyright (c) 1995 Gordon W. Ross @@ -61,7 +61,7 @@ char cur_path[MAXPATH] = "PATH=/bin:/usr/bin"; char rc_name[] = ".sshrc"; -char *prompt = "ssh: "; +const char *prompt = "ssh: "; int eflag; /* exit on cmd failure */ int iflag; /* interactive mode (catch interrupts) */ @@ -69,7 +69,7 @@ int xflag; /* execution trace */ /* Command file: name, line number, arg count, arg vector */ -char *cf_name; +const char *cf_name; int cf_line; int cf_argc; char **cf_argv; @@ -79,16 +79,23 @@ jmp_buf next_cmd; -void catchsig __P((int sig)); -void child_newfd __P((int setfd, char *file, int otype)); -int find_in_path __P((char *cmd, char *filebuf)); -void print_termsig __P((FILE *fp, int cstat)); -int runfile __P((FILE *fp)); +int main(int, char *[]); +void catchsig(int sig); +void child_newfd(int setfd, char *file, int otype); +int find_in_path(char *cmd, char *filebuf); +void print_termsig(FILE *fp, int cstat); +int runfile(FILE *fp); + +int cmd_eval(int, char *[]); +int cmd_cd(int, char *[]); +int cmd_exit(int, char *[]); +int cmd_help(int, char *[]); +int cmd_path(int, char *[]); +int cmd_run(int, char *[]); -main(argc, argv) - int argc; - char **argv; +int +main(int argc, char *argv[]) { struct sigaction sa; FILE *cfp; /* command file ptr */ @@ -116,7 +123,7 @@ } if (error) { fprintf(stderr, "usage: ssh [-eisx] [cmd_file [...]]\n"); - exit(1); + exit(EXIT_FAILURE); } cf_argc = argc - optind; cf_argv = &argv[optind]; @@ -145,7 +152,7 @@ cfp = fopen(cf_name, "r"); if (cfp == NULL) { perror(cf_name); - exit(1); + exit(EXIT_FAILURE); } error = runfile(cfp); fclose(cfp); @@ -174,13 +181,13 @@ } } error = runfile(stdin); - exit (error); + exit(error); } void -catchsig(sig) - int sig; +catchsig(int sig) { + longjmp(next_cmd, sig); } @@ -189,8 +196,7 @@ * Returns exit status. */ int -runfile(cfp) - FILE *cfp; +runfile(FILE *cfp) { char ibuf[MAXLINE]; char *argv[MAXARGS]; @@ -269,7 +275,7 @@ break; } /* return status of last command */ - return (exitcode); + return exitcode; } @@ -279,9 +285,9 @@ ****************************************************************/ struct cmd { - char *name; - int (*func)(); - char *help; + const char *name; + int (*func)(int, char *[]); + const char *help; }; struct cmd cmd_table[]; @@ -291,9 +297,7 @@ * Returns exit status. */ int -cmd_eval(argc, argv) - int argc; - char **argv; +cmd_eval(int argc, char *argv[]) { struct cmd *cp; @@ -305,7 +309,7 @@ if (!strcmp(cp->name, argv[0])) { /* Pass only args to builtin. */ --argc; argv++; - return (cp->func(argc, argv)); + return cp->func(argc, argv); } } @@ -313,7 +317,7 @@ * If no matching builtin, let "run ..." * have a chance to try an external. */ - return (cmd_run(argc, argv)); + return cmd_run(argc, argv); } /***************************************************************** @@ -323,15 +327,12 @@ * All return an exit status. ****************************************************************/ -char help_cd[] = "cd [dir]"; +const char help_cd[] = "cd [dir]"; int -cmd_cd(argc, argv) - int argc; - char **argv; +cmd_cd(int argc, char *argv[]) { - char *dir; - int err; + const char *dir; if (argc > 0) dir = argv[0]; @@ -342,17 +343,15 @@ } if (chdir(dir)) { perror(dir); - return (1); + return 1; } - return(0); + return 0; } -char help_exit[] = "exit [n]"; +const char help_exit[] = "exit [n]"; int -cmd_exit(argc, argv) - int argc; - char **argv; +cmd_exit(int argc, char **argv) { int val = 0; @@ -361,12 +360,10 @@ exit(val); } -char help_help[] = "help [command]"; +const char help_help[] = "help [command]"; int -cmd_help(argc, argv) - int argc; - char **argv; +cmd_help(int argc, char *argv[]) { struct cmd *cp; @@ -374,7 +371,7 @@ for (cp = cmd_table; cp->name; cp++) { if (!strcmp(cp->name, argv[0])) { printf("usage: %s\n", cp->help); - return (0); + return 0; } } printf("%s: no such command\n", argv[0]); @@ -385,27 +382,24 @@ printf(" %s", cp->name); } printf("\nFor specific usage: help [command]\n"); - return (0); + return 0; } -char help_path[] = "path [dir1:dir2:...]"; +const char help_path[] = "path [dir1:dir2:...]"; int -cmd_path(argc, argv) - int argc; - char **argv; +cmd_path(int argc, char *argv[]) { - int i; if (argc <= 0) { printf("%s\n", cur_path); - return(0); + return 0; } strncpy(cur_path+5, argv[0], MAXPATH-6); putenv(cur_path); - return (0); + return 0; } /***************************************************************** @@ -415,17 +409,15 @@ * (or zero for a background job) ****************************************************************/ -char help_run[] = "\ +const char help_run[] = "\ run [-bg] [-i ifile] [-o ofile] [-e efile] program [args...]\n\ or simply: program [args...]"; int -cmd_run(argc, argv) - int argc; - char **argv; +cmd_run(int argc, char *argv[]) { struct sigaction sa; - int pid, err, cstat, fd; + int pid, err, cstat; char file[MAXPATHLEN]; int background; char *opt, *ifile, *ofile, *efile; @@ -458,7 +450,7 @@ goto shift; default: fprintf(stderr, "run %s: bad option\n", opt); - return (1); + return 1; shift: --argc; argv++; } @@ -467,7 +459,7 @@ if (argc <= 0) { fprintf(stderr, "%s:%d run: missing command\n", cf_name, cf_line); - return (1); + return 1; } /* Commands containing '/' get no path search. */ @@ -475,12 +467,12 @@ strncpy(file, argv[0], sizeof(file)-1); if (access(file, X_OK)) { perror(file); - return (1); + return 1; } } else { if (find_in_path(argv[0], file)) { fprintf(stderr, "%s: command not found\n", argv[0]); - return (1); + return 1; } } @@ -504,23 +496,23 @@ } err = execve(file, argv, environ); perror(argv[0]); - return (1); + return 1; } /* parent */ /* Handle background option... */ if (background) { fprintf(stderr, "[%d]\n", pid); run_bg_pid = pid; - return (0); + return 0; } if (waitpid(pid, &cstat, 0) < 0) { perror("waitpid"); - return (1); + return 1; } if (WTERMSIG(cstat)) { print_termsig(stderr, cstat); } - return (WEXITSTATUS(cstat)); + return WEXITSTATUS(cstat); } /***************************************************************** @@ -532,7 +524,7 @@ { "help", cmd_help, help_help }, { "path", cmd_path, help_path }, { "run", cmd_run, help_run }, - { 0 }, + { NULL, NULL, NULL }, }; /***************************************************************** @@ -540,9 +532,7 @@ ****************************************************************/ int -find_in_path(cmd, filebuf) - char *cmd; - char *filebuf; +find_in_path(char *cmd, char *filebuf) { char *dirp, *endp, *bufp; /* dir, end */ @@ -555,12 +545,12 @@ *bufp++ = '/'; strcpy(bufp, cmd); if (access(filebuf, X_OK) == 0) - return (0); + return 0; if (*endp == ':') endp++; dirp = endp; /* next dir */ } - return (-1); + return -1; } /* @@ -568,17 +558,17 @@ * which was opened with OTYPE and MODE. */ void -child_newfd(setfd, file, otype) - int setfd; /* what to set (i.e. 0,1,2) */ - char *file; - int otype; /* O_RDONLY, etc. */ +child_newfd(int setfd, char *file, int otype) +/* int setfd; what to set (i.e. 0,1,2) */ +/* char *file; */ +/* int otype; O_RDONLY, etc. */ { int newfd; close(setfd); if ((newfd = open(file, otype, def_omode)) < 0) { perror(file); - exit(1); + exit(EXIT_FAILURE); } if (newfd != setfd) { dup2(newfd, setfd); @@ -587,9 +577,7 @@ } void -print_termsig(fp, cstat) - FILE *fp; - int cstat; +print_termsig(FILE *fp, int cstat) { fprintf(fp, "Terminated, signal %d", WTERMSIG(cstat));