]> code.citadel.org Git - citadel.git/blobdiff - citadel/serv_vandelay.c
Updated the importer/exporter to include new config items
[citadel.git] / citadel / serv_vandelay.c
index 372b1e2555b823ba228b74a37f53ae8960469a70..0627187a6b4c1fc1768a45b3336d4c699eb2d8e2 100644 (file)
@@ -43,6 +43,7 @@
 #include "user_ops.h"
 #include "room_ops.h"
 #include "control.h"
+#include "euidindex.h"
 
 #define END_OF_MESSAGE "---eom---dbd---"
 
@@ -102,7 +103,7 @@ void artv_export_rooms_backend(struct ctdlroom *qrbuf, void *data) {
        /* format of message list export is all message numbers output
         * one per line terminated by a 0.
         */
-       CtdlForEachMessage(MSGS_ALL, 0L, NULL, NULL,
+       CtdlForEachMessage(MSGS_ALL, 0L, NULL, NULL, NULL,
                artv_export_room_msg, NULL);
        cprintf("0\n");
 
@@ -192,7 +193,7 @@ void artv_export_message(long msgnum) {
        struct ser_ret smr;
        FILE *fp;
        char buf[SIZ];
-       char tempfile[SIZ];
+       char tempfile[PATH_MAX];
 
        msg = CtdlFetchMessage(msgnum, 1);
        if (msg == NULL) return;        /* fail silently */
@@ -207,7 +208,7 @@ void artv_export_message(long msgnum) {
        CtdlFreeMessage(msg);
 
        /* write it in base64 */
-       strcpy(tempfile, tmpnam(NULL));
+       CtdlMakeTempFileName(tempfile, sizeof tempfile);
        snprintf(buf, sizeof buf, "./base64 -e >%s", tempfile);
        fp = popen(buf, "w");
        fwrite(smr.ser, smr.len, 1, fp);
@@ -264,7 +265,7 @@ void artv_do_export(void) {
        cprintf("%s\n", config.c_fqdn);
        cprintf("%s\n", config.c_humannode);
        cprintf("%s\n", config.c_phonenum);
-       cprintf("%ld\n", (long)config.c_bbsuid);
+       cprintf("%ld\n", (long)config.c_ctdluid);
        cprintf("%d\n", config.c_creataide);
        cprintf("%d\n", config.c_sleeping);
        cprintf("%d\n", config.c_initax);
@@ -273,7 +274,7 @@ void artv_do_export(void) {
        cprintf("%s\n", config.c_twitroom);
        cprintf("%s\n", config.c_moreprompt);
        cprintf("%d\n", config.c_restrict);
-       cprintf("%s\n", config.c_bbs_city);
+       cprintf("%s\n", config.c_site_location);
        cprintf("%s\n", config.c_sysadm);
        cprintf("%d\n", config.c_setup_level);
        cprintf("%d\n", config.c_maxsessions);
@@ -299,6 +300,24 @@ void artv_do_export(void) {
        cprintf("%s\n", config.c_ldap_bind_pw);
        cprintf("%s\n", config.c_ip_addr);
        cprintf("%d\n", config.c_msa_port);
+       cprintf("%d\n", config.c_imaps_port);
+       cprintf("%d\n", config.c_pop3s_port);
+       cprintf("%d\n", config.c_smtps_port);
+       cprintf("%d\n", config.c_rfc822_strict_from);
+       cprintf("%d\n", config.c_aide_zap);
+       cprintf("%d\n", config.c_imap_port);
+       cprintf("%ld\n", config.c_net_freq);
+       cprintf("%d\n", config.c_disable_newu);
+       cprintf("%s\n", config.c_baseroom);
+       cprintf("%s\n", config.c_aideroom);
+       cprintf("%d\n", config.c_auto_cull);
+       cprintf("%d\n", config.c_instant_expunge);
+       cprintf("%d\n", config.c_allow_spoofing);
+       cprintf("%d\n", config.c_journal_email);
+       cprintf("%d\n", config.c_journal_pubmsgs);
+       cprintf("%s\n", config.c_journal_dest);
+       cprintf("%s\n", config.c_default_cal_zone);
+       cprintf("%d\n", config.c_pftcpdict_port);
 
        /* Export the control file */
        get_control();
@@ -328,7 +347,7 @@ void artv_import_config(void) {
        client_getln(config.c_fqdn, sizeof config.c_fqdn);
        client_getln(config.c_humannode, sizeof config.c_humannode);
        client_getln(config.c_phonenum, sizeof config.c_phonenum);
-       client_getln(buf, sizeof buf);  config.c_bbsuid = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_ctdluid = atoi(buf);
        client_getln(buf, sizeof buf);  config.c_creataide = atoi(buf);
        client_getln(buf, sizeof buf);  config.c_sleeping = atoi(buf);
        client_getln(buf, sizeof buf);  config.c_initax = atoi(buf);
@@ -337,7 +356,7 @@ void artv_import_config(void) {
        client_getln(config.c_twitroom, sizeof config.c_twitroom);
        client_getln(config.c_moreprompt, sizeof config.c_moreprompt);
        client_getln(buf, sizeof buf);  config.c_restrict = atoi(buf);
-       client_getln(config.c_bbs_city, sizeof config.c_bbs_city);
+       client_getln(config.c_site_location, sizeof config.c_site_location);
        client_getln(config.c_sysadm, sizeof config.c_sysadm);
        client_getln(buf, sizeof buf);  config.c_setup_level = atoi(buf);
        client_getln(buf, sizeof buf);  config.c_maxsessions = atoi(buf);
@@ -363,6 +382,25 @@ void artv_import_config(void) {
        client_getln(config.c_ldap_bind_pw, sizeof config.c_ldap_bind_pw);
        client_getln(config.c_ip_addr, sizeof config.c_ip_addr);
        client_getln(buf, sizeof buf);  config.c_msa_port = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_imaps_port = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_pop3s_port = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_smtps_port = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_rfc822_strict_from = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_aide_zap = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_imap_port = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_net_freq = atol(buf);
+       client_getln(buf, sizeof buf);  config.c_disable_newu = atoi(buf);
+       client_getln(config.c_baseroom, sizeof config.c_baseroom);
+       client_getln(config.c_aideroom, sizeof config.c_aideroom);
+       client_getln(buf, sizeof buf);  config.c_auto_cull = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_instant_expunge = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_allow_spoofing = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_journal_email = atoi(buf);
+       client_getln(buf, sizeof buf);  config.c_journal_pubmsgs = atoi(buf);
+       client_getln(config.c_journal_dest, sizeof config.c_journal_dest);
+       client_getln(config.c_default_cal_zone, sizeof config.c_default_cal_zone);
+       client_getln(buf, sizeof buf);  config.c_pftcpdict_port = atoi(buf);
+       config.c_enable_fulltext = 0;   /* always disable */
        put_config();
        lprintf(CTDL_INFO, "Imported config file\n");
 }
@@ -378,6 +416,7 @@ void artv_import_control(void) {
        client_getln(buf, sizeof buf);  CitControl.MMnextuser = atol(buf);
        client_getln(buf, sizeof buf);  CitControl.MMnextroom = atol(buf);
        client_getln(buf, sizeof buf);  CitControl.version = atoi(buf);
+       CitControl.MMfulltext = (-1L);  /* always flush */
        put_control();
        lprintf(CTDL_INFO, "Imported control file\n");
 }
@@ -432,7 +471,7 @@ void artv_import_room(void) {
         * one per line terminated by a 0.
         */
        while (client_getln(buf, sizeof buf), msgnum = atol(buf), msgnum > 0) {
-               CtdlSaveMsgPointerInRoom(qrbuf.QRname, msgnum, 0);
+               CtdlSaveMsgPointerInRoom(qrbuf.QRname, msgnum, 0, NULL);
                ++msgcount;
        }
        lprintf(CTDL_INFO, "(%d messages)\n", msgcount);
@@ -488,7 +527,7 @@ void artv_import_message(void) {
        long msglen;
        FILE *fp;
        char buf[SIZ];
-       char tempfile[SIZ];
+       char tempfile[PATH_MAX];
        char *mbuf;
 
        memset(&smi, 0, sizeof(struct MetaData));
@@ -500,7 +539,7 @@ void artv_import_message(void) {
        lprintf(CTDL_INFO, "message #%ld\n", msgnum);
 
        /* decode base64 message text */
-       strcpy(tempfile, tmpnam(NULL));
+       CtdlMakeTempFileName(tempfile, sizeof tempfile);
        snprintf(buf, sizeof buf, "./base64 -d >%s", tempfile);
        fp = popen(buf, "w");
        while (client_getln(buf, sizeof buf), strcasecmp(buf, END_OF_MESSAGE)) {
@@ -562,12 +601,13 @@ void artv_do_import(void) {
        }
        lprintf(CTDL_INFO, "Invalid keyword <%s>.  Flushing input.\n", buf);
        while (client_getln(buf, sizeof buf), strcmp(buf, "000"))  ;;
+       rebuild_euid_index();
 }
 
 
 
 void cmd_artv(char *cmdbuf) {
-       char cmd[SIZ];
+       char cmd[32];
        static int is_running = 0;
 
        if (CtdlAccessCheck(ac_internal)) return;
@@ -578,10 +618,10 @@ void cmd_artv(char *cmdbuf) {
        }
        is_running = 1;
 
-       strcpy(artv_tempfilename1, tmpnam(NULL));
-       strcpy(artv_tempfilename2, tmpnam(NULL));
+       CtdlMakeTempFileName(artv_tempfilename1, sizeof artv_tempfilename1);
+       CtdlMakeTempFileName(artv_tempfilename2, sizeof artv_tempfilename2);
 
-       extract(cmd, cmdbuf, 0);
+       extract_token(cmd, cmdbuf, 0, '|', sizeof cmd);
        if (!strcasecmp(cmd, "export")) artv_do_export();
        else if (!strcasecmp(cmd, "import")) artv_do_import();
        else cprintf("%d illegal command\n", ERROR + ILLEGAL_VALUE);