#include <errno.h>
#include <string.h>
#include "citadel.h"
+#include "citadel_dirs.h"
#include "config.h"
-void make_message(FILE *fp, char *target_room, char *author)
+#ifndef HAVE_SNPRINTF
+#include "snprintf.h"
+#endif
+
+
+/*
+ * Simplified function to generate a message in our format
+ */
+static void ap_make_message(FILE *fp, char *target_room, char *author)
{
int a;
long bb, cc;
int ch;
int i;
+ int relh=0;
+ int home=0;
+ char relhome[PATH_MAX]="";
+ char ctdldir[PATH_MAX]=CTDLDIR;
+
+ /* TODO: should we be able to calculate relative dirs? */
+ calc_dirs_n_files(relh, home, relhome, ctdldir);
+
+
get_config();
strcpy(target_room, "Aide");
}
}
+ snprintf(tempspool, sizeof tempspool,
+ "%s/ap.%04lx",
+ ctdl_netin_dir,
+ (long)getpid());
- snprintf(tempspool, sizeof tempspool, "./network/spoolin/ap.%d",
- getpid());
+ unlink(tempspool);
- tempfp = tmpfile();
+ tempfp = fopen(tempspool, "w+b");
+ unlink(tempspool);
if (tempfp == NULL) {
perror("cannot open temp file");
exit(errno);
}
/* Generate a message from stdin */
- make_message(tempfp, target_room, author);
+ ap_make_message(tempfp, target_room, author);
/* Copy it to a new temp file in the spool directory */
rewind(tempfp);
perror("cannot open spool file");
exit(errno);
}
- while (ch = getc(tempfp), (ch >= 0))
+ while (ch = getc(tempfp), (ch >= 0)) {
putc(ch, spoolfp);
+ }
fclose(tempfp);
fclose(spoolfp);
- execlp("./netproc", "netproc", "-i", NULL);
- perror("cannot run netproc");
- exit(errno);
+ exit(0);
}