Pull in some of the lpt_port_test fixes from lpt.c.
[unix-history] / usr.bin / tftp / main.c
index 48ee187..bd3fb6c 100644 (file)
@@ -60,6 +60,7 @@ static char sccsid[] = "@(#)main.c    5.10 (Berkeley) 3/1/91";
 #include <netdb.h>
 
 #define        TIMEOUT         5               /* secs between rexmt's */
 #include <netdb.h>
 
 #define        TIMEOUT         5               /* secs between rexmt's */
+#define LBUFLEN                200             /* size of input buffer */
 
 struct sockaddr_in s_in;
 int    f;
 
 struct sockaddr_in s_in;
 int    f;
@@ -68,7 +69,7 @@ int   trace;
 int    verbose;
 int    connected;
 char   mode[32];
 int    verbose;
 int    connected;
 char   mode[32];
-char   line[200];
+char   line[LBUFLEN];
 int    margc;
 char   *margv[20];
 char   *prompt = "tftp";
 int    margc;
 char   *margv[20];
 char   *prompt = "tftp";
@@ -169,12 +170,12 @@ setpeer(argc, argv)
        if (argc < 2) {
                strcpy(line, "Connect ");
                printf("(to) ");
        if (argc < 2) {
                strcpy(line, "Connect ");
                printf("(to) ");
-               gets(&line[strlen(line)]);
+               fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin);
                makeargv();
                argc = margc;
                argv = margv;
        }
                makeargv();
                argc = margc;
                argv = margv;
        }
-       if (argc > 3) {
+       if ((argc < 2) || (argc > 3)) {
                printf("usage: %s host-name [port]\n", argv[0]);
                return;
        }
                printf("usage: %s host-name [port]\n", argv[0]);
                return;
        }
@@ -284,7 +285,7 @@ put(argc, argv)
        if (argc < 2) {
                strcpy(line, "send ");
                printf("(file) ");
        if (argc < 2) {
                strcpy(line, "send ");
                printf("(file) ");
-               gets(&line[strlen(line)]);
+               fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin);
                makeargv();
                argc = margc;
                argv = margv;
                makeargv();
                argc = margc;
                argv = margv;
@@ -375,7 +376,7 @@ get(argc, argv)
        if (argc < 2) {
                strcpy(line, "get ");
                printf("(files) ");
        if (argc < 2) {
                strcpy(line, "get ");
                printf("(files) ");
-               gets(&line[strlen(line)]);
+               fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin);
                makeargv();
                argc = margc;
                argv = margv;
                makeargv();
                argc = margc;
                argv = margv;
@@ -455,7 +456,7 @@ setrexmt(argc, argv)
        if (argc < 2) {
                strcpy(line, "Rexmt-timeout ");
                printf("(value) ");
        if (argc < 2) {
                strcpy(line, "Rexmt-timeout ");
                printf("(value) ");
-               gets(&line[strlen(line)]);
+               fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin);
                makeargv();
                argc = margc;
                argv = margv;
                makeargv();
                argc = margc;
                argv = margv;
@@ -481,7 +482,7 @@ settimeout(argc, argv)
        if (argc < 2) {
                strcpy(line, "Maximum-timeout ");
                printf("(value) ");
        if (argc < 2) {
                strcpy(line, "Maximum-timeout ");
                printf("(value) ");
-               gets(&line[strlen(line)]);
+               fgets(&line[strlen(line)], LBUFLEN-strlen(line), stdin);
                makeargv();
                argc = margc;
                argv = margv;
                makeargv();
                argc = margc;
                argv = margv;
@@ -547,14 +548,14 @@ command(top)
                putchar('\n');
        for (;;) {
                printf("%s> ", prompt);
                putchar('\n');
        for (;;) {
                printf("%s> ", prompt);
-               if (gets(line) == 0) {
+               if (fgets(line, LBUFLEN, stdin) == 0) {
                        if (feof(stdin)) {
                                quit();
                        } else {
                                continue;
                        }
                }
                        if (feof(stdin)) {
                                quit();
                        } else {
                                continue;
                        }
                }
-               if (line[0] == 0)
+               if ((line[0] == 0) || (line[0] == '\n'))
                        continue;
                makeargv();
                c = getcmd(margv[0]);
                        continue;
                makeargv();
                c = getcmd(margv[0]);