cmd=27,0,&.,&Aide,&Room,&Invite user
cmd=28,0,&.,&Aide,&Room,&Kick out user
cmd=51,1,&.,&Aide,&File,&Delete
-cmd=53,1,&.,&Aide,&File,&Send over net
cmd=54,1,&.,&Aide,&File,&Move
cmd=70,2,&.,&Aide,&Message edit:
cmd=78,1,&.,&Aide,&Post
}
-/* NETF */
-int CtdlIPCNetSendFile(CtdlIPC *ipc, const char *filename, const char *destnode, char *cret)
-{
- register int ret;
- char *aaa;
-
- if (!cret) return -2;
- if (!filename) return -2;
- if (!destnode) return -2;
-
- aaa = (char *)malloc(strlen(filename) + strlen(destnode) + 7);
- if (!aaa) return -1;
-
- sprintf(aaa, "NETF %s|%s", filename, destnode);
- ret = CtdlIPCGenericCommand(ipc, aaa, NULL, 0, NULL, NULL, cret);
- free(aaa);
- return ret;
-}
-
-
/* RWHO */
int CtdlIPCOnlineUsers(CtdlIPC *ipc, char **listing, time_t *stamp, char *cret)
{
}
-/*
- * send a file over the net
- */
-void cmd_netf(char *cmdbuf)
-{
- char pathname[256], filename[256], destsys[256], buf[256];
- char outfile[256];
- int a, e;
- time_t now;
- FILE *ofp;
- static int seq = 1;
-
- extract_token(filename, cmdbuf, 0, '|', sizeof filename);
- extract_token(destsys, cmdbuf, 1, '|', sizeof destsys);
-
- 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 (IsEmptyStr(filename)) {
- cprintf("%d You must specify a file name.\n",
- ERROR + FILE_NOT_FOUND);
- return;
- }
-
- for (a = 0; !IsEmptyStr(&filename[a]); ++a) {
- if ( (filename[a] == '/') || (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/nsf.%04lx.%04x",
- ctdl_netin_dir,
- (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, "P%s", CC->user.fullname);
- 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 %s/%s; uuencode %s <%s 2>/dev/null >>%s",
- ctdl_file_dir,
- /* FIXME: detect uuencode while installation? or inline */
- 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;
-}
-
/*
* This code is common to all commands which open a file for downloading,
* regardless of whether it's a file from the directory, an image, a network
err_printf("%s\n", buf);
}
-/*
- * <.A>ide <F>ile <S>end command
- */
-void netsendfile(CtdlIPC *ipc)
-{
- char filename[32], destsys[20], buf[256];
-
- newprompt("Filename: ", filename, 31);
- if (IsEmptyStr(filename))
- return;
- newprompt("System to send to: ", destsys, 19);
- CtdlIPCNetSendFile(ipc, filename, destsys, buf);
- err_printf("%s\n", buf);
- return;
-}
/*
* <.A>ide <F>ile <M>ove command