/* * === FUNCTION ====================================================================== * Name: GET * Description: * ===================================================================================== */ void GET (int argc, char *argv[]) { if (argc == 2){ argc++; argv[2] = getname(argv[1]); } if (argc < 2 || argc > 3){ printf("Usage: %s remote-file [local-file]\n", argv[0]); code = -1; return; } recvreq("RETR", argv[2], argv[1], "w"); } /* ----- end of function GET ----- */
static void listenloop(struct muth *muth, va_list args) { vavar(int, lfd); int fd; struct hthead *req; while(1) { block(0, EV_READ, 0); if((fd = recvreq(lfd, &req)) < 0) { if(errno != 0) flog(LOG_ERR, "recvreq: %s", strerror(errno)); break; } mustart(serve, req, fd); } }
/* * === FUNCTION ====================================================================== * Name: LS * Description: * ===================================================================================== */ void LS (int argc, char *argv[]) { const char *c; if (argc > 3){ printf("Usage: %s [remote-dir] [local-file]\n", argv[0]); code = -1; return; } if (argc < 2) { argc++, argv[1] = "."; } if (argc < 3) { argc++, argv[2] = "-"; } c = (argv[0][0] == 'n' ? "NLST" : "LIST"); recvreq(c, argv[2], argv[1], "w"); } /* ----- end of function LS----- */