Here is a patch that turns autoresonder into vacation.
Someone suggested using directory to do this.  Thanks.

Now, someone please fix the GUI to allow this as an option so one can have a
choice to receive the e-mail or not.


--- autorespond.c.orig  Fri Apr 27 14:13:52 2001
+++ autorespond.c.new   Fri Apr 27 14:18:49 2001
@@ -125,13 +125,6 @@
                exit(0);
        }

-
-       if ( check_local_user(ActionUser) ) {
-               fprintf(actout, "<h2>%s %s</h2>\n", get_html_text("175"),
ActionUser);
-               addautorespond();
-               exit(0);
-       }
-
        if ( strlen(ActionUser) == 0 ) {
                fprintf(actout, "<h2>%s</h2>\n", get_html_text("176"));
                addautorespond();
@@ -173,14 +166,19 @@

        if ( (fs = fopen(TmpBuf, "w")) == NULL ) ack("123", 123);

-       fprintf(fs,
-"|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
-       AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
-
-       if ( strlen(Newu) > 0 ) {
-               fprintf(fs, "&%s\n", Newu);
+       if ( check_local_user(ActionUser) ) {
+               fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n%s/%s/Maildir/",
+               AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2,
RealDir, ActionUser);
+       }
+       else {
+               fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
+               AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
        }
-       fclose(fs);
+
+        if ( strlen(Newu) > 0 ) {
+                fprintf(fs, "&%s\n", Newu);
+        }
+        fclose(fs);

        /*
         * Make the autoresponder message file
@@ -299,9 +297,14 @@
        sprintf(TmpBuf, ".qmail-%s", ActionUser);
        if ( (fs = fopen(TmpBuf, "w")) == NULL ) ack("123", 123);

-       fprintf(fs,
-"|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
-       AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+       if ( check_local_user(ActionUser) ) {
+               fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n%s/%s/Maildir/",
+               AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2,
RealDir, ActionUser);
+       }
+        else {
+                fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n",
+                AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+        }

        if ( strlen(Newu) > 0 ) {
                fprintf(fs, "&%s\n", Newu);
[root@umail2 qmailadmin-0.45]# cp autorespond.c autorespond.c.new
cp: overwrite `autorespond.c.new'? y
[root@umail2 qmailadmin-0.45]# diff -u autorespond.c.orig autorespond.c.new
--- autorespond.c.orig  Fri Apr 27 14:13:52 2001
+++ autorespond.c.new   Fri Apr 27 15:03:20 2001
@@ -125,13 +125,6 @@
                exit(0);
        }

-
-       if ( check_local_user(ActionUser) ) {
-               fprintf(actout, "<h2>%s %s</h2>\n", get_html_text("175"),
ActionUser);
-               addautorespond();
-               exit(0);
-       }
-
        if ( strlen(ActionUser) == 0 ) {
                fprintf(actout, "<h2>%s</h2>\n", get_html_text("176"));
                addautorespond();
@@ -173,9 +166,14 @@

        if ( (fs = fopen(TmpBuf, "w")) == NULL ) ack("123", 123);

-       fprintf(fs,
-"|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
-       AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+       if ( check_pop_user(ActionUser) ) {
+               fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n%s/%s/Maildir/",
+               AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2,
RealDir, ActionUser);
+       }
+       else {
+               fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
+               AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+       }

        if ( strlen(Newu) > 0 ) {
                fprintf(fs, "&%s\n", Newu);
@@ -299,9 +297,14 @@
        sprintf(TmpBuf, ".qmail-%s", ActionUser);
        if ( (fs = fopen(TmpBuf, "w")) == NULL ) ack("123", 123);

-       fprintf(fs,
-"|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
-       AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+       if ( check_pop_user(ActionUser) ) {
+               fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message
%s/%s\n%s/%s/Maildir/",
+               AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2,
RealDir, ActionUser);
+       }
+       else {
+               fprintf(fs, "|%s/autorespond 10000 5 %s/%s/message %s/%s\n",
+               AUTORESPOND_BIN, RealDir, TmpBuf2, RealDir, TmpBuf2);
+       }

        if ( strlen(Newu) > 0 ) {
                fprintf(fs, "&%s\n", Newu);
@@ -356,4 +359,14 @@
        }
        closedir(mydir);

+}
+
+check_pop_user( user )
+char *user;
+{
+ struct stat buf;
+       if ( stat(user, &buf) == 0 ) {
+                return(-1);
+        }
+       return(0);
 }

Reply via email to