/* * Receive file(s). */ void get(int argc, char *argv[]) { int fd; register int n; register char *cp; char *src; if (argc < 2) { strcpy(line, "get "); printf("(files) "); fgets(&line[strlen(line)], sizeof(line) - strlen(line), stdin); makeargv(); argc = margc; argv = margv; } if (argc < 2) { getusage(argv[0]); return; } if (!connected) { for (n = 1; n < argc ; n++) if (index(argv[n], ':') == 0) { getusage(argv[0]); return; } } for (n = 1; n < argc ; n++) { src = index(argv[n], ':'); if (src == NULL) src = argv[n]; else { struct hostent *hp; *src++ = 0; hp = gethostbyname(argv[n]); if (hp == NULL) { fprintf(stderr, "tftp: %s: ", argv[n]); herror(NULL); continue; } if (hp->h_length > (int)sizeof(s_inn.sin_addr)) { hp->h_length = sizeof(s_inn.sin_addr); } memcpy(&s_inn.sin_addr, hp->h_addr, hp->h_length); s_inn.sin_family = hp->h_addrtype; connected = 1; strncpy(hostname, hp->h_name, sizeof(hostname)); hostname[sizeof(hostname)-1] = 0; } if (argc < 4) { cp = argc == 3 ? argv[2] : tail(src); fd = creat(cp, 0644); if (fd < 0) { fprintf(stderr, "tftp: "); perror(cp); return; } if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); s_inn.sin_port = port; recvfile(fd, src, mode); break; } cp = tail(src); /* new .. jdg */ fd = creat(cp, 0644); if (fd < 0) { fprintf(stderr, "tftp: "); perror(cp); continue; } if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); s_inn.sin_port = port; recvfile(fd, src, mode); } }
/* * Receive file(s). */ void get(int argc, char *argv[]) { int fd; int n; char *cp; char *src; if (argc < 2) { strlcpy(line, "get ", sizeof(line)); printf("(files) "); readcmd(&line[strlen(line)], LBUFLEN - strlen(line), stdin); if (makeargv()) return; argc = margc; argv = margv; } if (argc < 2) { getusage(argv[0]); return; } if (!connected) { for (n = 1; n < argc; n++) if (strrchr(argv[n], ':') == 0) { getusage(argv[0]); return; } } for (n = 1; n < argc; n++) { src = strrchr(argv[n], ':'); if (src == NULL) src = argv[n]; else { char *cp; *src++ = 0; cp = argv[n]; if (cp[0] == '[' && cp[strlen(cp) - 1] == ']') { cp[strlen(cp) - 1] = '\0'; cp++; } setpeer(cp, NULL); if (!connected) continue; } if (argc < 4) { cp = argc == 3 ? argv[2] : tail(src); fd = open(cp, O_CREAT | O_TRUNC | O_WRONLY, 0644); if (fd < 0) { warn("create: %s", cp); return; } if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); recvfile(fd, src, mode); break; } cp = tail(src); /* new .. jdg */ fd = open(cp, O_CREAT | O_TRUNC | O_WRONLY, 0644); if (fd < 0) { warn("create: %s", cp); continue; } if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); recvfile(fd, src, mode); } }
/* * Receive file(s). */ void get (int argc, char *argv[]) { int fd; register int n; register char *cp; char *src; if (argc < 2) get_args ("get", "(files) ", &argc, &argv); if (argc < 2) { getusage (argv[0]); return; } if (!connected) { for (n = 1; n < argc; n++) if (strchr (argv[n], ':') == 0) { getusage (argv[0]); return; } } for (n = 1; n < argc; n++) { src = strchr (argv[n], ':'); if (src == NULL) src = argv[n]; else { *src++ = 0; if (resolve_name (argv[n], 0) != RESOLVE_OK) continue; } if (argc < 4) { cp = argc == 3 ? argv[2] : tail (src); fd = creat (cp, 0644); if (fd < 0) { fprintf (stderr, "tftp: "); perror (cp); return; } if (verbose) printf ("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); peeraddr.sin_port = port ? port : sp->s_port; recvfile (fd, src, mode); break; } cp = tail (src); /* new .. jdg */ fd = creat (cp, 0644); if (fd < 0) { fprintf (stderr, "tftp: "); perror (cp); continue; } if (verbose) printf ("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); peeraddr.sin_port = port ? port : sp->s_port; recvfile (fd, src, mode); } }
/* * Receive file(s). */ void get(int argc, char *argv[]) { int fd; int n; char *cp; char *src; if (argc < 2) { strlcpy(line, "get ", sizeof(line)); printf("(files) "); readcmd(&line[strlen(line)], LBUFLEN - strlen(line), stdin); if (makeargv()) return; argc = margc; argv = margv; } if (argc < 2) { getusage(argv[0]); return; } if (!connected) { for (n = 1; n < argc; n++) if (strchr(argv[n], ':') == 0) { getusage(argv[0]); return; } } for (n = 1; n < argc; n++) { src = strchr(argv[n], ':'); if (src == NULL) src = argv[n]; else { struct hostent *hp; *src++ = 0; hp = gethostbyname(argv[n]); if (hp == NULL) { warnx("%s: %s", argv[n], hstrerror(h_errno)); continue; } bcopy(hp->h_addr, (caddr_t)&peeraddr.sin_addr, hp->h_length); peeraddr.sin_family = hp->h_addrtype; connected = 1; strlcpy(hostname, hp->h_name, sizeof(hostname)); } if (argc < 4) { cp = argc == 3 ? argv[2] : tail(src); fd = creat(cp, 0644); if (fd < 0) { warn("create: %s", cp); return; } if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); peeraddr.sin_port = port; recvfile(fd, src, mode); break; } cp = tail(src); /* new .. jdg */ fd = creat(cp, 0644); if (fd < 0) { warn("create: %s", cp); continue; } if (verbose) printf("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode); peeraddr.sin_port = port; recvfile(fd, src, mode); } }
/* * Receive file(s). */ void get (int argc, char *argv[]) { int fd; int n; char *cp; char *src; if (argc < 2) { getmoreargs ("get ", "(files) "); makeargv (); argc = margc; argv = margv; } if (argc < 2) { getusage (argv[0]); return; } if (!connected) { for (n = 1; n < argc; n++) if (strchr (argv[n], ':') == 0) { getusage (argv[0]); return; } } for (n = 1; n < argc; n++) { src = strchr (argv[n], ':'); if (src == NULL) src = argv[n]; else { struct hostent *hp; *src++ = 0; hp = gethostbyname (argv[n]); if (hp == NULL) { fprintf (stderr, "tftp: %s: ", argv[n]); herror ((char *) NULL); continue; } bcopy (hp->h_addr, (caddr_t) & peeraddr.sin_addr, hp->h_length); peeraddr.sin_family = hp->h_addrtype; connected = 1; hostname = xstrdup (hp->h_name); } if (argc < 4) { cp = argc == 3 ? argv[2] : tail (src); fd = open (cp, O_WRONLY | O_CREAT | O_TRUNC | mode->m_openflags, 0666); if (fd < 0) { fprintf (stderr, "tftp: "); perror (cp); return; } if (verbose) printf ("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode->m_mode); peeraddr.sin_port = port; tftp_recvfile (fd, src, mode->m_mode); break; } cp = tail (src); /* new .. jdg */ fd = open (cp, O_WRONLY | O_CREAT | O_TRUNC | mode->m_openflags, 0666); if (fd < 0) { fprintf (stderr, "tftp: "); perror (cp); continue; } if (verbose) printf ("getting from %s:%s to %s [%s]\n", hostname, src, cp, mode->m_mode); peeraddr.sin_port = port; tftp_recvfile (fd, src, mode->m_mode); } }