]> code.citadel.org Git - citadel.git/blobdiff - citadel/file_ops.c
* When a network node is uploading a spool file, receive it in ./network/spooltmp...
[citadel.git] / citadel / file_ops.c
index 0a790832aeb931069a9929f3f8824decff45699a..0438b244e2870ff6625baa56cdcd58278cc78c20 100644 (file)
@@ -569,6 +569,7 @@ void cmd_ucls(char *cmd)
 {
        FILE *fp;
        char upload_notice[512];
+       static int seq = 0;
 
        if (CC->upload_fp == NULL) {
                cprintf("%d You don't have an upload file open.\n", ERROR + RESOURCE_NOT_OPEN);
@@ -582,7 +583,27 @@ void cmd_ucls(char *cmd)
                CC->upload_type = UPL_FILE;
                cprintf("%d Upload completed.\n", CIT_OK);
 
-               /* FIXME ... here we need to trigger a network run */
+               if (CC->upload_type == UPL_NET) {
+                       char final_filename[PATH_MAX];
+                       snprintf(final_filename, sizeof final_filename,
+                               "%s/%s.%04lx.%04x",
+                               ctdl_netin_dir,
+                               CC->net_node,
+                               (long)getpid(),
+                               ++seq
+                       );
+
+                       if (link(CC->upl_path, final_filename) == 0) {
+                               unlink(CC->upl_path);
+                       }
+                       else {
+                               CtdlLogPrintf(CTDL_ALERT, "Cannot link %d to %d: %s\n",
+                                       CC->upl_path, final_filename, strerror(errno)
+                               );
+                       }
+
+                       /* FIXME ... here we need to trigger a network run */
+               }
 
                return;
        }