-/*
- * send a file over the net
- */
-void cmd_netf(char *cmdbuf)
-{
- char pathname[SIZ], filename[SIZ], destsys[SIZ], buf[SIZ];
- char outfile[SIZ];
- int a, e;
- time_t now;
- FILE *ofp;
- static int seq = 1;
-
- extract(filename, cmdbuf, 0);
- extract(destsys, cmdbuf, 1);
-
- if (CtdlAccessCheck(ac_room_aide)) return;
-
- if ((CC->room.QRflags & QR_DIRECTORY) == 0) {
- cprintf("%d No directory in this room.\n",
- ERROR + NOT_HERE);
- return;
- }
-
- if (strlen(filename) == 0) {
- cprintf("%d You must specify a file name.\n",
- ERROR + FILE_NOT_FOUND);
- return;
- }
-
- for (a = 0; a < strlen(filename); ++a) {
- if (filename[a] == '/') {
- filename[a] = '_';
- }
- }
- snprintf(pathname, sizeof pathname, "./files/%s/%s",
- CC->room.QRdirname, filename);
- if (access(pathname, 0) != 0) {
- cprintf("%d File '%s' not found.\n",
- ERROR + FILE_NOT_FOUND, pathname);
- return;
- }
- snprintf(buf, sizeof buf, "sysop@%s", destsys);
- e = alias(buf);
- if (e != MES_IGNET) {
- cprintf("%d No such system: '%s'\n",
- ERROR + NO_SUCH_SYSTEM, destsys);
- return;
- }
- snprintf(outfile, sizeof outfile,
- "%s/network/spoolin/nsf.%04lx.%04x",
- BBSDIR, (long)getpid(), ++seq);
- ofp = fopen(outfile, "a");
- if (ofp == NULL) {
- cprintf("%d internal error\n", ERROR + INTERNAL_ERROR);
- return;
- }
-
- putc(255, ofp);
- putc(MES_NORMAL, ofp);
- putc(0, ofp);
- fprintf(ofp, "Pcit%ld", CC->user.usernum);
- putc(0, ofp);
- time(&now);
- fprintf(ofp, "T%ld", (long) now);
- putc(0, ofp);
- fprintf(ofp, "A%s", CC->user.fullname);
- putc(0, ofp);
- fprintf(ofp, "O%s", CC->room.QRname);
- putc(0, ofp);
- fprintf(ofp, "N%s", NODENAME);
- putc(0, ofp);
- fprintf(ofp, "D%s", destsys);
- putc(0, ofp);
- fprintf(ofp, "SFILE");
- putc(0, ofp);
- putc('M', ofp);
- fclose(ofp);
-
- snprintf(buf, sizeof buf,
- "cd ./files/%s; uuencode %s <%s 2>/dev/null >>%s",
- CC->room.QRdirname, filename, filename, outfile);
- system(buf);
-
- ofp = fopen(outfile, "a");
- putc(0, ofp);
- fclose(ofp);
-
- cprintf("%d File '%s' has been sent to %s.\n", CIT_OK, filename,
- destsys);
- /* FIXME start a network run here. */
- return;
-}
-