Index: ossp-pkg/petidomo/subscribe.c RCS File: /v/ossp/cvs/ossp-pkg/petidomo/subscribe.c,v rcsdiff -q -kk '-r1.10' '-r1.11' -u '/v/ossp/cvs/ossp-pkg/petidomo/subscribe.c,v' 2>/dev/null --- subscribe.c 2001/01/15 16:55:45 1.10 +++ subscribe.c 2001/01/15 17:56:33 1.11 @@ -174,6 +174,43 @@ } return 0; } + + else if (ListConfig->subtype == SUBSCRIPTION_ACKED && !g_is_approved) + { + /* Require confirmation. */ + + char* command = text_easy_sprintf("unsubscribe %s %s", address, listname); + char* cookie = queue_command(MailStruct, command); + + /* Notify the owner. */ + + fh = vOpenMailer(envelope, address, NULL); + if (fh != NULL) + { + fprintf(fh, "From: petidomo-approve@%s (Petidomo Mailing List Server)\n", ListConfig->fqdn); + fprintf(fh, "To: %s\n", address); + fprintf(fh, "Subject: Petidomo: CONFIRM %s@%s: Request from \"%s\"\n", listname, ListConfig->fqdn, originator); + fprintf(fh, "Precedence: junk\n"); + fprintf(fh, "Sender: %s\n", envelope); + fprintf(fh, "\n"); + buffer = text_easy_sprintf("Per request from \"%s\", the address \"%s\" should be subscribed to " \ + "the mailing list \"%s\". This will not happen unless you confirm the " \ + "request by replying to this mail and citing the string", + originator, address, listname); + text_wordwrap(buffer, 70); + fprintf(fh, "%s\n", buffer); + fprintf(fh, "\n %s\n\n", cookie); + fprintf(fh, "in your reply.\n"); + CloseMailer(fh); + } + else + { + syslog(LOG_ERR, "Failed to send email to \"%s\"!", owner); + return -1; + } + + return 0; + } } /* Check whether the address is subscribed already. */ Index: ossp-pkg/petidomo/unsubscribe.c RCS File: /v/ossp/cvs/ossp-pkg/petidomo/unsubscribe.c,v rcsdiff -q -kk '-r1.10' '-r1.11' -u '/v/ossp/cvs/ossp-pkg/petidomo/unsubscribe.c,v' 2>/dev/null --- unsubscribe.c 2001/01/15 16:55:45 1.10 +++ unsubscribe.c 2001/01/15 17:56:33 1.11 @@ -176,6 +176,44 @@ } return 0; } + + else if (ListConfig->subtype == SUBSCRIPTION_ACKED && !g_is_approved) + { + /* Require confirmation. */ + + char* command = text_easy_sprintf("unsubscribe %s %s", address, listname); + char* cookie = queue_command(MailStruct, command); + + /* Notify the owner. */ + + fh = vOpenMailer(envelope, address, NULL); + if (fh != NULL) + { + fprintf(fh, "From: petidomo-approve@%s (Petidomo Mailing List Server)\n", ListConfig->fqdn); + fprintf(fh, "To: %s\n", address); + fprintf(fh, "Subject: Petidomo: CONFIRM %s@%s: Request from \"%s\"\n", listname, ListConfig->fqdn, originator); + fprintf(fh, "Precedence: junk\n"); + fprintf(fh, "Sender: %s\n", envelope); + fprintf(fh, "\n"); + buffer = text_easy_sprintf("Per request from \"%s\", the address \"%s\" should be unsubscribed from " \ + "the mailing list \"%s\". This will not happen unless you confirm the " \ + "request by replying to this mail and citing the string", + originator, address, listname); + text_wordwrap(buffer, 70); + fprintf(fh, "%s\n", buffer); + fprintf(fh, "\n %s\n\n", cookie); + fprintf(fh, "in your reply.\n"); + CloseMailer(fh); + } + else + { + syslog(LOG_ERR, "Failed to send email to \"%s\"!", owner); + return -1; + } + + return 0; + } + } /* Okay, remove the address from the list. */