|
@@ -1,52 +1,70 @@
|
|
|
if (!$CONTINUE)
|
|
|
{
|
|
|
- if (/^X\-GROUP:\s*$ORGANIZERGROUPREGEX\s*$/)
|
|
|
+ if (/^Subject:\s*\[SIGNUP\]\s*$/)
|
|
|
+ {
|
|
|
+ TOPOSTMASTER=1
|
|
|
+ CONTINUE=1
|
|
|
+ }
|
|
|
+ if (/^X\-GROUP:\s*($ORGANIZERGROUPREGEX)\s*$/)
|
|
|
{
|
|
|
TOORGANIZER=1
|
|
|
+ MAILGROUP=$MATCH1
|
|
|
}
|
|
|
- if (/^X\-GROUP:\s*$MEMBERGROUPREGEX\s*$/)
|
|
|
+ if (/^X\-GROUP:\s*($MEMBERGROUPREGEX)\s*$/)
|
|
|
{
|
|
|
TOMEMBER=1
|
|
|
+ MAILGROUP=$MATCH1
|
|
|
}
|
|
|
- TOPOSTMASTER=1
|
|
|
- CONTINUE=1
|
|
|
}
|
|
|
elsif ($CONTINUE)
|
|
|
{
|
|
|
- if (/^Subject:\s*\[SIGNUP\]\s*$/)
|
|
|
+ if (/^X-MEMBER-ALIAS:\s*(.+)\s*$/)
|
|
|
{
|
|
|
- if (/^X-MEMBER-ALIAS:\s*(.*)\s*$/)
|
|
|
+ gdbmopen($MLIST, "C")
|
|
|
+ SUFFIX=0
|
|
|
+ ALIAS=$MATCH1
|
|
|
+ KEY=$ALIAS
|
|
|
+ EXISTS=gdbmfetch($KEY)
|
|
|
+ while ($EXISTS ne "" && $EXISTS ne tolower($FROM))
|
|
|
{
|
|
|
- gdbmopen($MLIST, "W")
|
|
|
- SUFFIX=0
|
|
|
- ALIAS=$MATCH1
|
|
|
- KEY=$ALIAS
|
|
|
+ SUFFIX=($SUFFIX + 1)
|
|
|
+ KEY="$ALIAS $SUFFIX"
|
|
|
EXISTS=gdbmfetch($KEY)
|
|
|
- while ($EXISTS ne "" && $EXISTS ne tolower($FROM))
|
|
|
- {
|
|
|
- SUFFIX=($SUFFIX + 1)
|
|
|
- KEY="$ALIAS $SUFFIX"
|
|
|
- EXISTS=gdbmfetch($KEY)
|
|
|
- }
|
|
|
- if (gdbmstore(tolower($FROM), $KEY) == 0 && gdbmstore($KEY, tolower($FROM)) == 0)
|
|
|
- {
|
|
|
- gdbmclose
|
|
|
- to "|$MAILBOT -N -t $SIGNUPRESP -A 'From: $MAILGROUP' -f$FROM /usr/bin/sendmail $FROM"
|
|
|
- }
|
|
|
- else
|
|
|
+ }
|
|
|
+ if (gdbmstore(tolower($FROM), $KEY) == 0 && gdbmstore($KEY, tolower($FROM)) == 0)
|
|
|
+ {
|
|
|
+ gdbmclose
|
|
|
+ SLIST="$LISTDIR/alist"
|
|
|
+ gdbmopen($SLIST, "C")
|
|
|
+ if (/^X-AUTH:\s(.+)\s*$/)
|
|
|
{
|
|
|
- gdbmclose
|
|
|
- cc "|$DEBUGMAIL"
|
|
|
- EXITCODE=$FATAL
|
|
|
- exit
|
|
|
+ if (gdbmstore(tolower($FROM), "$MATCH1"))
|
|
|
+ {
|
|
|
+ gdbmclose
|
|
|
+ EXITCODE=$FATAL
|
|
|
+ cc "|$DEBUGMAIL 'auth-store-fail'"
|
|
|
+ exit
|
|
|
+ }
|
|
|
+ system "$SUBUNSUB '$SUBSCRIBE' '$KEY' '$FROM'"
|
|
|
+ if ($EXITCODE)
|
|
|
+ {
|
|
|
+ cc "|$DEBUGMAIL 'auth-sub-fail'"
|
|
|
+ exit
|
|
|
+ }
|
|
|
}
|
|
|
+ gdbmclose
|
|
|
+ to "|$MAILBOT"
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ gdbmclose
|
|
|
+ EXITCODE=$FATAL
|
|
|
+ cc "|$DEBUGMAIL '$MLSIT-store-fail'"
|
|
|
+ exit
|
|
|
}
|
|
|
- EXITCODE=$BADREQUEST
|
|
|
- # No response to unregistered users
|
|
|
- exit
|
|
|
}
|
|
|
- #cc "|$DEBUGMAIL"
|
|
|
- EXITCODE=$UNHANDLED
|
|
|
+ EXITCODE=$BADREQUEST
|
|
|
+ cc "|${DEBUGMAIL} signup-fail"
|
|
|
# No response to unregistered users
|
|
|
exit
|
|
|
}
|