#include <pwd.h>
#include <errno.h>
#include <sys/types.h>
-#include <sys/time.h>
+
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+
#include <sys/wait.h>
#include <string.h>
+#include <ctype.h>
#include <limits.h>
#include "citadel.h"
#include "server.h"
-#include <time.h>
#include "sysdep_decls.h"
#include "citserver.h"
#include "support.h"
cprintf("%ld\n", usbuf->posted);
cprintf("%d\n", usbuf->axlevel);
cprintf("%ld\n", usbuf->usernum);
- cprintf("%ld\n", usbuf->lastcall);
+ cprintf("%ld\n", (long)usbuf->lastcall);
cprintf("%d\n", usbuf->USuserpurge);
cprintf("%s\n", usbuf->fullname);
cprintf("%d\n", usbuf->USscreenwidth);
cprintf("%s\n", qrbuf->QRpasswd);
cprintf("%ld\n", qrbuf->QRroomaide);
cprintf("%ld\n", qrbuf->QRhighest);
- cprintf("%ld\n", qrbuf->QRgen);
+ cprintf("%ld\n", (long)qrbuf->QRgen);
cprintf("%u\n", qrbuf->QRflags);
cprintf("%s\n", qrbuf->QRdirname);
cprintf("%ld\n", qrbuf->QRinfo);
cprintf("%d\n", qrbuf->QRfloor);
- cprintf("%ld\n", qrbuf->QRmtime);
+ cprintf("%ld\n", (long)qrbuf->QRmtime);
cprintf("%d\n", qrbuf->QRep.expire_mode);
cprintf("%d\n", qrbuf->QRep.expire_value);
cprintf("%ld\n", qrbuf->QRnumber);
struct visit vbuf;
struct cdbdata *cdbv;
- cdb_begin_transaction();
cdb_rewind(CDB_VISIT);
while (cdbv = cdb_next_item(CDB_VISIT), cdbv != NULL) {
cprintf("%ld\n", vbuf.v_roomnum);
cprintf("%ld\n", vbuf.v_roomgen);
cprintf("%ld\n", vbuf.v_usernum);
- cprintf("%ld\n", vbuf.v_lastseen);
+
+ if (strlen(vbuf.v_seen) > 0) {
+ cprintf("%s\n", vbuf.v_seen);
+ }
+ else {
+ cprintf("%ld\n", vbuf.v_lastseen);
+ }
+
cprintf("%u\n", vbuf.v_flags);
}
- cdb_end_transaction();
}
sprintf(buf, "./base64 -e >%s", tempfile);
fp = popen(buf, "w");
fwrite(smr.ser, smr.len, 1, fp);
- fclose(fp);
+ pclose(fp);
phree(smr.ser);
}
}
fclose(artv_global_message_list);
- lprintf(7, "Exported %ld messages.\n", count);
+ lprintf(7, "Exported %d messages.\n", count);
}
void artv_import_visit(void) {
struct visit vbuf;
char buf[SIZ];
+ int i;
+ int is_textual_seen = 0;
client_gets(buf); vbuf.v_roomnum = atol(buf);
client_gets(buf); vbuf.v_roomgen = atol(buf);
client_gets(buf); vbuf.v_usernum = atol(buf);
- client_gets(buf); vbuf.v_lastseen = atol(buf);
+
+ client_gets(buf);
+ vbuf.v_lastseen = atol(buf);
+ for (i=0; i<strlen(buf); ++i) if (!isdigit(buf[i])) is_textual_seen = 1;
+ if (is_textual_seen) strcpy(vbuf.v_seen, buf);
+
client_gets(buf); vbuf.v_flags = atoi(buf);
put_visit(&vbuf);
lprintf(7, "Imported visit %ld/%ld/%ld\n",
void artv_import_message(void) {
struct SuppMsgInfo smi;
long msgnum;
- int msglen;
+ long msglen;
FILE *fp;
char buf[SIZ];
char tempfile[SIZ];
while (client_gets(buf), strcasecmp(buf, END_OF_MESSAGE)) {
fprintf(fp, "%s\n", buf);
}
- fclose(fp);
+ pclose(fp);
fp = fopen(tempfile, "rb");
fseek(fp, 0L, SEEK_END);
msglen = ftell(fp);
char cmd[SIZ];
static int is_running = 0;
- if (CtdlAccessCheck(ac_aide)) return; /* FIXME should be intpgm */
+ if (CtdlAccessCheck(ac_internal)) return;
if (is_running) {
cprintf("%d The importer/exporter is already running.\n",
ERROR);