#include "ctdl_module.h"
#include "user_ops.h"
-/*
- * network_talking_to() -- concurrency checker
- */
-static char *nttlist = NULL;
-int network_talking_to(const char *nodename, int operation) {
-
- char *ptr = NULL;
- int i;
- char buf[SIZ];
- int retval = 0;
-
- begin_critical_section(S_NTTLIST);
-
- switch(operation) {
-
- case NTT_ADD:
- if (nttlist == NULL) nttlist = strdup("");
- if (nttlist == NULL) break;
- nttlist = (char *)realloc(nttlist,
- (strlen(nttlist) + strlen(nodename) + 3) );
- strcat(nttlist, "|");
- strcat(nttlist, nodename);
- break;
-
- case NTT_REMOVE:
- if (nttlist == NULL) break;
- if (IsEmptyStr(nttlist)) break;
- ptr = malloc(strlen(nttlist));
- if (ptr == NULL) break;
- strcpy(ptr, "");
- for (i = 0; i < num_tokens(nttlist, '|'); ++i) {
- extract_token(buf, nttlist, i, '|', sizeof buf);
- if ( (!IsEmptyStr(buf))
- && (strcasecmp(buf, nodename)) ) {
- strcat(ptr, buf);
- strcat(ptr, "|");
- }
- }
- free(nttlist);
- nttlist = ptr;
- break;
-
- case NTT_CHECK:
- if (nttlist == NULL) break;
- if (IsEmptyStr(nttlist)) break;
- for (i = 0; i < num_tokens(nttlist, '|'); ++i) {
- extract_token(buf, nttlist, i, '|', sizeof buf);
- if (!strcasecmp(buf, nodename)) ++retval;
- }
- break;
- }
-
- if (nttlist != NULL) syslog(LOG_DEBUG, "nttlist=<%s>\n", nttlist);
- end_critical_section(S_NTTLIST);
- return(retval);
-}
-
-void cleanup_nttlist(void)
-{
- begin_critical_section(S_NTTLIST);
- if (nttlist != NULL)
- free(nttlist);
- nttlist = NULL;
- end_critical_section(S_NTTLIST);
-}
-
/*
char buf[PATH_MAX];
int a;
struct ctdlroom qrbuf;
- int rv = 0;
extract_token(filename, cmdbuf, 0, '|', sizeof filename);
extract_token(newroom, cmdbuf, 1, '|', sizeof newroom);
snprintf(buf, sizeof buf,
"cat ./files/%s/filedir |grep \"%s\" >>./files/%s/filedir",
CC->room.QRdirname, filename, qrbuf.QRdirname);
- rv = system(buf);
+ system(buf);
cprintf("%d File '%s' has been moved.\n", CIT_OK, filename);
}
}
if (bytes > 100000) {
- cprintf("%d You may not write more than 100000 bytes.\n",
- ERROR + TOO_BIG);
- return;
+ bytes = 100000;
}
cprintf("%d %d\n", SEND_BINARY, bytes);
CTDL_MODULE_INIT(file_ops)
{
if (!threading) {
+
CtdlRegisterProtoHook(cmd_delf, "DELF", "Delete a file");
CtdlRegisterProtoHook(cmd_movf, "MOVF", "Move a file");
CtdlRegisterProtoHook(cmd_open, "OPEN", "Open a download file transfer");
CtdlRegisterProtoHook(cmd_nuop, "NUOP", "Open a network spool file for upload");
CtdlRegisterProtoHook(cmd_oimg, "OIMG", "Open an image file for download");
CtdlRegisterProtoHook(cmd_uimg, "UIMG", "Upload an image file");
- CtdlRegisterCleanupHook(cleanup_nttlist);
}
/* return our Subversion id for the Log */
return "file_ops";