[BACK]Return to main.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / tftp

Diff for /src/usr.bin/tftp/main.c between version 1.5 and 1.6

version 1.5, 2000/12/07 18:13:14 version 1.6, 2001/03/22 01:34:01
Line 69 
Line 69 
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
 #include <unistd.h>  #include <unistd.h>
   #include <err.h>
   
 #include "extern.h"  #include "extern.h"
   
Line 162 
Line 163 
         struct sockaddr_in s_in;          struct sockaddr_in s_in;
   
         sp = getservbyname("tftp", "udp");          sp = getservbyname("tftp", "udp");
         if (sp == 0) {          if (sp == 0)
                 fprintf(stderr, "tftp: udp/tftp: unknown service\n");                  errx(1, "udp/tftp: unknown service");
                 exit(1);  
         }  
         f = socket(AF_INET, SOCK_DGRAM, 0);          f = socket(AF_INET, SOCK_DGRAM, 0);
         if (f < 0) {          if (f < 0)
                 perror("tftp: socket");                  err(3, "tftp: socket");
                 exit(3);  
         }  
         bzero((char *)&s_in, sizeof (s_in));          bzero((char *)&s_in, sizeof (s_in));
         s_in.sin_family = AF_INET;          s_in.sin_family = AF_INET;
         if (bind(f, (struct sockaddr *)&s_in, sizeof (s_in)) < 0) {          if (bind(f, (struct sockaddr *)&s_in, sizeof (s_in)) < 0)
                 perror("tftp: bind");                  err(1, "tftp: bind");
                 exit(1);  
         }  
         strcpy(mode, "netascii");          strcpy(mode, "netascii");
         signal(SIGINT, intr);          signal(SIGINT, intr);
         if (argc > 1) {          if (argc > 1) {
Line 291 
Line 286 
 setbinary(argc, argv)  setbinary(argc, argv)
         int argc;          int argc;
         char *argv[];          char *argv[];
 {  {
   
         settftpmode("octet");          settftpmode("octet");
 }  }
Line 355 
Line 350 
                 *targ++ = 0;                  *targ++ = 0;
                 hp = gethostbyname(cp);                  hp = gethostbyname(cp);
                 if (hp == NULL) {                  if (hp == NULL) {
                         fprintf(stderr, "tftp: %s: ", cp);                          warnx("%s: %s", cp, hstrerror(h_errno));
                         herror((char *)NULL);  
                         return;                          return;
                 }                  }
                 bcopy(hp->h_addr, (caddr_t)&peeraddr.sin_addr, hp->h_length);                  bcopy(hp->h_addr, (caddr_t)&peeraddr.sin_addr, hp->h_length);
Line 372 
Line 366 
                 cp = argc == 2 ? tail(targ) : argv[1];                  cp = argc == 2 ? tail(targ) : argv[1];
                 fd = open(cp, O_RDONLY);                  fd = open(cp, O_RDONLY);
                 if (fd < 0) {                  if (fd < 0) {
                         fprintf(stderr, "tftp: "); perror(cp);                          warn("open: %s", cp);
                         return;                          return;
                 }                  }
                 if (verbose)                  if (verbose)
Line 384 
Line 378 
         }          }
                                 /* this assumes the target is a directory */                                  /* this assumes the target is a directory */
                                 /* on a remote unix system.  hmmmm.  */                                  /* on a remote unix system.  hmmmm.  */
         cp = strchr(targ, '\0');          cp = strchr(targ, '\0');
         *cp++ = '/';          *cp++ = '/';
         for (n = 1; n < argc - 1; n++) {          for (n = 1; n < argc - 1; n++) {
                 strcpy(cp, tail(argv[n]));                  strcpy(cp, tail(argv[n]));
                 fd = open(argv[n], O_RDONLY);                  fd = open(argv[n], O_RDONLY);
                 if (fd < 0) {                  if (fd < 0) {
                         fprintf(stderr, "tftp: "); perror(argv[n]);                          warn("open: %s", argv[n]);
                         continue;                          continue;
                 }                  }
                 if (verbose)                  if (verbose)
Line 452 
Line 446 
                         *src++ = 0;                          *src++ = 0;
                         hp = gethostbyname(argv[n]);                          hp = gethostbyname(argv[n]);
                         if (hp == NULL) {                          if (hp == NULL) {
                                 fprintf(stderr, "tftp: %s: ", argv[n]);                                  warnx("%s: %s", argv[n], hstrerror(h_errno));
                                 herror((char *)NULL);  
                                 continue;                                  continue;
                         }                          }
                         bcopy(hp->h_addr, (caddr_t)&peeraddr.sin_addr,                          bcopy(hp->h_addr, (caddr_t)&peeraddr.sin_addr,
Line 466 
Line 459 
                         cp = argc == 3 ? argv[2] : tail(src);                          cp = argc == 3 ? argv[2] : tail(src);
                         fd = creat(cp, 0644);                          fd = creat(cp, 0644);
                         if (fd < 0) {                          if (fd < 0) {
                                 fprintf(stderr, "tftp: "); perror(cp);                                  warn("create: %s", cp);
                                 return;                                  return;
                         }                          }
                         if (verbose)                          if (verbose)
Line 479 
Line 472 
                 cp = tail(src);         /* new .. jdg */                  cp = tail(src);         /* new .. jdg */
                 fd = creat(cp, 0644);                  fd = creat(cp, 0644);
                 if (fd < 0) {                  if (fd < 0) {
                         fprintf(stderr, "tftp: "); perror(cp);                          warn("create: %s", cp);
                         continue;                          continue;
                 }                  }
                 if (verbose)                  if (verbose)
Line 585 
Line 578 
         char *filename;          char *filename;
 {  {
         register char *s;          register char *s;
   
         while (*filename) {          while (*filename) {
                 s = strrchr(filename, '/');                  s = strrchr(filename, '/');
                 if (s == NULL)                  if (s == NULL)

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6