On Mar 19, 2006, at 2:51 AM, Daniel wrote:
the program "valias" (version 5.4.9) which is used to manage aliases on mail
addresses always returns 0 as return value on exit. That's a problem if
you're using valias in a script because you're not able to check the result
(success or not success) easily.

This change is going into the next release. You can patch your copy of 5.4.9 and recompile/reinstall to get that functionality.

Index: valias.c
===================================================================
RCS file: /cvsroot/vpopmail/vpopmail/valias.c,v
retrieving revision 1.3.2.1
diff -u -r1.3.2.1 valias.c
--- valias.c    17 Jan 2006 18:50:22 -0000      1.3.2.1
+++ valias.c    21 Mar 2006 04:51:42 -0000
@@ -95,6 +95,7 @@
                         valias_select_names_end();
                } else {
                         fprintf(stderr, "Please enter domain name only.\n" );
+                       vexit(-1);
                }
                break;
 
@@ -107,8 +108,9 @@
                        tmpalias = valias_select_next();
                }
                if (AliasExists) {
-                       printf ("Error: alias %s -> %s already exists.\n",
+                       fprintf (stderr, "Error: alias %s -> %s already 
exists.\n",
                                Email, AliasLine);
+                       vexit(-1);
                } else {
                        valias_insert( Alias, Domain, AliasLine );
                }
@@ -119,7 +121,8 @@
                break;
 
         default:
-               printf("error, Alias Action '%d' is invalid\n", AliasAction);
+               fprintf(stderr, "error, Alias Action '%d' is invalid\n", 
+                       AliasAction);
                break;
        }
        return(vexit(0));
@@ -178,14 +181,14 @@
        if ( optind < argc ) {
                snprintf(Email, sizeof(Email), "%s", argv[optind]);
                 if ( (i = parse_email( Email, Alias, Domain, sizeof(Alias))) 
!= 0 ) {
-                  printf("Error: %s\n", verror(i));
+                  fprintf(stderr, "Error: %s\n", verror(i));
                   vexit(i);
                 }
                ++optind;
        } 
 
        if ( Email[0] == 0 ) {
-               printf("must supply alias email address\n");
+               fprintf(stderr, "must supply alias email address\n");
                usage();
                vexit(-1);
        }


Tom Collins
Tom Logic LLC
PO Box 5717
Napa, CA 94581
(707) 265-6622
(707) 265-6646 fax
[EMAIL PROTECTED]

Reply via email to