OSSP CVS Repository

ossp - Difference in ossp-pkg/petidomo/main.c versions 1.18 and 1.19
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [History

ossp-pkg/petidomo/main.c 1.18 -> 1.19

--- main.c       2001/01/20 13:52:41     1.18
+++ main.c       2001/01/21 12:00:35     1.19
@@ -1,6 +1,6 @@
 /*
    $Source: /v/ossp/cvs/ossp-pkg/petidomo/main.c,v $
-   $Revision: 1.18 $
+   $Revision: 1.19 $
 
    Copyright (C) 2000 by CyberSolutions GmbH, Germany.
 
@@ -48,7 +48,7 @@
     char *        incoming_mail;
     argv_t        args[] =
         {
-        {ARGV_MAND, "mode", ARGV_CHAR_P, &mode, "mode", "listserv, deliver, or approve."},
+        {ARGV_MAND, "mode", ARGV_CHAR_P, &mode, "mode", "listserv, deliver, approve or dump."},
         {ARGV_MAYBE, "listname", ARGV_CHAR_P, &listname, "listname", "Default mailing list."},
         {ARGV_MAYBE, "masterconf", ARGV_CHAR_P, &masterconfig_path, "masterconf", "Path to petidomo.conf."},
         {ARGV_MAYBE, "approved", ARGV_BOOL, &g_is_approved, "approved", "approved flag."},
@@ -90,6 +90,29 @@
     argv_version_string = (char *)petidomo_version.v_gnu;
     argv_process(args, argc, argv);
 
+    /* Member Dump Mode */
+    if (strcasecmp(mode, "dump") == 0) {
+        char *cp;
+        const struct List_Config *ListConfig;
+        if (listname == NULL) {
+            fprintf(stderr, "petidomo: dump mode requires a list name argument\n");
+            exit(1);
+        }
+        if (InitPetidomo(masterconfig_path) != 0) {
+            fprintf(stderr, "petidomo: failed load master configuration.\n");
+            exit(1);
+        }
+        MasterConfig = getMasterConfig();
+        ListConfig = getListConfig(listname);
+        if ((cp = loadfile(ListConfig->address_file)) == NULL) {
+            fprintf(stderr, "petidomo: failed to open file \"%s\"\n", ListConfig->address_file);
+            exit(1);
+        }
+        fwrite(cp, strlen(cp), 1, stdout);
+        free(cp);
+        exit(0);
+    }
+
     /* Log a few helpful facts about this Petidomo instance. */
 
     syslog(LOG_DEBUG, "%s starting up; mode=%s, listname=%s, masterconf=%s, approved=%s, ruid=%d, euid=%d, gid=%d, egid=%d",

CVSTrac 2.0.1