[svn:qpsmtpd] r692 - contrib/hjp/redirect

[email protected] Sun, 17 Dec 2006 04:49:38 -0800 (PST)
Newsgroups perl.cvs.qpsmtpd
Message-ID <[email protected]>
Author: hjp
Date: Sun Dec 17 04:49:36 2006
New Revision: 692

Added:
   contrib/hjp/redirect/
   contrib/hjp/redirect/Makefile
   contrib/hjp/redirect/Makerules
   contrib/hjp/redirect/redirect

Log:
Added redirect. (a bit too early, needs docs).


Added: contrib/hjp/redirect/Makefile
==============================================================================
--- (empty file)
+++ contrib/hjp/redirect/Makefile	Sun Dec 17 04:49:36 2006
@@ -0,0 +1,14 @@
+NAME=redirect
+FILES = \
+    Makefile \
+    Makerules \
+    $(NAME) \
+
+# still missing: $(PKG).spec 
+
+all:
+
+clean:
+	rm -f $(PKG).tar.gz *.tmp
+
+include Makerules

Added: contrib/hjp/redirect/Makerules
==============================================================================
--- (empty file)
+++ contrib/hjp/redirect/Makerules	Sun Dec 17 04:49:36 2006
@@ -0,0 +1,15 @@
+PKG = qpsmtpd-plugin-$(NAME)
+CONTRIB_BASE=~/wrk/qpsmtpd/contrib/hjp
+CONTRIB_FILES=$(patsubst %, $(CONTRIB_BASE)/$(NAME)/%, $(FILES))
+
+contrib: $(CONTRIB_FILES)
+
+$(CONTRIB_BASE)/$(NAME)/%: %
+	cp -p $^ $@
+
+rpm: $(PKG).tar.gz
+	rpm -ta --clean --sign --rmsource $^
+
+$(PKG).tar.gz: $(FILES)
+	tar cfz $@ $^
+

Added: contrib/hjp/redirect/redirect
==============================================================================
--- (empty file)
+++ contrib/hjp/redirect/redirect	Sun Dec 17 04:49:36 2006
@@ -0,0 +1,12 @@
+sub hook_rcpt {
+    my ($self, $transaction, $rcpt) = @_;
+    
+    return DECLINED unless $rcpt->notes('redirect');
+
+    if ($rcpt->notes('redirect') =~ /(.*)\@(.*)/) {
+	return DENY, "Mail address disabled; try <" . $rcpt->notes('redirect') . ">";
+    } else {
+	my ($local, $domain) = $rcpt->address =~ /(.*)\@(.*)/;
+	return DENY, "Mail address disabled; try <" . $local . '@' . $rcpt->notes('redirect') . ">";
+    }
+}