diet-qmail.patch
author Tomas Zeman <tzeman@volny.cz>
Tue, 02 Jul 2013 09:44:50 +0200
changeset 147 761da690b72c
parent 98 ee6165a0b4ed
permissions -rw-r--r--
phpmyadmin.patch: 3.5.5 -> 4.0.4.1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
     1
diet-qmail
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     2
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
     3
diff -r 2be82bdba73b source/dietlibc/diet-qmail/FrugalBuild
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
     4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
     5
+++ b/source/dietlibc/diet-qmail/FrugalBuild	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
@@ -0,0 +1,293 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
+# Patched qmail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
+#	errno
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
+#	ext_todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
+#	qregex
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
+#	qmailqueue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
+#	smtpd.spam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
+#	dietlibc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
+# + queue-fix package with patches:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
+#	errno
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
+#	dietlibc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
+# Maintainer: Tomas Zeman <tzeman@volny.cz>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
+branch=diet
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
+pkgorig=qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
+pkgname=$branch-$pkgorig
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
+pkgver=1.03
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
    23
+pkgrel=2
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
+pkgdesc="A secure, reliable, efficient, SMTP/POP3 server."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
+url="http://cr.yp.to/qmail.html"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
+depends=('daemontools' 'ucspi-tcp' 'openssl')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
+makedepends=('dietlibc')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
+backup=(var/qmail/supervise/qmail-pop3d/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
+        var/qmail/supervise/qmail-pop3d/log/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
+        var/qmail/supervise/qmail-send/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
+        var/qmail/supervise/qmail-send/log/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
+        var/qmail/supervise/qmail-smtpd/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
+        var/qmail/supervise/qmail-smtpd/log/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
+        var/qmail/control/concurrencyincoming \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
+        var/qmail/control/defaultdelivery \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
+        var/qmail/control/me \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
+        etc/tcp.smtp etc/tcp.pop3)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
+provides=('smtp-server' 'pop3-server' 'qmail')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
+install="$pkgorig.install"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
+archs=(i686)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
+up2date="1.03"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
+source=(http://cr.yp.to/software/$pkgorig-$pkgver.tar.gz \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
+	qmail-1.03.errno.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
+	ext_todo-20030105.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
+	qmailqueue-patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
+	qregex-20060423-qmail.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
+	qmail-dietlibc.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
+	qmail-smtpd.spam.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
+	http://www.netmeridian.com/e-huss/queue-fix-1.4.tar.gz \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
+	queue-fix-errno.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
+	queue-fix-dietlibc.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    52
+        rc smtpd_run pop3d_run qmail.profile qmail.rc send_log_run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
+        send_run smtpd_log_run pop3d_log_run tcp.smtp tcp.pop3 \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
+        make_cert.sh)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    55
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    56
+sha1sums=('18fb960481291a0503e93a94df3f6094edb7f27a' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    57
+          '5cab1d84f67987983d13f10be1577e3da274cb94' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    58
+          'a1ecb939a4aaeeb325d947f3e6416aa63ae97d80' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    59
+          '76240289d52f2aca88004af47e5bd41c969880cf' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    60
+          '40b18255da69a2f36cf8698d8eb907f5f039c0a7' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    61
+          '605e93734c82373383f0284fabc64f85c4c06bfc' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    62
+          '25f4ef231560bbc5fc3c2a82f2f0cd0696deded9' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    63
+          'ce42fcc4daf5076adcf8fea6a9a84f2e1716c67c' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    64
+          '72be22c7987ff3639692cda21c09dec340e06a4a' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    65
+          '7d3525ab4a2e0e2be2bcd074dd94ae2784309d1b' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    66
+          '3111cc689b5b1f6caa38997bf5f85aa3a516ef9c' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    67
+          '3a80e44c97fd3035ce16c68fd2f611a64c61d169' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    68
+          'f14f63c7b1bdc2d1f527249235551dc7f21ad47d' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    69
+          '36951a4c195c72f4194c2d98ce3478c11d85c5bf' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    70
+          '2b29cf70c6cbf52ef5af5da7840c72ae626ccb50' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    71
+          '80543d062529a1eefde0c8b288c411a0b896e950' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    72
+          '5877c8e1896f655bd8f4d98d52e67231c63d9e42' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    73
+          '87ebef35a931cdf43b9ffc6dfe42529a21e562ba' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    74
+          'e53e6248b347be058e3e1973434b2b885c65f091' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    75
+          '27ff6fcaa115d7b59b86f54f970b6271c84ca6d3' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    76
+          'ac0994b0ec0ada5bd28fdce6f8e37e9827357f43' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    77
+          '3e91eb05c9bf51e230f237d19633fc572fbc3540')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    78
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    79
+# NOTE: This should be built only as root, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    80
+# not using fakeroot.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    81
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    82
+# a small function to add required groups
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    83
+# & users before building.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    84
+pre_build_qmail() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    85
+  # create a tmp dir
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    86
+  mkdir -p $startdir/src/tmp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    87
+  # group: qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    88
+  if [ ! `grep qmail /etc/group` ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    89
+    echo "==> Adding group qmail (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    90
+    groupadd -g 2107 qmail &>/dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    91
+    touch $startdir/src/tmp/group_qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    92
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    93
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    94
+  # group: nofiles
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    95
+  if [ ! `grep nofiles /etc/group` ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    96
+    echo "==> Adding group nofiles (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    97
+    groupadd -g 2108 nofiles &>/dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    98
+    touch $startdir/src/tmp/group_nofiles
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    99
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   100
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   101
+  # user: alias
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   102
+  if ! id alias &>/dev/null; then 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   103
+    echo "==> Adding user alias (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   104
+    useradd -u 7790 -g nofiles -d /var/qmail/alias -s /bin/false alias
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   105
+    touch $startdir/src/tmp/user_alias
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   106
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   107
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   108
+  # user: qmaild
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   109
+  if ! id qmaild &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   110
+    echo "==> Adding user qmaild (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   111
+    useradd -u 7791 -g nofiles -d /var/qmail -s /bin/false qmaild
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   112
+    touch $startdir/src/tmp/user_qmaild
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   113
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   114
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   115
+  # user: qmaill
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   116
+  if ! id qmaill &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   117
+    echo "==> Adding user qmaill (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   118
+    useradd -u 7792 -g nofiles -d /var/qmail -s /bin/false qmaill
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   119
+    touch $startdir/src/tmp/user_qmaill
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   120
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   121
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   122
+  # user: qmailp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   123
+  if ! id qmailp &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   124
+    echo "==> Adding user qmailp (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   125
+    useradd -u 7793 -g nofiles -d /var/qmail -s /bin/false qmailp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   126
+    touch $startdir/src/tmp/user_qmailp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   127
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   128
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   129
+  # user: qmailq
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   130
+  if ! id qmailq &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   131
+    echo "==> Adding user qmailq (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   132
+    useradd -u 7794 -g qmail -d /var/qmail -s /bin/false qmailq
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   133
+    touch $startdir/src/tmp/user_qmailq
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   134
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   135
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   136
+  # user: qmailr
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   137
+  if ! id qmailr &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   138
+    echo "==> Adding user: qmailr (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   139
+    useradd -u 7795 -g qmail -d /var/qmail -s /bin/false qmailr
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   140
+    touch $startdir/src/tmp/user_qmailr
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   141
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   142
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   143
+  # user: qmails
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   144
+  if ! id qmails &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   145
+    echo "==> Adding user: qmails (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   146
+    useradd -u 7796 -g qmail -d /var/qmail -s /bin/false qmails
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   147
+    touch $startdir/src/tmp/user_qmails
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   148
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   149
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   150
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   151
+# a small function to remove users
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   152
+# after the build.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   153
+post_build_qmail() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   154
+  # remove users
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   155
+  for user in alias qmail{d,l,p,q,r,s}; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   156
+    if [ -f $startdir/src/tmp/user_${user} ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   157
+      echo "==> Removing user: ${user}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   158
+      userdel ${user} &> /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   159
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   160
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   161
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   162
+  # remove groups
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   163
+  for group in nofiles qmail; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   164
+    if [ -f $startdir/src/tmp/group_${group} ]; then 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   165
+      echo "==> Removing group: ${group}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   166
+      groupdel ${group} &> /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   167
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   168
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   169
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   170
+  # remove temp dir
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   171
+  rm -rf $startdir/src/tmp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   172
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   173
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   174
+build() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   175
+  # save me some typing ;)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   176
+  qmail_dir=$Fdestdir/var/qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   177
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   178
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   179
+  # add the required groups & users 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   180
+  pre_build_qmail || Fdie
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   181
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   182
+  # start playing with qmail :)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   183
+  Fcd $pkgorig-$pkgver
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   184
+  Fpatch qmail-1.03.errno.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   185
+  Fpatch ext_todo-20030105.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   186
+  Fpatch qmailqueue-patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   187
+  Fpatch qregex-20060423-qmail.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   188
+  Fpatch qmail-dietlibc.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   189
+  Fpatch qmail-smtpd.spam.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   190
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   191
+  # compile qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   192
+  make it man || Fdie 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   193
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   194
+  # create dirs
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   195
+  install -d -m 755 -o root -g qmail $qmail_dir
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   196
+  for i in bin boot control users; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   197
+    install -d -m 755 -o root -g qmail $qmail_dir/$i
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   198
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   199
+  install -d -m 755 -o alias -g qmail $qmail_dir/alias
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   200
+  install -d -m 755 -o qmaill $startdir/pkg/var/log/qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   201
+  install -d -m 755 -o qmaill $startdir/pkg/var/log/qmail/smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   202
+  install -d -m 755 -o qmaill $startdir/pkg/var/log/qmail/pop3d
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   203
+  install -d -m 755 -o qmaill $startdir/pkg/var/log/qmail/send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   204
+  mkdir -p $qmail_dir/supervise/qmail-{pop3d,send,smtpd}/log
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   205
+  install -d -m 710 -o qmailq -g qmail $qmail_dir/queue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   206
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   207
+  # install binaries
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   208
+  for i in binm1{,+df} binm2{,+df} binm3{,+df} home{,+df} proc{,+df}; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   209
+    install -m 755 -o root -g qmail $i $qmail_dir/boot/$i
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   210
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   211
+  install -m 4711 -o qmailq -g qmail qmail-queue \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   212
+    $qmail_dir/bin/qmail-queue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   213
+  for i in qmail-lspawn qmail-start qmail-newu qmail-newmrh; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   214
+    install -m 700 -o root -g qmail $i $qmail_dir/bin/$i
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   215
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   216
+  for i in qmail-getpw qmail-local qmail-remote qmail-rspawn \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   217
+           qmail-clean qmail-send splogger qmail-popup qmail-pw2u \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   218
+           qmail-todo; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   219
+    install -m 711 -o root -g qmail $i $qmail_dir/bin/$i
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   220
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   221
+  for i in qmail-inject predate datemail mailsubj qmail-showctl \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   222
+	   qmail-qread qmail-qstat qmail-tcpto qmail-tcpok qmail-pop3d \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   223
+           qmail-popup qmail-qmqpc qmail-qmqpd qmail-qmtpd qmail-smtpd \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   224
+           sendmail tcp-env qreceipt qsmhook qbiff forward preline \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   225
+           condredirect bouncesaying except maildirmake maildir2mbox \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   226
+           maildirwatch qail elq pinq config-fast; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   227
+    install -m 755 -o root -g qmail $i $qmail_dir/bin/$i
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   228
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   229
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   230
+  # install manpages
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   231
+  for i in bouncesaying except maildir2mbox maildirwatch preline qreceipt \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   232
+           condredirect forward maildirmake mailsubj qbiff tcp-env; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   233
+    install -D -m 644 -o root -g qmail ${i}.1 $qmail_dir/man/man1/${i}.1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   234
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   235
+  for i in addresses envelopes mbox qmail-header qmail-users dot-qmail \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   236
+           maildir qmail-control qmail-log tcp-environ; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   237
+    install -D -m 644 -o root -g qmail ${i}.5 $qmail_dir/man/man5/${i}.5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   238
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   239
+  for i in forgeries qmail-limits qmail; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   240
+    install -D -m 644 -o root -g qmail ${i}.7 $qmail_dir/man/man7/${i}.7
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   241
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   242
+  for i in qmail-clean qmail-newmrh qmail-qmqpd qmail-rspawn qmail-tcpto \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   243
+           qmail-command qmail-newu qmail-qmtpd qmail-send splogger \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   244
+           qmail-getpw qmail-pop3d qmail-qread qmail-showctl qmail-inject \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   245
+           qmail-popup qmail-qstat qmail-smtpd qmail-local qmail-pw2u \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   246
+           qmail-queue qmail-start qmail-lspawn qmail-qmqpc qmail-remote \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   247
+           qmail-tcpok; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   248
+    install -D -m 644 -o root -g qmail ${i}.8 $qmail_dir/man/man8/${i}.8
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   249
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   250
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   251
+  # install supervise files
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   252
+  for i in pop3d send smtpd; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   253
+    install -m 755 $startdir/${i}_run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   254
+      $qmail_dir/supervise/qmail-${i}/run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   255
+    install -m 755 $startdir/${i}_log_run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   256
+      $qmail_dir/supervise/qmail-${i}/log/run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   257
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   258
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   259
+  # install rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   260
+  install -m 755 $startdir/rc \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   261
+    $qmail_dir/rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   262
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   263
+  # install concurrencyicoming & defaultdelivery files
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   264
+  echo 20 > $qmail_dir/control/concurrencyincoming
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   265
+  echo ./Maildir/ > $qmail_dir/control/defaultdelivery
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   266
+  chmod 644 $qmail_dir/control/{concurrencyincoming,defaultdelivery}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   267
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   268
+  # create sendmail symlinks for compatibility reasons
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   269
+  for i in sbin lib; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   270
+    mkdir -p $Fdestdir/usr/${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   271
+    ln -sf /var/qmail/bin/sendmail $Fdestdir/usr/${i}/sendmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   272
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   273
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   274
+  # install profile.d file
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   275
+  install -D -m 755 $startdir/qmail.profile $Fdestdir/etc/profile.d/qmail.sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   276
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   277
+  # install tcp files
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   278
+  for i in smtp pop3; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   279
+    install -D -m 644 $startdir/tcp.${i} $Fdestdir/etc/tcp.${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   280
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   281
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   282
+  # install cert making script
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   283
+  install -D -m755 $startdir/make_cert.sh $qmail_dir/bin/make_cert.sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   284
+  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   285
+  # install rc.d file
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   286
+  install -D -m 755 $startdir/qmail.rc $Fdestdir/etc/rc.d/qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   287
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   288
+  # build and install queue-fix
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   289
+  Fmessage "Now building queue-fix"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   290
+  cd $Fsrcdir/queue-fix-1.4 || Fdie
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   291
+  Fpatch queue-fix-errno.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   292
+  Fpatch queue-fix-dietlibc.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   293
+  make || Fdie
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   294
+  install -D -m755 queue-fix $qmail_dir/bin/queue-fix
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   295
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   296
+  # remove groups & users
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   297
+  post_build_qmail || Fdie
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   298
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   299
+
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
   300
diff -r 2be82bdba73b source/dietlibc/diet-qmail/ext_todo-20030105.patch
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
   301
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
   302
+++ b/source/dietlibc/diet-qmail/ext_todo-20030105.patch	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   303
@@ -0,0 +1,1238 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   304
+diff -uN qmail-1.03/EXTTODO qmail-exttodo/EXTTODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   305
+--- qmail-1.03/EXTTODO	Thu Jan  1 01:00:00 1970
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   306
++++ qmail-exttodo/EXTTODO	Sun Jan  5 22:12:01 2003
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   307
+@@ -0,0 +1,114 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   308
++EXTTODO by Claudio Jeker <jeker@n-r-g.com> and 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   309
++Andre Oppermann <opi@nrg4u.com>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   310
++(c) 1998,1999,2000,2001,2002 Internet Business Solutions Ltd.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   311
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   312
++The EXTTODO patch is a part of the qmail-ldap patch.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   313
++This patches for qmail come with NO WARRANTY.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   314
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   315
++These patches are under the BSD license.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   316
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   317
++RELEASE: 5. Jan. 2003
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   318
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   319
++EXTTODO:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   320
++======================
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   321
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   322
++TOC:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   323
++ WHAT DOES IT DO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   324
++ INSTALL
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   325
++ CONFIG FILES
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   326
++ SETUP
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   327
++ BIG PICTURE
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   328
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   329
++NEWS:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   330
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   331
++ This is the first release of the EXTTODO patch.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   332
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   333
++================================================================================
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   334
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   335
++WHAT DOES IT DO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   336
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   337
++ The exttodo patch addresses a problem known as the silly qmail (queue)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   338
++ problem. This problem is found only on system with high injection rates.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   339
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   340
++ qmail with a big local and remote concurrency could deliver a tremendous 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   341
++ amount of messages but normally this can not be achieved because qmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   342
++ becomes a bottleneck on those high volumes servers.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   343
++ qmail-send preprocesses all new messages before distributing them for local
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   344
++ or remote delivering. In one run qmail-send does one todo run but has the 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   345
++ ability to close multiple jobs. Because of this layout qmail-send can not 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   346
++ feed all the new available (local/remote) delivery slots and therefor it is 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   347
++ not possible to achieve the maximum throughput.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   348
++ This would be a minor problem if one qmail-send run could be done in extreme
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   349
++ short time but because of many file system calls (fsync and (un)link) a todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   350
++ run is expensive and throttles the throughput.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   351
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   352
++ The exttodo patch tries to solve the problem by moving the todo routine into 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   353
++ an external program. This reduces the run time in qmail-send.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   354
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   355
++ exttodo adds a new program to qmail called qmail-todo. qmail-todo prepares
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   356
++ incoming messages for local and remote delivering (by creating info/<messid>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   357
++ local/<messid> and remote/<messid> and removing todo/<messid>). See also
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   358
++ INTERNALS. As next qmail-todo transmits the <messid> to qmail-send which will
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   359
++ add this message into the priority queue which schedules the message for 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   360
++ delivery. 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   361
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   362
++INSTALL
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   363
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   364
++ To enable the exttodo patch you need to define EXTERNAL_TODO while compiling
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   365
++ qmail(-ldap) this can be done with the -D flag of cc (e.g. cc -DEXTERNAL_TODO).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   366
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   367
++ NOTE: the exttodo patch can also be used on qmail systems without the 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   368
++ qmail-ldap patch.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   369
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   370
++================================================================================
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   371
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   372
++CONFIG FILES
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   373
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   374
++ No additional control files are used or needed.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   375
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   376
++================================================================================
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   377
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   378
++SETUP
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   379
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   380
++ qmail-todo will be started by qmail-start and therefor no additional setup
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   381
++ is needed.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   382
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   383
++ To verify that exttodo is running just check if qmail-todo is running.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   384
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   385
++================================================================================
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   386
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   387
++BIG PICTURE
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   388
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   389
++               +-------+   +-------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   390
++               | clean |   | clean |
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   391
++               +--0-1--+   +--0-1--+       +-----------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   392
++         trigger  ^ |         ^ |        +->0,1 lspawn |
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   393
++            |     | v         | v       /  +-----------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   394
++ +-------+  v  +--2-3--+   +--5-6--+   /
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   395
++ |       |  |  |       0<--7     1,2<-+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   396
++ | queue |--+--| todo  |   | send  |
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   397
++ |       |  |  |       1-->8     3,4<-+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   398
++ +-------+     +-------+   +---0---+   \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   399
++                               |        \  +-----------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   400
++                               v         +->0,1 rspwan |
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   401
++                           +---0---+       +-----------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   402
++                           | logger|
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   403
++                           +-------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   404
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   405
++Communication between qmail-send and qmail-todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   406
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   407
++todo -> send:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   408
++   D[LRB]<mesgid>\0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   409
++          Start delivery for new message with id <messid>.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   410
++          the character L, R or B defines the type
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   411
++          of delivery, local, remote or both respectively.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   412
++   L<string>\0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   413
++          Dump string to the logger without adding additional \n or similar.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   414
++send -> todo:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   415
++   H      Got a SIGHUP reread ~/control/locals and ~/control/virtualdomains
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   416
++   X      Quit ASAP.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   417
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   418
++qmail-todo sends "\0" terminated messages whereas qmail-send just send one
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   419
++character to qmail-todo.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   420
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   421
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   422
+diff -uN qmail-1.03/EXTTODO-INFO qmail-exttodo/EXTTODO-INFO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   423
+--- qmail-1.03/EXTTODO-INFO	Thu Jan  1 01:00:00 1970
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   424
++++ qmail-exttodo/EXTTODO-INFO	Tue Apr 30 16:49:02 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   425
+@@ -0,0 +1,11 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   426
++Files modified:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   427
++Makefile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   428
++EXTTODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   429
++FILES
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   430
++TARGETS
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   431
++qmail-send.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   432
++qmail-todo.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   433
++qmail-start.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   434
++hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   435
++install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   436
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   437
+diff -uN qmail-1.03/FILES qmail-exttodo/FILES
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   438
+--- qmail-1.03/FILES	Mon Jun 15 12:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   439
++++ qmail-exttodo/FILES	Mon Apr 22 13:59:28 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   440
+@@ -431,3 +431,4 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   441
+ tcp-environ.5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   442
+ constmap.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   443
+ constmap.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   444
++qmail-todo.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   445
+diff -uN qmail-1.03/Makefile qmail-exttodo/Makefile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   446
+--- qmail-1.03/Makefile	Mon Jun 15 12:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   447
++++ qmail-exttodo/Makefile	Mon Apr 22 14:55:59 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   448
+@@ -1,5 +1,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   449
+ # Don't edit Makefile! Use conf-* for configuration.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   450
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   451
++DEFINES=-DEXTERNAL_TODO # use to enable external todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   452
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   453
+ SHELL=/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   454
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   455
+ default: it
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   456
+@@ -703,7 +705,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   457
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   458
+ hier.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   459
+ compile hier.c auto_qmail.h auto_split.h auto_uids.h fmt.h fifo.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   460
+-	./compile hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   461
++	./compile $(DEFINES) hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   462
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   463
+ home: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   464
+ home.sh conf-qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   465
+@@ -755,7 +757,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   466
+ install-big.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   467
+ compile install-big.c auto_qmail.h auto_split.h auto_uids.h fmt.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   468
+ fifo.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   469
+-	./compile install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   470
++	./compile $(DEFINES) install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   471
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   472
+ install.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   473
+ compile install.c substdio.h strerr.h error.h open.h readwrite.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   474
+@@ -808,7 +810,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   475
+ forward preline condredirect bouncesaying except maildirmake \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   476
+ maildir2mbox maildirwatch qail elq pinq idedit install-big install \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   477
+ instcheck home home+df proc proc+df binm1 binm1+df binm2 binm2+df \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   478
+-binm3 binm3+df
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   479
++binm3 binm3+df qmail-todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   480
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   481
+ load: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   482
+ make-load warn-auto.sh systype
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   483
+@@ -1509,7 +1511,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   484
+ scan.h case.h auto_qmail.h trigger.h newfield.h stralloc.h quote.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   485
+ qmail.h substdio.h qsutil.h prioq.h datetime.h gen_alloc.h constmap.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   486
+ fmtqfn.h readsubdir.h direntry.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   487
+-	./compile qmail-send.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   488
++	./compile $(DEFINES) qmail-send.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   489
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   490
+ qmail-showctl: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   491
+ load qmail-showctl.o auto_uids.o control.o open.a getln.a stralloc.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   492
+@@ -1574,7 +1576,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   493
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   494
+ qmail-start.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   495
+ compile qmail-start.c fd.h prot.h exit.h fork.h auto_uids.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   496
+-	./compile qmail-start.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   497
++	./compile $(DEFINES) qmail-start.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   498
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   499
+ qmail-tcpok: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   500
+ load qmail-tcpok.o open.a lock.a strerr.a substdio.a error.a str.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   501
+@@ -1605,6 +1607,20 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   502
+ compile qmail-tcpto.c substdio.h subfd.h substdio.h auto_qmail.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   503
+ fmt.h ip.h lock.h error.h exit.h datetime.h now.h datetime.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   504
+ 	./compile qmail-tcpto.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   505
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   506
++qmail-todo: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   507
++load qmail-todo.o control.o constmap.o trigger.o fmtqfn.o now.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   508
++readsubdir.o case.a ndelay.a getln.a sig.a open.a stralloc.a alloc.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   509
++substdio.a error.a str.a fs.a auto_qmail.o auto_split.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   510
++	./load qmail-todo control.o constmap.o trigger.o fmtqfn.o now.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   511
++	readsubdir.o case.a ndelay.a getln.a sig.a open.a stralloc.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   512
++	alloc.a substdio.a error.a str.a fs.a auto_qmail.o auto_split.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   513
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   514
++qmail-todo.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   515
++compile alloc.h auto_qmail.h byte.h constmap.h control.h direntry.h error.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   516
++exit.h fmt.h fmtqfn.h getln.h open.h ndelay.h now.h readsubdir.h readwrite.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   517
++scan.h select.h str.h stralloc.h substdio.h trigger.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   518
++	./compile $(DEFINES) qmail-todo.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   519
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   520
+ qmail-upq: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   521
+ warn-auto.sh qmail-upq.sh conf-qmail conf-break conf-split
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   522
+diff -uN qmail-1.03/TARGETS qmail-exttodo/TARGETS
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   523
+--- qmail-1.03/TARGETS	Mon Jun 15 12:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   524
++++ qmail-exttodo/TARGETS	Mon Apr 22 13:59:32 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   525
+@@ -385,3 +385,5 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   526
+ man
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   527
+ setup
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   528
+ check
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   529
++qmail-todo.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   530
++qmail-todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   531
+diff -uN qmail-1.03/hier.c qmail-exttodo/hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   532
+--- qmail-1.03/hier.c	Mon Jun 15 12:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   533
++++ qmail-exttodo/hier.c	Mon Apr 22 14:01:58 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   534
+@@ -108,6 +108,9 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   535
+   c(auto_qmail,"bin","qmail-rspawn",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   536
+   c(auto_qmail,"bin","qmail-clean",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   537
+   c(auto_qmail,"bin","qmail-send",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   538
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   539
++  c(auto_qmail,"bin","qmail-todo",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   540
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   541
+   c(auto_qmail,"bin","splogger",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   542
+   c(auto_qmail,"bin","qmail-newu",auto_uido,auto_gidq,0700);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   543
+   c(auto_qmail,"bin","qmail-newmrh",auto_uido,auto_gidq,0700);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   544
+diff -uN qmail-1.03/install-big.c qmail-exttodo/install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   545
+--- qmail-1.03/install-big.c	Mon Jun 15 12:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   546
++++ qmail-exttodo/install-big.c	Mon Apr 22 14:02:11 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   547
+@@ -108,6 +108,9 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   548
+   c(auto_qmail,"bin","qmail-rspawn",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   549
+   c(auto_qmail,"bin","qmail-clean",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   550
+   c(auto_qmail,"bin","qmail-send",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   551
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   552
++  c(auto_qmail,"bin","qmail-todo",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   553
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   554
+   c(auto_qmail,"bin","splogger",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   555
+   c(auto_qmail,"bin","qmail-newu",auto_uido,auto_gidq,0700);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   556
+   c(auto_qmail,"bin","qmail-newmrh",auto_uido,auto_gidq,0700);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   557
+diff -uN qmail-1.03/qmail-send.c qmail-exttodo/qmail-send.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   558
+--- qmail-1.03/qmail-send.c	Mon Jun 15 12:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   559
++++ qmail-exttodo/qmail-send.c	Sun Jan  5 22:09:42 2003
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   560
+@@ -1215,6 +1215,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   561
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   562
+ /* this file is too long ---------------------------------------------- TODO */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   563
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   564
++#ifndef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   565
+ datetime_sec nexttodorun;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   566
+ DIR *tododir; /* if 0, have to opendir again */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   567
+ stralloc todoline = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   568
+@@ -1438,6 +1439,143 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   569
+    if (fdchan[c] != -1) close(fdchan[c]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   570
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   571
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   572
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   573
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   574
++/* this file is too long ------------------------------------- EXTERNAL TODO */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   575
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   576
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   577
++stralloc todoline = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   578
++char todobuf[2048];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   579
++int todofdin;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   580
++int todofdout;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   581
++int flagtodoalive;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   582
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   583
++void tododied() { log1("alert: oh no! lost qmail-todo connection! dying...\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   584
++ flagexitasap = 1; flagtodoalive = 0; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   585
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   586
++void todo_init()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   587
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   588
++  todofdout = 7;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   589
++  todofdin = 8;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   590
++  flagtodoalive = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   591
++  /* sync with external todo */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   592
++  if (write(todofdout, "S", 1) != 1) tododied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   593
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   594
++  return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   595
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   596
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   597
++void todo_selprep(nfds,rfds,wakeup)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   598
++int *nfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   599
++fd_set *rfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   600
++datetime_sec *wakeup;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   601
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   602
++  if (flagexitasap) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   603
++    if (flagtodoalive) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   604
++      write(todofdout, "X", 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   605
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   606
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   607
++  if (flagtodoalive) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   608
++    FD_SET(todofdin,rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   609
++    if (*nfds <= todofdin)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   610
++      *nfds = todofdin + 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   611
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   612
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   613
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   614
++void todo_del(char* s)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   615
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   616
++ int flagchan[CHANNELS];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   617
++ struct prioq_elt pe;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   618
++ unsigned long id;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   619
++ unsigned int len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   620
++ int c;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   621
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   622
++ for (c = 0;c < CHANNELS;++c) flagchan[c] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   623
++ switch(*s++) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   624
++  case 'L':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   625
++    flagchan[0] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   626
++    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   627
++  case 'R':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   628
++    flagchan[1] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   629
++    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   630
++  case 'B':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   631
++    flagchan[0] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   632
++    flagchan[1] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   633
++    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   634
++  case 'X':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   635
++    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   636
++  default:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   637
++    log1("warning: qmail-send unable to understand qmail-todo\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   638
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   639
++ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   640
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   641
++ len = scan_ulong(s,&id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   642
++ if (!len || s[len]) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   643
++  log1("warning: qmail-send unable to understand qmail-todo\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   644
++  return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   645
++ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   646
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   647
++ pe.id = id; pe.dt = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   648
++ for (c = 0;c < CHANNELS;++c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   649
++   if (flagchan[c])
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   650
++     while (!prioq_insert(&pqchan[c],&pe)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   651
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   652
++ for (c = 0;c < CHANNELS;++c) if (flagchan[c]) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   653
++ if (c == CHANNELS)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   654
++   while (!prioq_insert(&pqdone,&pe)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   655
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   656
++ return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   657
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   658
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   659
++void todo_do(rfds)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   660
++fd_set *rfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   661
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   662
++  int r;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   663
++  char ch;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   664
++  int i;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   665
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   666
++  if (!flagtodoalive) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   667
++  if (!FD_ISSET(todofdin,rfds)) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   668
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   669
++  r = read(todofdin,todobuf,sizeof(todobuf));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   670
++  if (r == -1) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   671
++  if (r == 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   672
++    if (flagexitasap)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   673
++      flagtodoalive = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   674
++    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   675
++      tododied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   676
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   677
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   678
++  for (i = 0;i < r;++i) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   679
++    ch = todobuf[i];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   680
++    while (!stralloc_append(&todoline,&ch)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   681
++    if (todoline.len > REPORTMAX)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   682
++      todoline.len = REPORTMAX;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   683
++      /* qmail-todo is responsible for keeping it short */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   684
++    if (!ch && (todoline.len > 1)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   685
++      switch (todoline.s[0]) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   686
++	case 'D':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   687
++	  if (flagexitasap) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   688
++	  todo_del(todoline.s + 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   689
++	  break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   690
++	case 'L':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   691
++	  log1(todoline.s + 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   692
++	  break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   693
++	case 'X':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   694
++	  if (flagexitasap)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   695
++	    flagtodoalive = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   696
++	  else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   697
++	    tododied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   698
++	  break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   699
++	default:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   700
++	  log1("warning: qmail-send unable to understand qmail-todo: report mangled\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   701
++	  break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   702
++      }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   703
++      todoline.len = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   704
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   705
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   706
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   707
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   708
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   709
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   710
+ /* this file is too long ---------------------------------------------- MAIN */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   711
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   712
+@@ -1504,6 +1642,9 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   713
+    log1("alert: unable to reread controls: unable to switch to home directory\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   714
+    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   715
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   716
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   717
++ write(todofdout, "H", 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   718
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   719
+  regetcontrols();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   720
+  while (chdir("queue") == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   721
+   {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   722
+@@ -1568,8 +1709,12 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   723
+  todo_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   724
+  cleanup_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   725
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   726
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   727
++ while (!flagexitasap || !del_canexit() || flagtodoalive)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   728
++#else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   729
+  while (!flagexitasap || !del_canexit())
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   730
+-  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   731
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   732
++ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   733
+    recent = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   734
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   735
+    if (flagrunasap) { flagrunasap = 0; pqrun(); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   736
+diff -uN qmail-1.03/qmail-start.c qmail-exttodo/qmail-start.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   737
+--- qmail-1.03/qmail-start.c	Mon Jun 15 12:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   738
++++ qmail-exttodo/qmail-start.c	Mon Apr 22 13:55:48 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   739
+@@ -8,6 +8,9 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   740
+ char *(qcargs[]) = { "qmail-clean", 0 };
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   741
+ char *(qlargs[]) = { "qmail-lspawn", "./Mailbox", 0 };
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   742
+ char *(qrargs[]) = { "qmail-rspawn", 0 };
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   743
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   744
++char *(qtargs[]) = { "qmail-todo", 0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   745
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   746
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   747
+ void die() { _exit(111); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   748
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   749
+@@ -18,13 +21,28 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   750
+ int pi4[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   751
+ int pi5[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   752
+ int pi6[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   753
+-
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   754
+-void close23456() { close(2); close(3); close(4); close(5); close(6); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   755
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   756
++int pi7[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   757
++int pi8[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   758
++int pi9[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   759
++int pi10[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   760
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   761
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   762
++void close23456() { 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   763
++  close(2); close(3); close(4); close(5); close(6); 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   764
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   765
++  close(7); close(8);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   766
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   767
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   768
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   769
+ void closepipes() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   770
+   close(pi1[0]); close(pi1[1]); close(pi2[0]); close(pi2[1]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   771
+   close(pi3[0]); close(pi3[1]); close(pi4[0]); close(pi4[1]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   772
+   close(pi5[0]); close(pi5[1]); close(pi6[0]); close(pi6[1]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   773
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   774
++  close(pi7[0]); close(pi7[1]); close(pi8[0]); close(pi8[1]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   775
++	close(pi9[0]); close(pi9[1]); close(pi10[0]); close(pi10[1]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   776
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   777
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   778
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   779
+ void main(argc,argv)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   780
+@@ -40,6 +58,10 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   781
+   if (fd_copy(4,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   782
+   if (fd_copy(5,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   783
+   if (fd_copy(6,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   784
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   785
++  if (fd_copy(7,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   786
++  if (fd_copy(8,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   787
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   788
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   789
+   if (argv[1]) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   790
+     qlargs[1] = argv[1];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   791
+@@ -70,6 +92,12 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   792
+   if (pipe(pi4) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   793
+   if (pipe(pi5) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   794
+   if (pipe(pi6) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   795
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   796
++  if (pipe(pi7) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   797
++  if (pipe(pi8) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   798
++  if (pipe(pi9) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   799
++  if (pipe(pi10) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   800
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   801
+  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   802
+   switch(fork()) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   803
+     case -1: die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   804
+@@ -105,6 +133,34 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   805
+       execvp(*qcargs,qcargs);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   806
+       die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   807
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   808
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   809
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   810
++  switch(fork()) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   811
++    case -1: die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   812
++    case 0:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   813
++      if (prot_uid(auto_uids) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   814
++      if (fd_copy(0,pi7[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   815
++      if (fd_copy(1,pi8[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   816
++      close23456();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   817
++      if (fd_copy(2,pi9[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   818
++      if (fd_copy(3,pi10[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   819
++      closepipes();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   820
++      execvp(*qtargs,qtargs);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   821
++      die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   822
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   823
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   824
++  switch(fork()) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   825
++    case -1: die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   826
++    case 0:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   827
++      if (prot_uid(auto_uidq) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   828
++      if (fd_copy(0,pi9[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   829
++      if (fd_copy(1,pi10[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   830
++      close23456();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   831
++      closepipes();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   832
++      execvp(*qcargs,qcargs);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   833
++      die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   834
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   835
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   836
+  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   837
+   if (prot_uid(auto_uids) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   838
+   if (fd_copy(0,1) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   839
+@@ -114,6 +170,10 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   840
+   if (fd_copy(4,pi4[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   841
+   if (fd_copy(5,pi5[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   842
+   if (fd_copy(6,pi6[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   843
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   844
++  if (fd_copy(7,pi7[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   845
++  if (fd_copy(8,pi8[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   846
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   847
+   closepipes();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   848
+   execvp(*qsargs,qsargs);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   849
+   die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   850
+diff -uN qmail-1.03/qmail-todo.c qmail-exttodo/qmail-todo.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   851
+--- qmail-1.03/qmail-todo.c	Thu Jan  1 01:00:00 1970
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   852
++++ qmail-exttodo/qmail-todo.c	Sun Jan  5 22:16:34 2003
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   853
+@@ -0,0 +1,688 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   854
++#include <sys/types.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   855
++#include <sys/stat.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   856
++#include "alloc.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   857
++#include "auto_qmail.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   858
++#include "byte.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   859
++#include "constmap.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   860
++#include "control.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   861
++#include "direntry.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   862
++#include "error.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   863
++#include "exit.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   864
++#include "fmt.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   865
++#include "fmtqfn.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   866
++#include "getln.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   867
++#include "open.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   868
++#include "ndelay.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   869
++#include "now.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   870
++#include "readsubdir.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   871
++#include "readwrite.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   872
++#include "scan.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   873
++#include "select.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   874
++#include "str.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   875
++#include "stralloc.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   876
++#include "substdio.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   877
++#include "trigger.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   878
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   879
++/* critical timing feature #1: if not triggered, do not busy-loop */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   880
++/* critical timing feature #2: if triggered, respond within fixed time */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   881
++/* important timing feature: when triggered, respond instantly */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   882
++#define SLEEP_TODO 1500 /* check todo/ every 25 minutes in any case */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   883
++#define SLEEP_FUZZ 1 /* slop a bit on sleeps to avoid zeno effect */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   884
++#define SLEEP_FOREVER 86400 /* absolute maximum time spent in select() */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   885
++#define SLEEP_SYSFAIL 123
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   886
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   887
++stralloc percenthack = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   888
++struct constmap mappercenthack;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   889
++stralloc locals = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   890
++struct constmap maplocals;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   891
++stralloc vdoms = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   892
++struct constmap mapvdoms;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   893
++stralloc envnoathost = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   894
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   895
++char strnum[FMT_ULONG];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   896
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   897
++/* XXX not good, if qmail-send.c changes this has to be updated */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   898
++#define CHANNELS 2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   899
++char *chanaddr[CHANNELS] = { "local/", "remote/" };
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   900
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   901
++datetime_sec recent;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   902
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   903
++void log1(char *x);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   904
++void log3(char* x, char* y, char* z);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   905
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   906
++int flagstopasap = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   907
++void sigterm(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   908
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   909
++  if (flagstopasap == 0)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   910
++    log1("status: qmail-todo stop processing asap\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   911
++  flagstopasap = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   912
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   913
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   914
++int flagreadasap = 0; void sighup(void) { flagreadasap = 1; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   915
++int flagsendalive = 1; void senddied(void) { flagsendalive = 0; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   916
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   917
++void nomem() { log1("alert: out of memory, sleeping...\n"); sleep(10); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   918
++void pausedir(dir) char *dir;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   919
++{ log3("alert: unable to opendir ",dir,", sleeping...\n"); sleep(10); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   920
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   921
++void cleandied()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   922
++{ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   923
++  log1("alert: qmail-todo: oh no! lost qmail-clean connection! dying...\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   924
++  flagstopasap = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   925
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   926
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   927
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   928
++/* this file is not so long ------------------------------------- FILENAMES */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   929
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   930
++stralloc fn = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   931
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   932
++void fnmake_init(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   933
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   934
++ while (!stralloc_ready(&fn,FMTQFN)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   935
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   936
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   937
++void fnmake_info(unsigned long id) { fn.len = fmtqfn(fn.s,"info/",id,1); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   938
++void fnmake_todo(unsigned long id) { fn.len = fmtqfn(fn.s,"todo/",id,0); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   939
++void fnmake_mess(unsigned long id) { fn.len = fmtqfn(fn.s,"mess/",id,1); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   940
++void fnmake_chanaddr(unsigned long id, int c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   941
++{ fn.len = fmtqfn(fn.s,chanaddr[c],id,1); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   942
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   943
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   944
++/* this file is not so long ------------------------------------- REWRITING */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   945
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   946
++stralloc rwline = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   947
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   948
++/* 1 if by land, 2 if by sea, 0 if out of memory. not allowed to barf. */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   949
++/* may trash recip. must set up rwline, between a T and a \0. */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   950
++int rewrite(char *recip)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   951
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   952
++  int i;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   953
++  int j;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   954
++  char *x;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   955
++  static stralloc addr = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   956
++  int at;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   957
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   958
++  if (!stralloc_copys(&rwline,"T")) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   959
++  if (!stralloc_copys(&addr,recip)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   960
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   961
++  i = byte_rchr(addr.s,addr.len,'@');
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   962
++  if (i == addr.len) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   963
++    if (!stralloc_cats(&addr,"@")) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   964
++    if (!stralloc_cat(&addr,&envnoathost)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   965
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   966
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   967
++  while (constmap(&mappercenthack,addr.s + i + 1,addr.len - i - 1)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   968
++    j = byte_rchr(addr.s,i,'%');
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   969
++    if (j == i) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   970
++    addr.len = i;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   971
++    i = j;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   972
++    addr.s[i] = '@';
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   973
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   974
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   975
++  at = byte_rchr(addr.s,addr.len,'@');
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   976
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   977
++  if (constmap(&maplocals,addr.s + at + 1,addr.len - at - 1)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   978
++    if (!stralloc_cat(&rwline,&addr)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   979
++    if (!stralloc_0(&rwline)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   980
++    return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   981
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   982
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   983
++  for (i = 0;i <= addr.len;++i)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   984
++    if (!i || (i == at + 1) || (i == addr.len) || ((i > at) && (addr.s[i] == '.')))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   985
++      if (x = constmap(&mapvdoms,addr.s + i,addr.len - i)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   986
++        if (!*x) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   987
++        if (!stralloc_cats(&rwline,x)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   988
++        if (!stralloc_cats(&rwline,"-")) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   989
++        if (!stralloc_cat(&rwline,&addr)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   990
++        if (!stralloc_0(&rwline)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   991
++        return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   992
++      }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   993
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   994
++  if (!stralloc_cat(&rwline,&addr)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   995
++  if (!stralloc_0(&rwline)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   996
++  return 2;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   997
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   998
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   999
++/* this file is not so long --------------------------------- COMMUNICATION */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1000
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1001
++substdio sstoqc; char sstoqcbuf[1024];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1002
++substdio ssfromqc; char ssfromqcbuf[1024];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1003
++stralloc comm_buf = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1004
++int comm_pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1005
++int fdout = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1006
++int fdin = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1007
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1008
++void comm_init(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1009
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1010
++ substdio_fdbuf(&sstoqc,write,2,sstoqcbuf,sizeof(sstoqcbuf));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1011
++ substdio_fdbuf(&ssfromqc,read,3,ssfromqcbuf,sizeof(ssfromqcbuf));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1012
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1013
++ fdout = 1; /* stdout */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1014
++ fdin = 0;  /* stdin */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1015
++ if (ndelay_on(fdout) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1016
++ /* this is so stupid: NDELAY semantics should be default on write */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1017
++   senddied(); /* drastic, but better than risking deadlock */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1018
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1019
++ while (!stralloc_ready(&comm_buf,1024)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1020
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1021
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1022
++int comm_canwrite(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1023
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1024
++ /* XXX: could allow a bigger buffer; say 10 recipients */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1025
++ /* XXX: returns true if there is something in the buffer */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1026
++ if (!flagsendalive) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1027
++ if (comm_buf.s && comm_buf.len) return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1028
++ return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1029
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1030
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1031
++void log1(char* x)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1032
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1033
++  int pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1034
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1035
++  pos = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1036
++  if (!stralloc_cats(&comm_buf,"L")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1037
++  if (!stralloc_cats(&comm_buf,x)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1038
++  if (!stralloc_0(&comm_buf)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1039
++  return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1040
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1041
++fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1042
++  /* either all or nothing */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1043
++  comm_buf.len = pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1044
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1045
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1046
++void log3(char* x, char *y, char *z)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1047
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1048
++  int pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1049
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1050
++  pos = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1051
++  if (!stralloc_cats(&comm_buf,"L")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1052
++  if (!stralloc_cats(&comm_buf,x)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1053
++  if (!stralloc_cats(&comm_buf,y)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1054
++  if (!stralloc_cats(&comm_buf,z)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1055
++  if (!stralloc_0(&comm_buf)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1056
++  return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1057
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1058
++fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1059
++  /* either all or nothing */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1060
++  comm_buf.len = pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1061
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1062
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1063
++void comm_write(unsigned long id, int local, int remote)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1064
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1065
++  int pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1066
++  char *s;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1067
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1068
++  if(local && remote) s="B";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1069
++  else if(local) s="L";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1070
++  else if(remote) s="R";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1071
++  else s="X";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1072
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1073
++  pos = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1074
++  strnum[fmt_ulong(strnum,id)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1075
++  if (!stralloc_cats(&comm_buf,"D")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1076
++  if (!stralloc_cats(&comm_buf,s)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1077
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1078
++  if (!stralloc_0(&comm_buf)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1079
++  return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1080
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1081
++fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1082
++  /* either all or nothing */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1083
++  comm_buf.len = pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1084
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1085
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1086
++static int issafe(char ch)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1087
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1088
++ if (ch == '%') return 0; /* general principle: allman's code is crap */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1089
++ if (ch < 33) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1090
++ if (ch > 126) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1091
++ return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1092
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1093
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1094
++void comm_info(unsigned long id, unsigned long size, char* from, unsigned long pid, unsigned long uid)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1095
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1096
++  int pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1097
++  int i;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1098
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1099
++  pos = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1100
++  if (!stralloc_cats(&comm_buf,"Linfo msg ")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1101
++  strnum[fmt_ulong(strnum,id)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1102
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1103
++  if (!stralloc_cats(&comm_buf,": bytes ")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1104
++  strnum[fmt_ulong(strnum,size)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1105
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1106
++  if (!stralloc_cats(&comm_buf," from <")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1107
++  i = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1108
++  if (!stralloc_cats(&comm_buf,from)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1109
++  for (;i < comm_buf.len;++i)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1110
++    if (comm_buf.s[i] == '\n')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1111
++      comm_buf.s[i] = '/';
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1112
++    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1113
++      if (!issafe(comm_buf.s[i]))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1114
++	comm_buf.s[i] = '_';
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1115
++  if (!stralloc_cats(&comm_buf,"> qp ")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1116
++  strnum[fmt_ulong(strnum,pid)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1117
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1118
++  if (!stralloc_cats(&comm_buf," uid ")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1119
++  strnum[fmt_ulong(strnum,uid)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1120
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1121
++  if (!stralloc_cats(&comm_buf,"\n")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1122
++  if (!stralloc_0(&comm_buf)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1123
++  return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1124
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1125
++fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1126
++  /* either all or nothing */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1127
++  comm_buf.len = pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1128
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1129
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1130
++void comm_exit(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1131
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1132
++  int w;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1133
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1134
++  /* if it fails exit, we have already stoped */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1135
++  if (!stralloc_cats(&comm_buf,"X")) _exit(1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1136
++  if (!stralloc_0(&comm_buf)) _exit(1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1137
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1138
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1139
++void comm_selprep(int *nfds, fd_set *wfds, fd_set *rfds)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1140
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1141
++  if (flagsendalive) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1142
++    if (flagstopasap && comm_canwrite() == 0)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1143
++      comm_exit();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1144
++    if (comm_canwrite()) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1145
++      FD_SET(fdout,wfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1146
++      if (*nfds <= fdout)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1147
++	*nfds = fdout + 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1148
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1149
++    FD_SET(fdin,rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1150
++    if (*nfds <= fdin)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1151
++      *nfds = fdin + 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1152
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1153
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1154
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1155
++void comm_do(fd_set *wfds, fd_set *rfds)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1156
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1157
++  /* first write then read */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1158
++  if (flagsendalive)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1159
++    if (comm_canwrite())
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1160
++      if (FD_ISSET(fdout,wfds)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1161
++	int w;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1162
++	int len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1163
++	len = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1164
++	w = write(fdout,comm_buf.s + comm_pos,len - comm_pos);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1165
++	if (w <= 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1166
++	  if ((w == -1) && (errno == error_pipe))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1167
++	    senddied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1168
++	} else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1169
++	  comm_pos += w;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1170
++	  if (comm_pos == len) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1171
++	    comm_buf.len = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1172
++	    comm_pos = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1173
++	  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1174
++	}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1175
++      }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1176
++  if (flagsendalive)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1177
++    if (FD_ISSET(fdin,rfds)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1178
++      /* there are only two messages 'H' and 'X' */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1179
++      char c;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1180
++      int r;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1181
++      r = read(fdin, &c, 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1182
++      if (r <= 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1183
++	if ((r == -1) && (errno != error_intr))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1184
++	  senddied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1185
++      } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1186
++	switch(c) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1187
++	  case 'H':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1188
++	    sighup();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1189
++	    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1190
++	  case 'X':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1191
++	    sigterm();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1192
++	    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1193
++	  default:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1194
++	    log1("warning: qmail-todo: qmail-send speaks an obscure dialect\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1195
++	    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1196
++	}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1197
++      }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1198
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1199
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1200
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1201
++/* this file is not so long ------------------------------------------ TODO */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1202
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1203
++datetime_sec nexttodorun;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1204
++DIR *tododir; /* if 0, have to opendir again */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1205
++stralloc todoline = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1206
++char todobuf[SUBSTDIO_INSIZE];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1207
++char todobufinfo[512];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1208
++char todobufchan[CHANNELS][1024];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1209
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1210
++void todo_init(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1211
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1212
++ tododir = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1213
++ nexttodorun = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1214
++ trigger_set();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1215
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1216
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1217
++void todo_selprep(int *nfds, fd_set *rfds, datetime_sec *wakeup)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1218
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1219
++ if (flagstopasap) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1220
++ trigger_selprep(nfds,rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1221
++ if (tododir) *wakeup = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1222
++ if (*wakeup > nexttodorun) *wakeup = nexttodorun;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1223
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1224
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1225
++void todo_do(fd_set *rfds)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1226
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1227
++ struct stat st;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1228
++ substdio ss; int fd;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1229
++ substdio ssinfo; int fdinfo;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1230
++ substdio sschan[CHANNELS];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1231
++ int fdchan[CHANNELS];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1232
++ int flagchan[CHANNELS];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1233
++ char ch;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1234
++ int match;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1235
++ unsigned long id;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1236
++ unsigned int len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1237
++ direntry *d;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1238
++ int c;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1239
++ unsigned long uid;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1240
++ unsigned long pid;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1241
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1242
++ fd = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1243
++ fdinfo = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1244
++ for (c = 0;c < CHANNELS;++c) fdchan[c] = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1245
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1246
++ if (flagstopasap) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1247
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1248
++ if (!tododir)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1249
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1250
++   if (!trigger_pulled(rfds))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1251
++     if (recent < nexttodorun)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1252
++       return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1253
++   trigger_set();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1254
++   tododir = opendir("todo");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1255
++   if (!tododir)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1256
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1257
++     pausedir("todo");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1258
++     return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1259
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1260
++   nexttodorun = recent + SLEEP_TODO;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1261
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1262
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1263
++ d = readdir(tododir);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1264
++ if (!d)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1265
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1266
++   closedir(tododir);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1267
++   tododir = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1268
++   return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1269
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1270
++ if (str_equal(d->d_name,".")) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1271
++ if (str_equal(d->d_name,"..")) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1272
++ len = scan_ulong(d->d_name,&id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1273
++ if (!len || d->d_name[len]) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1274
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1275
++ fnmake_todo(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1276
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1277
++ fd = open_read(fn.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1278
++ if (fd == -1) { log3("warning: qmail-todo: unable to open ",fn.s,"\n"); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1279
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1280
++ fnmake_mess(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1281
++ /* just for the statistics */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1282
++ if (stat(fn.s,&st) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1283
++  { log3("warning: qmail-todo: unable to stat ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1284
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1285
++ for (c = 0;c < CHANNELS;++c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1286
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1287
++   fnmake_chanaddr(id,c);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1288
++   if (unlink(fn.s) == -1) if (errno != error_noent)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1289
++    { log3("warning: qmail-todo: unable to unlink ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1290
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1291
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1292
++ fnmake_info(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1293
++ if (unlink(fn.s) == -1) if (errno != error_noent)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1294
++  { log3("warning: qmail-todo: unable to unlink ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1295
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1296
++ fdinfo = open_excl(fn.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1297
++ if (fdinfo == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1298
++  { log3("warning: qmail-todo: unable to create ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1299
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1300
++ strnum[fmt_ulong(strnum,id)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1301
++ log3("new msg ",strnum,"\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1302
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1303
++ for (c = 0;c < CHANNELS;++c) flagchan[c] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1304
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1305
++ substdio_fdbuf(&ss,read,fd,todobuf,sizeof(todobuf));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1306
++ substdio_fdbuf(&ssinfo,write,fdinfo,todobufinfo,sizeof(todobufinfo));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1307
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1308
++ uid = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1309
++ pid = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1310
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1311
++ for (;;)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1312
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1313
++   if (getln(&ss,&todoline,&match,'\0') == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1314
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1315
++     /* perhaps we're out of memory, perhaps an I/O error */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1316
++     fnmake_todo(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1317
++     log3("warning: qmail-todo: trouble reading ",fn.s,"\n"); goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1318
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1319
++   if (!match) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1320
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1321
++   switch(todoline.s[0])
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1322
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1323
++     case 'u':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1324
++       scan_ulong(todoline.s + 1,&uid);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1325
++       break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1326
++     case 'p':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1327
++       scan_ulong(todoline.s + 1,&pid);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1328
++       break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1329
++     case 'F':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1330
++       if (substdio_putflush(&ssinfo,todoline.s,todoline.len) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1331
++	{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1332
++	 fnmake_info(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1333
++         log3("warning: qmail-todo: trouble writing to ",fn.s,"\n"); goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1334
++	}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1335
++	comm_info(id, (unsigned long) st.st_size, todoline.s + 1, pid, uid);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1336
++       break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1337
++     case 'T':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1338
++       switch(rewrite(todoline.s + 1))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1339
++	{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1340
++	 case 0: nomem(); goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1341
++	 case 2: c = 1; break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1342
++	 default: c = 0; break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1343
++        }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1344
++       if (fdchan[c] == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1345
++	{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1346
++	 fnmake_chanaddr(id,c);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1347
++	 fdchan[c] = open_excl(fn.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1348
++	 if (fdchan[c] == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1349
++          { log3("warning: qmail-todo: unable to create ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1350
++	 substdio_fdbuf(&sschan[c]
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1351
++	   ,write,fdchan[c],todobufchan[c],sizeof(todobufchan[c]));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1352
++	 flagchan[c] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1353
++	}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1354
++       if (substdio_bput(&sschan[c],rwline.s,rwline.len) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1355
++        {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1356
++	 fnmake_chanaddr(id,c);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1357
++         log3("warning: qmail-todo: trouble writing to ",fn.s,"\n"); goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1358
++        }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1359
++       break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1360
++     default:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1361
++       fnmake_todo(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1362
++       log3("warning: qmail-todo: unknown record type in ",fn.s,"\n"); goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1363
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1364
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1365
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1366
++ close(fd); fd = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1367
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1368
++ fnmake_info(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1369
++ if (substdio_flush(&ssinfo) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1370
++  { log3("warning: qmail-todo: trouble writing to ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1371
++ if (fsync(fdinfo) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1372
++  { log3("warning: qmail-todo: trouble fsyncing ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1373
++ close(fdinfo); fdinfo = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1374
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1375
++ for (c = 0;c < CHANNELS;++c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1376
++   if (fdchan[c] != -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1377
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1378
++     fnmake_chanaddr(id,c);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1379
++     if (substdio_flush(&sschan[c]) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1380
++      { log3("warning: qmail-todo: trouble writing to ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1381
++     if (fsync(fdchan[c]) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1382
++      { log3("warning: qmail-todo: trouble fsyncing ",fn.s,"\n"); goto fail; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1383
++     close(fdchan[c]); fdchan[c] = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1384
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1385
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1386
++ fnmake_todo(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1387
++ if (substdio_putflush(&sstoqc,fn.s,fn.len) == -1) { cleandied(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1388
++ if (substdio_get(&ssfromqc,&ch,1) != 1) { cleandied(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1389
++ if (ch != '+')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1390
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1391
++   log3("warning: qmail-clean unable to clean up ",fn.s,"\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1392
++   return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1393
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1394
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1395
++ comm_write(id, flagchan[0], flagchan[1]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1396
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1397
++ return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1398
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1399
++ fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1400
++ if (fd != -1) close(fd);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1401
++ if (fdinfo != -1) close(fdinfo);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1402
++ for (c = 0;c < CHANNELS;++c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1403
++   if (fdchan[c] != -1) close(fdchan[c]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1404
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1405
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1406
++/* this file is too long ---------------------------------------------- MAIN */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1407
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1408
++int getcontrols(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1409
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1410
++ if (control_init() == -1) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1411
++ if (control_rldef(&envnoathost,"control/envnoathost",1,"envnoathost") != 1) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1412
++ if (control_readfile(&locals,"control/locals",1) != 1) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1413
++ if (!constmap_init(&maplocals,locals.s,locals.len,0)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1414
++ switch(control_readfile(&percenthack,"control/percenthack",0))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1415
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1416
++   case -1: return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1417
++   case 0: if (!constmap_init(&mappercenthack,"",0,0)) return 0; break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1418
++   case 1: if (!constmap_init(&mappercenthack,percenthack.s,percenthack.len,0)) return 0; break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1419
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1420
++ switch(control_readfile(&vdoms,"control/virtualdomains",0))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1421
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1422
++   case -1: return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1423
++   case 0: if (!constmap_init(&mapvdoms,"",0,1)) return 0; break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1424
++   case 1: if (!constmap_init(&mapvdoms,vdoms.s,vdoms.len,1)) return 0; break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1425
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1426
++ return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1427
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1428
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1429
++stralloc newlocals = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1430
++stralloc newvdoms = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1431
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1432
++void regetcontrols(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1433
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1434
++ int r;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1435
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1436
++ if (control_readfile(&newlocals,"control/locals",1) != 1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1437
++  { log1("alert: qmail-todo: unable to reread control/locals\n"); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1438
++ r = control_readfile(&newvdoms,"control/virtualdomains",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1439
++ if (r == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1440
++  { log1("alert: qmail-todo: unable to reread control/virtualdomains\n"); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1441
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1442
++ constmap_free(&maplocals);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1443
++ constmap_free(&mapvdoms);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1444
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1445
++ while (!stralloc_copy(&locals,&newlocals)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1446
++ while (!constmap_init(&maplocals,locals.s,locals.len,0)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1447
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1448
++ if (r)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1449
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1450
++   while (!stralloc_copy(&vdoms,&newvdoms)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1451
++   while (!constmap_init(&mapvdoms,vdoms.s,vdoms.len,1)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1452
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1453
++ else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1454
++   while (!constmap_init(&mapvdoms,"",0,1)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1455
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1456
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1457
++void reread(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1458
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1459
++ if (chdir(auto_qmail) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1460
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1461
++   log1("alert: qmail-todo: unable to reread controls: unable to switch to home directory\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1462
++   return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1463
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1464
++ regetcontrols();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1465
++ while (chdir("queue") == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1466
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1467
++   log1("alert: qmail-todo: unable to switch back to queue directory; HELP! sleeping...\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1468
++   sleep(10);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1469
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1470
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1471
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1472
++void main()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1473
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1474
++ datetime_sec wakeup;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1475
++ fd_set rfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1476
++ fd_set wfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1477
++ int nfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1478
++ struct timeval tv;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1479
++ int r;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1480
++ char c;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1481
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1482
++ if (chdir(auto_qmail) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1483
++  { log1("alert: qmail-todo: cannot start: unable to switch to home directory\n"); _exit(111); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1484
++ if (!getcontrols())
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1485
++  { log1("alert: qmail-todo: cannot start: unable to read controls\n"); _exit(111); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1486
++ if (chdir("queue") == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1487
++  { log1("alert: qmail-todo: cannot start: unable to switch to queue directory\n"); _exit(111); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1488
++ sig_pipeignore();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1489
++ umask(077);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1490
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1491
++ fnmake_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1492
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1493
++ todo_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1494
++ comm_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1495
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1496
++ do {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1497
++   r = read(fdin, &c, 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1498
++   if ((r == -1) && (errno != error_intr))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1499
++     _exit(100); /* read failed probably qmail-send died */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1500
++ } while (r =! 1); /* we assume it is a 'S' */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1501
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1502
++ for (;;)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1503
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1504
++   recent = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1505
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1506
++   if (flagreadasap) { flagreadasap = 0; reread(); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1507
++   if (!flagsendalive) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1508
++     /* qmail-send finaly exited, so do the same. */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1509
++     if (flagstopasap) _exit(0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1510
++     /* qmail-send died. We can not log and we can not work therefor _exit(1). */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1511
++     _exit(1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1512
++   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1513
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1514
++   wakeup = recent + SLEEP_FOREVER;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1515
++   FD_ZERO(&rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1516
++   FD_ZERO(&wfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1517
++   nfds = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1518
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1519
++   todo_selprep(&nfds,&rfds,&wakeup);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1520
++   comm_selprep(&nfds,&wfds,&rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1521
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1522
++   if (wakeup <= recent) tv.tv_sec = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1523
++   else tv.tv_sec = wakeup - recent + SLEEP_FUZZ;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1524
++   tv.tv_usec = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1525
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1526
++   if (select(nfds,&rfds,&wfds,(fd_set *) 0,&tv) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1527
++     if (errno == error_intr)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1528
++       ;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1529
++     else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1530
++       log1("warning: qmail-todo: trouble in select\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1531
++   else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1532
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1533
++     recent = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1534
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1535
++     todo_do(&rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1536
++     comm_do(&wfds, &rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1537
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1538
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1539
++  /* NOTREACHED */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1540
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1541
++
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1542
diff -r 2be82bdba73b source/dietlibc/diet-qmail/make_cert.sh
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1543
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1544
+++ b/source/dietlibc/diet-qmail/make_cert.sh	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1545
@@ -0,0 +1,57 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1546
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1547
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1548
+# This script creates ssl certificates for
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1549
+# use with qmail.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1550
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1551
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1552
+cert() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1553
+if openssl req -new -x509 -nodes -out /var/qmail/control/servercert.pem \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1554
+	-days 366 -keyout /var/qmail/control/servercert.pem; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1555
+  chmod 640 /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1556
+  chown qmaild.qmail /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1557
+  ln -s /var/qmail/control/servercert.pem /var/qmail/control/clientcert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1558
+  echo "==> Process done."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1559
+else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1560
+  echo "==> Certificate creation failed."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1561
+  exit 1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1562
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1563
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1564
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1565
+cert_req() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1566
+if openssl req -new -nodes -out req.pem \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1567
+	-keyout /var/qmail/control/servercert.pem; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1568
+  chmod 640 /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1569
+  chown qmaild.qmail /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1570
+  ln -s /var/qmail/control/servercert.pem /var/qmail/control/clientcert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1571
+  cat << EOF
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1572
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1573
+==> Process done.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1574
+==> Send req.pem to your CA to obtain signed_req.pem, and do:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1575
+==> cat signed_req.pem >> /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1576
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1577
+EOF
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1578
+else 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1579
+  echo "==> Certificate creation failed."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1580
+  exit 1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1581
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1582
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1583
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1584
+case "$1" in 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1585
+  -h|--help)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1586
+    cat << EOF
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1587
+    
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1588
+This script creates SSL certificates to use with qmail.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1589
+Options :
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1590
+ -h --help    This help screen
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1591
+ -r --req     Creates a certificate verification request to 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1592
+              send to your CA.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1593
+EOF
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1594
+  ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1595
+  -r|--req)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1596
+    cert_req
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1597
+  ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1598
+  *)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1599
+    cert
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1600
+  ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1601
+esac
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1602
+
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1603
diff -r 2be82bdba73b source/dietlibc/diet-qmail/pop3d_log_run
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1604
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1605
+++ b/source/dietlibc/diet-qmail/pop3d_log_run	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1606
@@ -0,0 +1,20 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1607
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1608
+# 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1609
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1610
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1611
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1612
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1613
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1614
+# Log size rotate size.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1615
+LOG_SIZE="1048576"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1616
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1617
+# Number of logs to keep.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1618
+LOGS="5"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1619
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1620
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1621
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1622
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1623
+exec /usr/bin/setuidgid qmaill \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1624
+  /usr/bin/multilog t \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1625
+  n${LOGS} s${LOG_SIZE} \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1626
+  /var/log/qmail/pop3d 2>&1
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1627
diff -r 2be82bdba73b source/dietlibc/diet-qmail/pop3d_run
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1628
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1629
+++ b/source/dietlibc/diet-qmail/pop3d_run	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1630
@@ -0,0 +1,33 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1631
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1632
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1633
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1634
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1635
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1636
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1637
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1638
+# Password checking program (ie. checkpasswd, vpopmail).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1639
+PASSPROG=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1640
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1641
+# FQDN as set in /var/qmail/control/me
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1642
+LOCAL=`head -1 /var/qmail/control/me` 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1643
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1644
+# Maximum memory qmail-pop3d is allowed to use.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1645
+MAX_MEM="2000000"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1646
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1647
+# Maximum allowed concurrent connections.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1648
+MAX_CON="30" 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1649
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1650
+# Relay control.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1651
+TCP_CDB="/etc/tcp.pop3.cdb"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1652
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1653
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1654
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1655
+POPUP="/var/qmail/bin/qmail-popup"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1656
+POP3D="/var/qmail/bin/qmail-pop3d"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1657
+PORT="110"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1658
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1659
+exec /usr/bin/softlimit -m $MAX_MEM \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1660
+  /usr/bin/tcpserver -H -l $LOCAL \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1661
+  -v -x $TCP_CDB \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1662
+  -c $MAX_CON -R 0 $PORT \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1663
+  $POPUP $LOCAL $PASSPROG $POP3D Maildir 2>&1
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1664
diff -r 2be82bdba73b source/dietlibc/diet-qmail/qmail-1.03.errno.patch
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1665
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1666
+++ b/source/dietlibc/diet-qmail/qmail-1.03.errno.patch	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1667
@@ -0,0 +1,47 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1668
+diff -u qmail-1.03.old/cdb_seek.c qmail-1.03/cdb_seek.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1669
+--- qmail-1.03.old/cdb_seek.c	1998-06-15 05:52:55.000000000 -0500
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1670
++++ qmail-1.03/cdb_seek.c	2003-01-08 15:55:53.000000000 -0600
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1671
+@@ -1,6 +1,5 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1672
+ #include <sys/types.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1673
+ #include <errno.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1674
+-extern int errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1675
+ #include "cdb.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1676
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1677
+ #ifndef SEEK_SET
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1678
+diff -u qmail-1.03.old/dns.c qmail-1.03/dns.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1679
+--- qmail-1.03.old/dns.c	1998-06-15 05:52:55.000000000 -0500
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1680
++++ qmail-1.03/dns.c	2003-01-08 16:00:32.000000000 -0600
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1681
+@@ -7,8 +7,6 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1682
+ #include <errno.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1683
+ extern int res_query();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1684
+ extern int res_search();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1685
+-extern int errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1686
+-extern int h_errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1687
+ #include "ip.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1688
+ #include "ipalloc.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1689
+ #include "fmt.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1690
+diff -u qmail-1.03.old/error.3 qmail-1.03/error.3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1691
+--- qmail-1.03.old/error.3	1998-06-15 05:52:55.000000000 -0500
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1692
++++ qmail-1.03/error.3	2003-01-08 15:58:13.000000000 -0600
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1693
+@@ -3,8 +3,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1694
+ error \- syscall error codes
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1695
+ .SH SYNTAX
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1696
+ .B #include <error.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1697
+-
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1698
+-extern int \fBerrno\fP;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1699
++.B #include <errno.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1700
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1701
+ extern int \fBerror_intr\fP;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1702
+ .br
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1703
+diff -u qmail-1.03.old/error.h qmail-1.03/error.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1704
+--- qmail-1.03.old/error.h	1998-06-15 05:52:55.000000000 -0500
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1705
++++ qmail-1.03/error.h	2003-01-08 15:59:13.000000000 -0600
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1706
+@@ -1,7 +1,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1707
+ #ifndef ERROR_H
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1708
+ #define ERROR_H
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1709
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1710
+-extern int errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1711
++#include <errno.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1712
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1713
+ extern int error_intr;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1714
+ extern int error_nomem;
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1715
diff -r 2be82bdba73b source/dietlibc/diet-qmail/qmail-dietlibc.patch
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1716
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1717
+++ b/source/dietlibc/diet-qmail/qmail-dietlibc.patch	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1718
@@ -0,0 +1,40 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1719
+dietlibc compile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1720
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1721
+diff -r df48dd6b95fa conf-cc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1722
+--- a/conf-cc	Thu Nov 01 16:30:40 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1723
++++ b/conf-cc	Thu Nov 01 16:46:06 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1724
+@@ -1,3 +1,3 @@ cc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1725
+-cc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1726
++diet gcc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1727
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1728
+ This will be used to compile .c files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1729
+diff -r df48dd6b95fa conf-ld
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1730
+--- a/conf-ld	Thu Nov 01 16:30:40 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1731
++++ b/conf-ld	Thu Nov 01 16:46:06 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1732
+@@ -1,3 +1,3 @@ cc -s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1733
+-cc -s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1734
++diet gcc -s -static
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1735
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1736
+ This will be used to link .o files into an executable.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1737
+diff -r df48dd6b95fa predate.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1738
+--- a/predate.c	Thu Nov 01 16:30:40 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1739
++++ b/predate.c	Thu Nov 01 16:46:06 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1740
+@@ -8,7 +8,6 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1741
+ #include "strerr.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1742
+ #include "substdio.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1743
+ #include "subfd.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1744
+-#include "readwrite.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1745
+ #include "exit.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1746
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1747
+ #define FATAL "predate: fatal: "
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1748
+diff -r df48dd6b95fa qbiff.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1749
+--- a/qbiff.c	Thu Nov 01 16:30:40 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1750
++++ b/qbiff.c	Thu Nov 01 16:46:06 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1751
+@@ -8,7 +8,6 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1752
+ #define UTMP_FILE "/etc/utmp"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1753
+ #endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1754
+ #endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1755
+-#include "readwrite.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1756
+ #include "stralloc.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1757
+ #include "substdio.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1758
+ #include "subfd.h"
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1759
diff -r 2be82bdba73b source/dietlibc/diet-qmail/qmail-smtpd.spam.patch
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1760
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1761
+++ b/source/dietlibc/diet-qmail/qmail-smtpd.spam.patch	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1762
@@ -0,0 +1,74 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1763
+stika.net antispam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1764
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1765
+diff -r 72430e923db2 qmail-smtpd.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1766
+--- a/qmail-smtpd.c	Thu Nov 01 16:46:06 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1767
++++ b/qmail-smtpd.c	Thu Nov 01 16:54:59 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1768
+@@ -31,6 +31,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1769
+ #define BMCHECK_BMT 2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1770
+ #define BMCHECK_BMTNR 3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1771
+ #define BMCHECK_BHELO 4
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1772
++#define BMCHECK_GMF 5	// 20041202 tz - goodmailfrom functionality
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1773
+     
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1774
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1775
+ #define MAXHOPS 100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1776
+@@ -108,6 +109,9 @@ int bmfok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1777
+ int bmfok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1778
+ stralloc bmf = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1779
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1780
++int gmfok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1781
++stralloc gmf = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1782
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1783
+ int bmfnrok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1784
+ stralloc bmfnr = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1785
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1786
+@@ -140,6 +144,9 @@ void setup()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1787
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1788
+   bmfok = control_readfile(&bmf,"control/badmailfrom",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1789
+   if (bmfok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1790
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1791
++  gmfok = control_readfile(&gmf,"control/goodmailfrom",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1792
++  if (gmfok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1793
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1794
+   bmfnrok = control_readfile(&bmfnr,"control/badmailfromnorelay",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1795
+   if (bmfnrok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1796
+@@ -247,6 +254,8 @@ int bmcheck(which) int which;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1797
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1798
+   if (which == BMCHECK_BMF) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1799
+     if (!stralloc_copy(&bmb,&bmf)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1800
++  } else if (which == BMCHECK_GMF) {		// 20041202 tz - goodmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1801
++    if (!stralloc_copy(&bmb,&gmf)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1802
+   } else if (which == BMCHECK_BMFNR) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1803
+     if (!stralloc_copy(&bmb,&bmfnr)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1804
+   } else if (which == BMCHECK_BMT) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1805
+@@ -304,6 +313,7 @@ int flagbarfbhelo;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1806
+ int flagbarfbhelo;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1807
+ stralloc mailfrom = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1808
+ stralloc rcptto = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1809
++int senderallowed = 0;	/* 20021121 tz - our anti-spam */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1810
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1811
+ void smtp_helo(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1812
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1813
+@@ -327,6 +337,7 @@ void smtp_mail(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1814
+   if (!addrparse(arg)) { err_syntax(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1815
+   flagbarfbmf = 0; /* bmcheck is skipped for empty envelope senders */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1816
+   if ((bmfok) && (addr.len != 1)) flagbarfbmf = bmcheck(BMCHECK_BMF);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1817
++  if (flagbarfbmf && gmfok) flagbarfbmf = !bmcheck(BMCHECK_GMF);	// 20041202 tz - goodmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1818
+   if ((!flagbarfbmf) && (bmfnrok) && (addr.len != 1) && (!relayclient)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1819
+     flagbarfbmf = bmcheck(BMCHECK_BMFNR);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1820
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1821
+@@ -334,6 +345,7 @@ void smtp_mail(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1822
+   if (!stralloc_copys(&rcptto,"")) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1823
+   if (!stralloc_copys(&mailfrom,addr.s)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1824
+   if (!stralloc_0(&mailfrom)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1825
++  senderallowed = addrallowed();			/* 20021121 tz - our anti-spam */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1826
+   out("250 ok\r\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1827
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1828
+ void smtp_rcpt(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1829
+@@ -377,6 +389,7 @@ void smtp_rcpt(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1830
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1831
+   else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1832
+     if (!addrallowed()) { err_nogateway(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1833
++  if (!(addrallowed() || senderallowed)) { err_nogateway(); return; }	/* 20021121 tz - our anti-spam */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1834
+   if (!stralloc_cats(&rcptto,"T")) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1835
+   if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1836
+   if (!stralloc_0(&rcptto)) die_nomem();
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1837
diff -r 2be82bdba73b source/dietlibc/diet-qmail/qmail.install
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1838
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1839
+++ b/source/dietlibc/diet-qmail/qmail.install	Wed Feb 15 15:10:10 2012 +0100
28
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1840
@@ -0,0 +1,82 @@
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1841
+post_install() {
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1842
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1843
+  # add required groups
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1844
+  if [ ! `grep qmail /etc/group` ]; then
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1845
+    groupadd -g 2107 qmail &>/dev/null
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1846
+  fi
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1847
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1848
+  if [ ! `grep nofiles /etc/group` ]; then
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1849
+    groupadd -g  2108 nofiles &>/dev/null
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1850
+  fi
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1851
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1852
+  # add required users
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1853
+  id alias &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1854
+    useradd -u 7790 -g nofiles -d /var/qmail/alias -s /bin/false alias
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1855
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1856
+  id qmaild &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1857
+    useradd -u 7791 -g nofiles -d /var/qmail -s /bin/false qmaild
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1858
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1859
+  id qmaill &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1860
+    useradd -u 7792 -g nofiles -d /var/qmail -s /bin/false qmaill
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1861
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1862
+  id qmailp &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1863
+    useradd -u 7793 -g nofiles -d /var/qmail -s /bin/false qmailp
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1864
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1865
+  id qmailq &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1866
+    useradd -u 7794 -g qmail -d /var/qmail -s /bin/false qmailq
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1867
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1868
+  id qmailr &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1869
+    useradd -u 7795 -g qmail -d /var/qmail -s /bin/false qmailr
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1870
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1871
+  id qmails &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1872
+    useradd -u 7796 -g qmail -d /var/qmail -s /bin/false qmails
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1873
+  
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1874
+  # create FQDN file
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1875
+  if ! [ -f /var/qmail/control/me ]; then
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1876
+    /bin/hostname -f > /var/qmail/control/me
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1877
+    chmod 644 /var/qmail/control/me
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1878
+  fi
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1879
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1880
+  # create aliases
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1881
+  for i in postmaster mailer-daemon root; do
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1882
+    if ! [ -f ~alias/.qmail-${i} ]; then
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1883
+      touch ~alias/.qmail-${i}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1884
+      chmod 644 ~alias/.qmail-${i}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1885
+    fi
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1886
+  done
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1887
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1888
+  # create /var/qmail/queue
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1889
+  echo "==> Setting up message queue directory (/var/qmail/queue)"
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1890
+  /var/qmail/bin/queue-fix /var/qmail/queue &> /dev/null
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1891
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1892
+  cat << EOF
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1893
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1894
+Log out & back in (or source /etc/profile) before running qmail.
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1895
+To setup qmail run:
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1896
+  
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1897
+  $ config-fast FQDN
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1898
+replacing FQDN with your fully qualified domain.
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1899
+Then :
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1900
+$ ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1901
+In order to create SSL certificates run make_cert.sh (use -h for more options).
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1902
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1903
+EOF
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1904
+}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1905
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1906
+post_upgrade() {
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1907
+  post_install $1
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1908
+}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1909
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1910
+pre_remove() {
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1911
+  for user in alias qmail{d,l,p,q,r,s}; do
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1912
+    userdel ${user} &> /dev/null
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1913
+  done
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1914
+  for group in nofiles qmail; do
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1915
+    groupdel ${group} &> /dev/null
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1916
+  done
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1917
+}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1918
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1919
+op=$1
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1920
+shift
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1921
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1922
+$op $*
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1923
diff -r 2be82bdba73b source/dietlibc/diet-qmail/qmail.profile
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1924
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1925
+++ b/source/dietlibc/diet-qmail/qmail.profile	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1926
@@ -0,0 +1,5 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1927
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1928
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1929
+export QMAILDIR=/var/qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1930
+export PATH=$PATH:$QMAILDIR/bin
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1931
+export MANPATH=$MANPATH:$QMAILDIR/man
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1932
diff -r 2be82bdba73b source/dietlibc/diet-qmail/qmail.rc
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1933
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  1934
+++ b/source/dietlibc/diet-qmail/qmail.rc	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1935
@@ -0,0 +1,167 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1936
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1937
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1938
+# qmailctl script (based on lifewithqmail)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1939
+# modified for ArchLinux
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1940
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1941
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1942
+. /etc/rc.conf
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1943
+. /etc/rc.d/functions
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1944
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1945
+QMAILDUID=`id -u qmaild`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1946
+NOFILESGID=`id -g qmaild`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1947
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1948
+case "$1" in
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1949
+  start)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1950
+    stat_busy "Starting qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1951
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1952
+      if svok /service/qmail-${i} &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1953
+	echo -n "  ${i}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1954
+        svc -u /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1955
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1956
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1957
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1958
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1959
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1960
+      add_daemon qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1961
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1962
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1963
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1964
+  stop)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1965
+    stat_busy "Stopping qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1966
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1967
+      if svok /service/qmail-${i} &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1968
+	echo -n "  ${i}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1969
+	svc -d /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1970
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1971
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1972
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1973
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1974
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1975
+      rm_daemon qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1976
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1977
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1978
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1979
+  stat)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1980
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1981
+      if svok /service/qmail-${i} &>/dev/null ; then	    
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1982
+        svstat /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1983
+        svstat /service/qmail-${i}/log
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1984
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1985
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1986
+    qmail-qstat
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1987
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1988
+  doqueue|alrm|flush)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1989
+    stat_busy "Sending ALRM signal to qmail-send"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1990
+    svc -a /service/qmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1991
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1992
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1993
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1994
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1995
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1996
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1997
+  queue)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1998
+    qmail-qstat
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1999
+    qmail-qread
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2000
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2001
+  reload|hup)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2002
+    stat_busy "Sending HUP signal to qmail-send"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2003
+    svc -h /service/qmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2004
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2005
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2006
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2007
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2008
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2009
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2010
+  pause)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2011
+    stat_busy "Pausing qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2012
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2013
+      if svok /service/qmail-${i} &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2014
+	echo -n "  ${i}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2015
+        svc -p /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2016
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2017
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2018
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2019
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2020
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2021
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2022
+    fi 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2023
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2024
+  cont)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2025
+    stat_busy "Continuing qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2026
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2027
+      if svok /service/qmail-${i} &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2028
+	echo -n "  ${i}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2029
+        svc -c /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2030
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2031
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2032
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2033
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2034
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2035
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2036
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2037
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2038
+  restart)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2039
+    stat_busy "Restarting qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2040
+    if svok /service/qmail-smtpd &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2041
+      echo -n "  Stopping qmail-smtpd"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2042
+      svc -d /service/qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2043
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2044
+    if svok /service/qmail-send &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2045
+      echo -n "  Sending qmail-send SIGTERM and restarting"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2046
+      svc -t /service/qmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2047
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2048
+    if svok /service/qmail-pop3d &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2049
+      echo -n "  Restarting qmail-pop3d"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2050
+      svc -t /service/qmail-pop3d
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2051
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2052
+    if svok /service/qmail-smtpd &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2053
+      echo -n "  Restarting qmail-smtpd"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2054
+      svc -u /service/qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2055
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2056
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2057
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2058
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2059
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2060
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2061
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2062
+  cdb)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2063
+    stat_busy "Reload qmail access control"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2064
+    if [ -f /etc/tcp.smtp ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2065
+      echo -n "  SMTP"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2066
+      tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2067
+      chmod 644 /etc/tcp.smtp.cdb
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2068
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2069
+    if [ -f /etc/tcp.pop3 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2070
+      echo -n "  POP3"	    
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2071
+      tcprules /etc/tcp.pop3.cdb /etc/tcp.pop3.tmp < /etc/tcp.pop3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2072
+      chmod 644 /etc/tcp.pop3.cdb
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2073
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2074
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2075
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2076
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2077
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2078
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2079
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2080
+  help)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2081
+    cat <<HELP
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2082
+   stop -- stops mail service (smtp connections refused, nothing goes out)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2083
+  start -- starts mail service (smtp connection accepted, mail can go out)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2084
+  pause -- temporarily stops mail service (connections accepted, nothing leaves)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2085
+   cont -- continues paused mail service
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2086
+   stat -- displays status of mail service
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2087
+    cdb -- rebuild the tcpserver cdb file for smtp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2088
+restart -- stops and restarts smtp, sends qmail-send a TERM & restarts it
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2089
+doqueue -- sends qmail-send ALRM, scheduling queued messages for delivery
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2090
+ reload -- sends qmail-send HUP, rereading locals and virtualdomains
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2091
+  queue -- shows status of queue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2092
+   alrm -- same as doqueue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2093
+  flush -- same as doqueue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2094
+    hup -- same as reload
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2095
+HELP
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2096
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2097
+  *)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2098
+    echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2099
+    exit 1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2100
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2101
+esac
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2102
+exit 0
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2103
diff -r 2be82bdba73b source/dietlibc/diet-qmail/qmailqueue-patch
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2104
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2105
+++ b/source/dietlibc/diet-qmail/qmailqueue-patch	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2106
@@ -0,0 +1,72 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2107
+From: Bruce Guenter <bguenter-djb-qmail@qcc.sk.ca>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2108
+To: qmail@list.cr.yp.to
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2109
+Subject: QMAILQUEUE patch for qmail-1.03
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2110
+Date: Mon, 25 Jan 1999 15:37:21 -0600
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2111
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2112
+Greetings.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2113
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2114
+Appended is a patch to qmail-1.03 that causes any program that would run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2115
+qmail-queue to look for an environment variable QMAILQUEUE.  If it is
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2116
+present, it is used in place of the string "bin/qmail-queue" when
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2117
+running qmail-queue.  This could be used, for example, to add a program
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2118
+into the qmail-smtpd->qmail-queue pipeline that could do filtering,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2119
+rewrite broken headers, etc. (this is my planned usage for it).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2120
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2121
+This has undergone virtually no testing, but it looks so simple that it
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2122
+almost has to be correct.  No warranties, etc.  Note that the chdir to
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2123
+/var/qmail is always done before exec'ing the program.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2124
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2125
+Does this look like a reasonable thing to do?
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2126
+-- 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2127
+Bruce Guenter, QCC Communications Corp.  EMail: bruce.guenter@qcc.sk.ca
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2128
+Phone: (306)249-0220               WWW: http://www.qcc.sk.ca/~bguenter/
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2129
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2130
+diff -u qmail-1.03-orig/Makefile qmail-1.03/Makefile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2131
+--- qmail-1.03-orig/Makefile	Mon Jun 15 04:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2132
++++ qmail-1.03/Makefile	Tue Jan 19 10:52:24 1999
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2133
+@@ -1483,12 +1483,12 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2134
+ trigger.o fmtqfn.o quote.o now.o readsubdir.o qmail.o date822fmt.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2135
+ datetime.a case.a ndelay.a getln.a wait.a seek.a fd.a sig.a open.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2136
+ lock.a stralloc.a alloc.a substdio.a error.a str.a fs.a auto_qmail.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2137
+-auto_split.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2138
++auto_split.o env.a
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2139
+ 	./load qmail-send qsutil.o control.o constmap.o newfield.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2140
+ 	prioq.o trigger.o fmtqfn.o quote.o now.o readsubdir.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2141
+ 	qmail.o date822fmt.o datetime.a case.a ndelay.a getln.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2142
+ 	wait.a seek.a fd.a sig.a open.a lock.a stralloc.a alloc.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2143
+-	substdio.a error.a str.a fs.a auto_qmail.o auto_split.o 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2144
++	substdio.a error.a str.a fs.a auto_qmail.o auto_split.o env.a
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2145
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2146
+ qmail-send.0: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2147
+ qmail-send.8
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2148
+diff -u qmail-1.03-orig/qmail.c qmail-1.03/qmail.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2149
+--- qmail-1.03-orig/qmail.c	Mon Jun 15 04:53:16 1998
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2150
++++ qmail-1.03/qmail.c	Tue Jan 19 09:57:36 1999
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2151
+@@ -6,14 +6,25 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2152
+ #include "fd.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2153
+ #include "qmail.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2154
+ #include "auto_qmail.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2155
++#include "env.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2156
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2157
+-static char *binqqargs[2] = { "bin/qmail-queue", 0 } ;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2158
++static char *binqqargs[2] = { 0, 0 } ;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2159
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2160
++static void setup_qqargs()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2161
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2162
++  if(!binqqargs[0])
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2163
++    binqqargs[0] = env_get("QMAILQUEUE");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2164
++  if(!binqqargs[0])
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2165
++    binqqargs[0] = "bin/qmail-queue";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2166
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2167
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2168
+ int qmail_open(qq)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2169
+ struct qmail *qq;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2170
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2171
+   int pim[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2172
+   int pie[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2173
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2174
++  setup_qqargs();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2175
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2176
+   if (pipe(pim) == -1) return -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2177
+   if (pipe(pie) == -1) { close(pim[0]); close(pim[1]); return -1; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2178
+
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2179
diff -r 2be82bdba73b source/dietlibc/diet-qmail/qregex-20060423-qmail.patch
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2180
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2181
+++ b/source/dietlibc/diet-qmail/qregex-20060423-qmail.patch	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2182
@@ -0,0 +1,688 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2183
+Fixed qregex-20060423 (pristine is against netqmail)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2184
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2185
+diff -r 1510847ae5bf Makefile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2186
+--- a/Makefile	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2187
++++ b/Makefile	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2188
+@@ -1534,16 +1534,16 @@ auto_split.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2189
+ 	./compile qmail-showctl.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2190
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2191
+ qmail-smtpd: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2192
+-load qmail-smtpd.o rcpthosts.o commands.o timeoutread.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2193
++load qmail-smtpd.o rcpthosts.o qregex.o commands.o timeoutread.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2194
+ timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o received.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2195
+ date822fmt.o now.o qmail.o cdb.a fd.a wait.a datetime.a getln.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2196
+-open.a sig.a case.a env.a stralloc.a alloc.a substdio.a error.a str.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2197
++open.a sig.a case.a env.a stralloc.a alloc.a strerr.a substdio.a error.a str.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2198
+ fs.a auto_qmail.o socket.lib
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2199
+-	./load qmail-smtpd rcpthosts.o commands.o timeoutread.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2200
++	./load qmail-smtpd qregex.o rcpthosts.o commands.o timeoutread.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2201
+ 	timeoutwrite.o ip.o ipme.o ipalloc.o control.o constmap.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2202
+ 	received.o date822fmt.o now.o qmail.o cdb.a fd.a wait.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2203
+ 	datetime.a getln.a open.a sig.a case.a env.a stralloc.a \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2204
+-	alloc.a substdio.a error.a str.a fs.a auto_qmail.o  `cat \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2205
++	alloc.a strerr.a substdio.a error.a str.a fs.a auto_qmail.o  `cat \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2206
+ 	socket.lib`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2207
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2208
+ qmail-smtpd.0: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2209
+@@ -1696,6 +1696,10 @@ compile rcpthosts.c cdb.h uint32.h byte.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2210
+ compile rcpthosts.c cdb.h uint32.h byte.h open.h error.h control.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2211
+ constmap.h stralloc.h gen_alloc.h rcpthosts.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2212
+ 	./compile rcpthosts.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2213
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2214
++qregex.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2215
++compile qregex.c qregex.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2216
++	./compile qregex.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2217
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2218
+ readsubdir.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2219
+ compile readsubdir.c readsubdir.h direntry.h fmt.h scan.h str.h \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2220
+diff -r 1510847ae5bf README.qregex
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2221
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2222
++++ b/README.qregex	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2223
+@@ -0,0 +1,203 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2224
++QREGEX (v2) 20060423 - README April 23, 2006
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2225
++A Regular Expression matching patch for qmail 1.03 and netqmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2226
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2227
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2228
++OVERVIEW:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2229
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2230
++qregex adds the ability to match address evelopes via Regular Expressions (REs)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2231
++in the qmail-smtpd process. It has the abiltiy to match `helo/ehlo` (host name),
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2232
++`mail from` (envelope sender), and `rcpt to` (envelope recipient) commands.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2233
++It follows all the base rules that are set out with qmail (ie using control
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2234
++files) so it makes for easy integretion into an existing setup (see the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2235
++install instructions for more info). The v2 is specified because qregex was
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2236
++re-written to better conform to the security guarantee set forth by the author
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2237
++of qmail. The original version used stdio.h and stdlib.h for reading the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2238
++control files whereas v2 now uses all stralloc functions which are much more
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2239
++regulated against buffer overruns and the like.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2240
++See: http://cr.yp.to/qmail/guarantee.html
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2241
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2242
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2243
++FEATURES:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2244
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2245
++Features of qregex include:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2246
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2247
++1. Performs pattern matching on envelope senders and envelope
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2248
++   recipients against REs in the badmailfrom and badmailto control
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2249
++   files. Two additional control files, badmailfromnorelay and
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2250
++   badmailtonorelay, are used for pattern matching when the 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2251
++   RELAYCLIENT environment variable is not set.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2252
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2253
++2. Performs pattern matching on the helo/ehlo host name. Setting the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2254
++   NOBADHELO environment variable prevents the host name from being
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2255
++   compared to the patterns in the badhelo control file.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2256
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2257
++3. Matches to patterns are logged. Setting the LOGREGEX environment
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2258
++   variable causes the matched regex pattern to be included in the log. 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2259
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2260
++4. Matching is case insensitive.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2261
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2262
++5. qregex ignores empty envelope senders. An empty envelope sender is not
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2263
++   compared to the patterns in the badmailfrom and badmailfromnorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2264
++   control files and is always accepted.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2265
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2266
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2267
++PLATFORMS:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2268
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2269
++qregex has been built and tested on the following platforms. I'm sure it won't
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2270
++have any problems on any platform that qmail will run on (providing they have
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2271
++a regex interface) but if you run into problems let me know.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2272
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2273
++	- OpenBSD 3.x
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2274
++	- FreeBSD 4.x, 5.x
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2275
++	- Mandrake Linux 9.x
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2276
++	- SuSE Linux 8.x
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2277
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2278
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2279
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2280
++INSTALLATION INSTRUCTIONS:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2281
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2282
++Installation is very simple, there is only one requirement. You need to use the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2283
++GNU version of the patch utility (http://www.gnu.org/software/patch/patch.html).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2284
++(For Solaris 8 users it is installed as 'gpatch')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2285
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2286
++- If this is a new setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2287
++Unpack the qmail archive, cd into the qmail-1.03 directory and run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2288
++"patch < /path/to/qregex-<version>.patch". Follow the instructions as per the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2289
++included qmail INSTALL file. Once you are done come back to this file and read
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2290
++the section on the control files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2291
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2292
++If you are using netqmail, then unpack the netqmail archive. Run the collate.sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2293
++script and cd into the resulting netqmail-<version> directory. From there, run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2294
++"patch < /path/to/qregex-<version>.patch". Complete the netqmail installation
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2295
++normally. Once you are done, come back to this file and read the section on the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2296
++control files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2297
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2298
++- If this is an existing setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2299
++FIRST: create your control files (see below).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2300
++cd into your existing qmail or netqmail source directory. Run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2301
++"patch < /path/to/qregex-<version>.patch" then "make qmail-smtpd". Now run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2302
++./qmail-smtpd and test your new rules to make sure they work as expected.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2303
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2304
++Install the new binary by cd'ing to /var/qmail/bin and as root (in one command)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2305
++copy the existing binary to 'qmail-smtpd.old' and copy the new binary from the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2306
++source directory to 'qmail-smtpd'.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2307
++(ex. cp qmail-smtpd qmail-smtpd.old && cp ~/qmail-1.03/qmail-smtpd qmail-smtpd)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2308
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2309
++You can also optionally just run "make setup check" as it will install the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2310
++updated documentation and man pages provided with this patch. Stopping qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2311
++before doing the "make setup check" is always a good idea.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2312
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2313
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2314
++LOGGING:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2315
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2316
++qregex will log matches to the patterns in the various control files. Log
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2317
++messages will take these three forms depending on which control file was
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2318
++matched:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2319
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2320
++badhelo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2321
++qmail-smtpd: badhelo: <host> at <remote IP>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2322
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2323
++badmailfrom and badmailfromnorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2324
++qmail-smtpd: badmailfrom: <sender address> at <remote IP>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2325
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2326
++badmailto and badmailtonorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2327
++qmail-smtpd: badmailto: <rcpt address> at <remote IP>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2328
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2329
++When the LOGREGEX environment variable is set, the matched pattern will
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2330
++be included in the log. Log messages will have the regex pattern appended
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2331
++to them. For example, a badhelo log message will look like this:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2332
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2333
++qmail-smtpd: badhelo: <host> at <remote IP> matches pattern: <regex>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2334
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2335
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2336
++CONTROL FILES:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2337
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2338
++qregex provides you with five control files. None of these control files
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2339
++is mandatory and you can use them in any combination you choose in your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2340
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2341
++The "control/badmailfrom" and "control/badmailto" files contain your REs for
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2342
++matching against the 'mail from' (envelope sender) and 'rcpt to' (envelope
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2343
++recipient) smtp commands respectively.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2344
++The "control/badmailfromnorelay" and "control/badmailtonorelay" match against
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2345
++the same commands but are read only when the RELAYCLIENT environment variable
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2346
++is not set.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2347
++The "control/badhelo" file matches against the 'helo/ehlo' smtp command.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2348
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2349
++If you prefer you can symlink the badmailfrom and badmailto control files
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2350
++(ln -s badmailfrom badmailto) and maintain fewer sets of rules. Beware
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2351
++this might cause problems in certain setups.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2352
++        
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2353
++	Here's an example "badhelo" file.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2354
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2355
++	# block host strings with no dot (not a FQDN)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2356
++	!\.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2357
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2358
++	
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2359
++	An example "badmailfrom" file.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2360
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2361
++	# this will drop everything containing the string
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2362
++	# bad.domain.com or Bad.Domain.Com or BAD.domain.COM
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2363
++	bad\.domain\.com
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2364
++	# force users to fully qualify themselves
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2365
++	# (i.e. deny "user", accept "user@domain")
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2366
++	!@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2367
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2368
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2369
++	And "badmailto" (a little more interesting)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2370
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2371
++	# must not contain invalid characters, brakets or multiple @'s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2372
++	[!%#:*^(){}]
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2373
++	@.*@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2374
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2375
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2376
++You can use the non-RE character '!' to start an RE as a signal to qregex to
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2377
++negate the action. As used above in the badmailfrom file, by negating the '@'
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2378
++symbol qregex will signal qmail-smtpd to deny the 'mail from' command whenever
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2379
++the address doesn't contain an @ symbol. When used inside a bracket expression,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2380
++the '!' character looses this special meaning. This is shown in the badmailto
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2381
++example.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2382
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2383
++The norelay control files follow the same rules as the other control files but
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2384
++are intended to address two specific scenarios.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2385
++The badmailfromnorelay file can be used to block mail trying to spoof a domain
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2386
++hosted on your mail server. It prevents a mail client that is not allowed to
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2387
++relay email through your server from using one of your hosted domains as its
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2388
++envelope sender.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2389
++The badmailtonorelay file can be used to create email addresses that cannot
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2390
++receive mail from any source not allowed to relay email through your server.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2391
++This is handy for creating email addresses for use only within your own 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2392
++domain(s) that can't receive spam from the world at large.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2393
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2394
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2395
++INTERNALS:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2396
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2397
++qregex (or regexmatch as the function is called) will be called during the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2398
++`helo/ehlo`, `rcpt to` and `mail from` handling routines in "qmail-smtpd.c".
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2399
++When called, it will read the proper control file then one by one compile and
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2400
++execute the regex on the string passed into qmail-smtpd. If the regex matches
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2401
++it returns TRUE (1) and the qmail-smtpd process will deny the user the ability
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2402
++to continue. If you change anything and think it betters this patch please
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2403
++send me a new diff file so I can take a peek.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2404
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2405
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2406
++CONTACT:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2407
++qregex is maintained by:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2408
++	Andrew St. Jean
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2409
++	andrew@arda.homeunix.net
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2410
++	www.arda.homeunix.net/store/qmail/
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2411
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2412
++Contributers to qregex:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2413
++	Jeremy Kitchen	
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2414
++	kitchen at scriptkitchen dot com
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2415
++	http://www.scriptkitchen.com/qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2416
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2417
++	Alex Pleiner
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2418
++	alex@zeitform.de
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2419
++	zeitform Internet Dienste
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2420
++	http://www.zeitform.de/
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2421
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2422
++	Thanos Massias
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2423
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2424
++Original qregex patch written by:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2425
++	Evan Borgstrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2426
++	evan at unixpimps dot org
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2427
+diff -r 1510847ae5bf TARGETS
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2428
+--- a/TARGETS	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2429
++++ b/TARGETS	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2430
+@@ -252,6 +252,7 @@ qmail-qmtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2431
+ qmail-qmtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2432
+ qmail-smtpd.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2433
+ qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2434
++qregex.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2435
+ sendmail.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2436
+ sendmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2437
+ tcp-env.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2438
+diff -r 1510847ae5bf hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2439
+--- a/hier.c	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2440
++++ b/hier.c	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2441
+@@ -76,6 +76,7 @@ void hier()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2442
+   c(auto_qmail,"boot","binm3+df",auto_uido,auto_gidq,0755);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2443
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2444
+   c(auto_qmail,"doc","FAQ",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2445
++  c(auto_qmail,"doc","README.qregex",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2446
+   c(auto_qmail,"doc","UPGRADE",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2447
+   c(auto_qmail,"doc","SENDMAIL",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2448
+   c(auto_qmail,"doc","INSTALL",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2449
+diff -r 1510847ae5bf install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2450
+--- a/install-big.c	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2451
++++ b/install-big.c	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2452
+@@ -76,6 +76,7 @@ void hier()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2453
+   c(auto_qmail,"boot","binm3+df",auto_uido,auto_gidq,0755);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2454
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2455
+   c(auto_qmail,"doc","FAQ",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2456
++  c(auto_qmail,"doc","README.qregex",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2457
+   c(auto_qmail,"doc","UPGRADE",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2458
+   c(auto_qmail,"doc","SENDMAIL",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2459
+   c(auto_qmail,"doc","INSTALL",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2460
+diff -r 1510847ae5bf qmail-control.9
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2461
+--- a/qmail-control.9	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2462
++++ b/qmail-control.9	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2463
+@@ -20,7 +20,11 @@ other hostname-related control files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2464
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2465
+ Comments are allowed
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2466
+ in
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2467
++.IR badhelo ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2468
+ .IR badmailfrom ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2469
++.IR badmailfromnorelay ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2470
++.IR badmailto ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2471
++.IR badmailtonorelay ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2472
+ .IR locals ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2473
+ .IR percenthack ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2474
+ .IR qmqpservers ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2475
+@@ -40,7 +44,11 @@ See the corresponding man pages for furt
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2476
+ .ta 5c 10c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2477
+ control	default	used by
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2478
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2479
++.I badhelo	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2480
+ .I badmailfrom	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2481
++.I badmailfromnorelay	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2482
++.I badmailto	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2483
++.I badmailtonorelay	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2484
+ .I bouncefrom	\fRMAILER-DAEMON	\fRqmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2485
+ .I bouncehost	\fIme	\fRqmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2486
+ .I concurrencylocal	\fR10	\fRqmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2487
+diff -r 1510847ae5bf qmail-showctl.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2488
+--- a/qmail-showctl.c	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2489
++++ b/qmail-showctl.c	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2490
+@@ -214,7 +214,11 @@ void main()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2491
+     _exit(111);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2492
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2493
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2494
+-  do_lst("badmailfrom","Any MAIL FROM is allowed.",""," not accepted in MAIL FROM.");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2495
++  do_lst("badhelo","Any HELO host name is allowed.",""," HELO host name denied if it matches this pattern.");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2496
++  do_lst("badmailfrom","Any MAIL FROM is allowed.",""," MAIL FROM denied if it matches this pattern.");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2497
++  do_lst("badmailfromnorelay","Any MAIL FROM is allowed.",""," MAIL FROM denied if it matches this pattern and RELAYCLIENT is not set.");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2498
++  do_lst("badmailto","No RCPT TO are specifically denied.",""," RCPT TO denied if it matches this pattern.");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2499
++  do_lst("badmailtonorelay","No RCPT TO are specifically denied.",""," RCPT TO denied if it matches this pattern and RELAYCLIENT is not set.");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2500
+   do_str("bouncefrom",0,"MAILER-DAEMON","Bounce user name is ");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2501
+   do_str("bouncehost",1,"bouncehost","Bounce host name is ");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2502
+   do_int("concurrencylocal","10","Local concurrency is ","");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2503
+@@ -267,7 +271,11 @@ void main()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2504
+     if (str_equal(d->d_name,"..")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2505
+     if (str_equal(d->d_name,"bouncefrom")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2506
+     if (str_equal(d->d_name,"bouncehost")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2507
++    if (str_equal(d->d_name,"badhelo")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2508
+     if (str_equal(d->d_name,"badmailfrom")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2509
++    if (str_equal(d->d_name,"badmailfromnorelay")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2510
++    if (str_equal(d->d_name,"badmailto")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2511
++    if (str_equal(d->d_name,"badmailtonorelay")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2512
+     if (str_equal(d->d_name,"bouncefrom")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2513
+     if (str_equal(d->d_name,"bouncehost")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2514
+     if (str_equal(d->d_name,"concurrencylocal")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2515
+diff -r 1510847ae5bf qmail-smtpd.8
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2516
+--- a/qmail-smtpd.8	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2517
++++ b/qmail-smtpd.8	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2518
+@@ -37,11 +37,26 @@ even though such messages violate the SM
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2519
+ even though such messages violate the SMTP protocol.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2520
+ .SH "CONTROL FILES"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2521
+ .TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2522
++.I badhelo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2523
++Unacceptable HELO/EHLO host names.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2524
++.B qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2525
++will reject every recipient address for a message if
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2526
++the host name is listed in, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2527
++or matches a POSIX regular expression pattern listed in,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2528
++.IR badhelo .
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2529
++If the 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2530
++.B NOBADHELO 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2531
++environment variable is set, then the contents of 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2532
++.IR badhelo 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2533
++will be ignored.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2534
++For more information, please have a look at doc/README.qregex.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2535
++.TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2536
+ .I badmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2537
+ Unacceptable envelope sender addresses.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2538
+ .B qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2539
+ will reject every recipient address for a message
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2540
+-if the envelope sender address is listed in
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2541
++if the envelope sender address is listed in, or matches a POSIX regular expression
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2542
++pattern listed in,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2543
+ .IR badmailfrom .
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2544
+ A line in
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2545
+ .I badmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2546
+@@ -49,6 +64,32 @@ may be of the form
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2547
+ .BR @\fIhost ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2548
+ meaning every address at
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2549
+ .IR host .
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2550
++For more information, please have a look at doc/README.qregex.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2551
++.TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2552
++.I badmailfromnorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2553
++Functions the same as the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2554
++.IR badmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2555
++control file but is read only if the 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2556
++.B RELAYCLIENT 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2557
++environment variable is not set.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2558
++For more information, please have a look at doc/README.qregex.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2559
++.TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2560
++.I badmailto
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2561
++Unacceptable envelope recipient addresses.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2562
++.B qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2563
++will reject every recipient address for a message if the recipient address
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2564
++is listed in,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2565
++or matches a POSIX regular expression pattern listed in,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2566
++.IR badmailto .
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2567
++For more information, please have a look at doc/README.qregex.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2568
++.TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2569
++.I badmailtonorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2570
++Functions the same as the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2571
++.IR badmailto
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2572
++control file but is read only if the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2573
++.B RELAYCLIENT
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2574
++environment variable is not set.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2575
++For more information, please have a look at doc/README.qregex.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2576
+ .TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2577
+ .I databytes
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2578
+ Maximum number of bytes allowed in a message,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2579
+diff -r 1510847ae5bf qmail-smtpd.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2580
+--- a/qmail-smtpd.c	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2581
++++ b/qmail-smtpd.c	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2582
+@@ -23,6 +23,15 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2583
+ #include "timeoutread.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2584
+ #include "timeoutwrite.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2585
+ #include "commands.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2586
++#include "qregex.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2587
++#include "strerr.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2588
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2589
++#define BMCHECK_BMF 0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2590
++#define BMCHECK_BMFNR 1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2591
++#define BMCHECK_BMT 2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2592
++#define BMCHECK_BMTNR 3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2593
++#define BMCHECK_BHELO 4
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2594
++    
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2595
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2596
+ #define MAXHOPS 100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2597
+ unsigned int databytes = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2598
+@@ -49,7 +58,9 @@ void die_ipme() { out("421 unable to fig
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2599
+ void die_ipme() { out("421 unable to figure out my IP addresses (#4.3.0)\r\n"); flush(); _exit(1); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2600
+ void straynewline() { out("451 See http://pobox.com/~djb/docs/smtplf.html.\r\n"); flush(); _exit(1); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2601
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2602
+-void err_bmf() { out("553 sorry, your envelope sender is in my badmailfrom list (#5.7.1)\r\n"); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2603
++void err_bmf() { out("553 sorry, your envelope sender has been denied (#5.7.1)\r\n"); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2604
++void err_bmt() { out("553 sorry, your envelope recipient has been denied (#5.7.1)\r\n"); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2605
++void err_bhelo() { out("553 sorry, your HELO host name has been denied (#5.7.1)\r\n"); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2606
+ void err_nogateway() { out("553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)\r\n"); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2607
+ void err_unimpl() { out("502 unimplemented (#5.5.1)\r\n"); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2608
+ void err_syntax() { out("555 syntax error (#5.5.4)\r\n"); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2609
+@@ -93,9 +104,24 @@ void dohelo(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2610
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2611
+ int liphostok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2612
+ stralloc liphost = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2613
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2614
+ int bmfok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2615
+ stralloc bmf = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2616
+-struct constmap mapbmf;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2617
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2618
++int bmfnrok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2619
++stralloc bmfnr = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2620
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2621
++int bmtok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2622
++stralloc bmt = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2623
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2624
++int bmtnrok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2625
++stralloc bmtnr = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2626
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2627
++int bhelook = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2628
++stralloc bhelo = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2629
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2630
++int logregex = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2631
++stralloc matchedregex = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2632
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2633
+ void setup()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2634
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2635
+@@ -114,8 +140,21 @@ void setup()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2636
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2637
+   bmfok = control_readfile(&bmf,"control/badmailfrom",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2638
+   if (bmfok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2639
+-  if (bmfok)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2640
+-    if (!constmap_init(&mapbmf,bmf.s,bmf.len,0)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2641
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2642
++  bmfnrok = control_readfile(&bmfnr,"control/badmailfromnorelay",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2643
++  if (bmfnrok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2644
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2645
++  bmtok = control_readfile(&bmt,"control/badmailto",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2646
++  if (bmtok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2647
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2648
++  bmtnrok = control_readfile(&bmtnr,"control/badmailtonorelay",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2649
++  if (bmtnrok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2650
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2651
++  bhelook = control_readfile(&bhelo, "control/badhelo",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2652
++  if (bhelook == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2653
++  if (env_get("NOBADHELO")) bhelook = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2654
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2655
++  if (env_get("LOGREGEX")) logregex = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2656
+  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2657
+   if (control_readint(&databytes,"control/databytes") == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2658
+   x = env_get("DATABYTES");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2659
+@@ -197,14 +236,56 @@ char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2660
+   return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2661
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2662
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2663
+-int bmfcheck()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2664
+-{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2665
+-  int j;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2666
+-  if (!bmfok) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2667
+-  if (constmap(&mapbmf,addr.s,addr.len - 1)) return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2668
+-  j = byte_rchr(addr.s,addr.len,'@');
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2669
+-  if (j < addr.len)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2670
+-    if (constmap(&mapbmf,addr.s + j,addr.len - j - 1)) return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2671
++int bmcheck(which) int which;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2672
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2673
++  int i = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2674
++  int j = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2675
++  int x = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2676
++  int negate = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2677
++  static stralloc bmb = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2678
++  static stralloc curregex = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2679
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2680
++  if (which == BMCHECK_BMF) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2681
++    if (!stralloc_copy(&bmb,&bmf)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2682
++  } else if (which == BMCHECK_BMFNR) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2683
++    if (!stralloc_copy(&bmb,&bmfnr)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2684
++  } else if (which == BMCHECK_BMT) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2685
++    if (!stralloc_copy(&bmb,&bmt)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2686
++  } else if (which == BMCHECK_BMTNR) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2687
++    if (!stralloc_copy(&bmb,&bmtnr)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2688
++  } else if (which == BMCHECK_BHELO) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2689
++    if (!stralloc_copy(&bmb,&bhelo)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2690
++  } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2691
++    die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2692
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2693
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2694
++  while (j < bmb.len) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2695
++    i = j;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2696
++    while ((bmb.s[i] != '\0') && (i < bmb.len)) i++;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2697
++    if (bmb.s[j] == '!') {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2698
++      negate = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2699
++      j++;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2700
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2701
++    if (!stralloc_copyb(&curregex,bmb.s + j,(i - j))) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2702
++    if (!stralloc_0(&curregex)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2703
++    if (which == BMCHECK_BHELO) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2704
++      x = matchregex(helohost.s, curregex.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2705
++    } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2706
++      x = matchregex(addr.s, curregex.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2707
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2708
++    if ((negate) && (x == 0)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2709
++      if (!stralloc_copyb(&matchedregex,bmb.s + j - 1,(i - j + 1))) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2710
++      if (!stralloc_0(&matchedregex)) die_nomem();      
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2711
++      return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2712
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2713
++    if (!(negate) && (x > 0)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2714
++      if (!stralloc_copyb(&matchedregex,bmb.s + j,(i - j))) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2715
++      if (!stralloc_0(&matchedregex)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2716
++      return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2717
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2718
++    j = i + 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2719
++    negate = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2720
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2721
+   return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2722
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2723
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2724
+@@ -218,7 +299,9 @@ int addrallowed()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2725
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2726
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2727
+ int seenmail = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2728
+-int flagbarf; /* defined if seenmail */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2729
++int flagbarfbmf; /* defined if seenmail */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2730
++int flagbarfbmt;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2731
++int flagbarfbhelo;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2732
+ stralloc mailfrom = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2733
+ stralloc rcptto = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2734
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2735
+@@ -226,11 +309,13 @@ void smtp_helo(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2736
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2737
+   smtp_greet("250 "); out("\r\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2738
+   seenmail = 0; dohelo(arg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2739
++  if (bhelook) flagbarfbhelo = bmcheck(BMCHECK_BHELO);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2740
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2741
+ void smtp_ehlo(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2742
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2743
+   smtp_greet("250-"); out("\r\n250-PIPELINING\r\n250 8BITMIME\r\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2744
+   seenmail = 0; dohelo(arg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2745
++  if (bhelook) flagbarfbhelo = bmcheck(BMCHECK_BHELO);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2746
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2747
+ void smtp_rset()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2748
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2749
+@@ -240,7 +325,11 @@ void smtp_mail(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2750
+ void smtp_mail(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2751
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2752
+   if (!addrparse(arg)) { err_syntax(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2753
+-  flagbarf = bmfcheck();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2754
++  flagbarfbmf = 0; /* bmcheck is skipped for empty envelope senders */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2755
++  if ((bmfok) && (addr.len != 1)) flagbarfbmf = bmcheck(BMCHECK_BMF);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2756
++  if ((!flagbarfbmf) && (bmfnrok) && (addr.len != 1) && (!relayclient)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2757
++    flagbarfbmf = bmcheck(BMCHECK_BMFNR);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2758
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2759
+   seenmail = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2760
+   if (!stralloc_copys(&rcptto,"")) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2761
+   if (!stralloc_copys(&mailfrom,addr.s)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2762
+@@ -250,7 +339,37 @@ void smtp_rcpt(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2763
+ void smtp_rcpt(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2764
+   if (!seenmail) { err_wantmail(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2765
+   if (!addrparse(arg)) { err_syntax(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2766
+-  if (flagbarf) { err_bmf(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2767
++  if (flagbarfbhelo) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2768
++    if (logregex) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2769
++      strerr_warn6("qmail-smtpd: badhelo: <",helohost.s,"> at ",remoteip," matches pattern: ",matchedregex.s,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2770
++    } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2771
++      strerr_warn4("qmail-smtpd: badhelo: <",helohost.s,"> at ",remoteip,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2772
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2773
++    err_bhelo();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2774
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2775
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2776
++  if (flagbarfbmf) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2777
++    if (logregex) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2778
++      strerr_warn6("qmail-smtpd: badmailfrom: <",mailfrom.s,"> at ",remoteip," matches pattern: ",matchedregex.s,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2779
++    } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2780
++      strerr_warn4("qmail-smtpd: badmailfrom: <",mailfrom.s,"> at ",remoteip,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2781
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2782
++    err_bmf();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2783
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2784
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2785
++  if (bmtok) flagbarfbmt = bmcheck(BMCHECK_BMT);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2786
++  if ((!flagbarfbmt) && (bmtnrok) && (!relayclient)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2787
++    flagbarfbmt = bmcheck(BMCHECK_BMTNR);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2788
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2789
++  if (flagbarfbmt) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2790
++    if (logregex) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2791
++      strerr_warn6("qmail-smtpd: badmailto: <",addr.s,"> at ",remoteip," matches pattern: ",matchedregex.s,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2792
++    } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2793
++      strerr_warn4("qmail-smtpd: badmailto: <",addr.s,"> at ",remoteip,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2794
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2795
++    err_bmt();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2796
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2797
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2798
+   if (relayclient) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2799
+     --addr.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2800
+     if (!stralloc_cats(&addr,relayclient)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2801
+diff -r 1510847ae5bf qregex.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2802
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2803
++++ b/qregex.c	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2804
+@@ -0,0 +1,57 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2805
++/*
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2806
++ * qregex (v2)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2807
++ * $Id: qregex.c,v 2.1 2001/12/28 07:05:21 evan Exp $
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2808
++ *
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2809
++ * Author  : Evan Borgstrom (evan at unixpimps dot org)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2810
++ * Created : 2001/12/14 23:08:16
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2811
++ * Modified: $Date: 2001/12/28 07:05:21 $
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2812
++ * Revision: $Revision: 2.1 $
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2813
++ *
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2814
++ * Do POSIX regex matching on addresses for anti-relay / spam control.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2815
++ * It logs to the maillog
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2816
++ * See the qregex-readme file included with this tarball.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2817
++ * If you didn't get this file in a tarball please see the following URL:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2818
++ *  http://www.unixpimps.org/software/qregex
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2819
++ *
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2820
++ * qregex.c is released under a BSD style copyright.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2821
++ * See http://www.unixpimps.org/software/qregex/copyright.html
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2822
++ *
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2823
++ * Note: this revision follows the coding guidelines set forth by the rest of
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2824
++ *       the qmail code and that described at the following URL.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2825
++ *       http://cr.yp.to/qmail/guarantee.html
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2826
++ * 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2827
++ */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2828
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2829
++#include <sys/types.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2830
++#include <regex.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2831
++#include "qregex.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2832
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2833
++#define REGCOMP(X,Y)    regcomp(&X, Y, REG_EXTENDED|REG_ICASE)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2834
++#define REGEXEC(X,Y)    regexec(&X, Y, (size_t)0, (regmatch_t *)0, (int)0)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2835
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2836
++int matchregex(char *text, char *regex) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2837
++  regex_t qreg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2838
++  int retval = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2839
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2840
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2841
++  /* build the regex */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2842
++  if ((retval = REGCOMP(qreg, regex)) != 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2843
++    regfree(&qreg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2844
++    return(-retval);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2845
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2846
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2847
++  /* execute the regex */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2848
++  if ((retval = REGEXEC(qreg, text)) != 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2849
++    /* did we just not match anything? */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2850
++    if (retval == REG_NOMATCH) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2851
++      regfree(&qreg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2852
++      return(0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2853
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2854
++    regfree(&qreg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2855
++    return(-retval);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2856
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2857
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2858
++  /* signal the match */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2859
++  regfree(&qreg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2860
++  return(1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2861
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2862
+diff -r 1510847ae5bf qregex.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2863
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2864
++++ b/qregex.h	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2865
+@@ -0,0 +1,5 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2866
++/* simple header file for the matchregex prototype */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2867
++#ifndef _QREGEX_H_
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2868
++#define _QREGEX_H_
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2869
++int matchregex(char *text, char *regex);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2870
++#endif
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2871
diff -r 2be82bdba73b source/dietlibc/diet-qmail/queue-fix-dietlibc.patch
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2872
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2873
+++ b/source/dietlibc/diet-qmail/queue-fix-dietlibc.patch	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2874
@@ -0,0 +1,18 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2875
+Compile with dietlibc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2876
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2877
+diff -r 6becbe0d87fa conf-cc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2878
+--- a/conf-cc	Thu Nov 01 15:04:39 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2879
++++ b/conf-cc	Thu Nov 01 15:06:54 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2880
+@@ -1,3 +1,3 @@ gcc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2881
+-gcc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2882
++diet gcc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2883
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2884
+ This will be used to compile .c files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2885
+diff -r 6becbe0d87fa conf-ld
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2886
+--- a/conf-ld	Thu Nov 01 15:04:39 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2887
++++ b/conf-ld	Thu Nov 01 15:06:54 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2888
+@@ -1,3 +1,3 @@ gcc -s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2889
+-gcc -s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2890
++diet gcc -s -static
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2891
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2892
+ This will be used to link .o files into an executable.
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2893
diff -r 2be82bdba73b source/dietlibc/diet-qmail/queue-fix-errno.patch
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2894
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2895
+++ b/source/dietlibc/diet-qmail/queue-fix-errno.patch	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2896
@@ -0,0 +1,14 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2897
+errno fix
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2898
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2899
+diff -r c045670f36e9 error.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2900
+--- a/error.h	Thu Nov 01 14:46:11 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2901
++++ b/error.h	Thu Nov 01 15:02:39 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2902
+@@ -1,7 +1,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2903
+ #ifndef ERROR_H
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2904
+ #define ERROR_H
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2905
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2906
+-extern int errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2907
++#include <errno.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2908
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2909
+ extern int error_intr;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2910
+ extern int error_nomem;
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2911
diff -r 2be82bdba73b source/dietlibc/diet-qmail/rc
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2912
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2913
+++ b/source/dietlibc/diet-qmail/rc	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2914
@@ -0,0 +1,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2915
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2916
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2917
+# Using stdout for logging
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2918
+# Using control/defaultdelivery from qmail-local to deliver messages by default
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2919
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2920
+exec env - PATH="/var/qmail/bin:$PATH" \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2921
+  qmail-start "`cat /var/qmail/control/defaultdelivery`"
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2922
diff -r 2be82bdba73b source/dietlibc/diet-qmail/send_log_run
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2923
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2924
+++ b/source/dietlibc/diet-qmail/send_log_run	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2925
@@ -0,0 +1,20 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2926
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2927
+# 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2928
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2929
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2930
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2931
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2932
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2933
+# Log size rotate size.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2934
+LOG_SIZE="1048576"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2935
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2936
+# Number of logs to keep.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2937
+LOGS="5"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2938
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2939
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2940
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2941
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2942
+exec /usr/bin/setuidgid qmaill \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2943
+  /usr/bin/multilog t \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2944
+  n${LOGS} s${LOG_SIZE} \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2945
+  /var/log/qmail/send 2>&1
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2946
diff -r 2be82bdba73b source/dietlibc/diet-qmail/send_run
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2947
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2948
+++ b/source/dietlibc/diet-qmail/send_run	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2949
@@ -0,0 +1,8 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2950
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2951
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2952
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2953
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2954
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2955
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2956
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2957
+exec /var/qmail/rc
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2958
diff -r 2be82bdba73b source/dietlibc/diet-qmail/smtpd_log_run
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2959
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2960
+++ b/source/dietlibc/diet-qmail/smtpd_log_run	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2961
@@ -0,0 +1,20 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2962
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2963
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2964
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2965
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2966
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2967
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2968
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2969
+# Log size rotate size.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2970
+LOG_SIZE="1048576"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2971
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2972
+# Number of logs to keep.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2973
+LOGS="5"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2974
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2975
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2976
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2977
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2978
+exec /usr/bin/setuidgid qmaill \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2979
+  /usr/bin/multilog t \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2980
+  n${LOGS} s${LOG_SIZE} \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2981
+  /var/log/qmail/smtpd 2>&1
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2982
diff -r 2be82bdba73b source/dietlibc/diet-qmail/smtpd_run
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2983
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  2984
+++ b/source/dietlibc/diet-qmail/smtpd_run	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2985
@@ -0,0 +1,45 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2986
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2987
+# 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2988
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2989
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2990
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2991
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2992
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2993
+# uid & gid to run qmail-smtpd as.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2994
+# optionally `id -u vpopmail' for vpopmail.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2995
+QMAILDUID=`id -u qmaild`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2996
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2997
+# optionally `id -g vpopmail` for vpopmail.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2998
+NOFILESGID=`id -g qmaild`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2999
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3000
+# Password checking program (ie. checkpasswd, vpopmail).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3001
+PASSPROG=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3002
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3003
+# FQDN as set in /var/qmail/control/me
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3004
+LOCAL=`head -1 /var/qmail/control/me`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3005
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3006
+# Maximum memory qmail-smtpd is allowed to use.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3007
+MAX_MEM="2000000"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3008
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3009
+# Maximum allowed concurrent connections.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3010
+MAX_CON=`cat /var/qmail/control/concurrencyincoming`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3011
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3012
+# Relay control.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3013
+TCP_CDB="/etc/tcp.smtp.cdb"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3014
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3015
+# Relay denied message for open relays.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3016
+RELAY_DENIED="relays.ordb.org: Your message was rejected because the mail server you use is configured to allow OPEN RELAY - More detailed information regarding this problem is available from http://www.ordb.org/lookup/?%IP% - Please forward this error through to your email server support staff for easy resolution."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3017
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3018
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3019
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3020
+SMTPD="/var/qmail/bin/qmail-smtpd"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3021
+PORT="25"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3022
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3023
+exec /usr/bin/softlimit -m $MAX_MEM \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3024
+  /usr/bin/tcpserver -H -l $LOCAL \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3025
+  -v -x $TCP_CDB \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3026
+  -c $MAX_CON -R 0 $PORT \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3027
+  -u $QMAILUID -g $NOFILESGID \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3028
+  /usr/bin/rblsmtpd -b -C \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3029
+  -r $RELAY_DENIED -t 5 \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3030
+  $SMTPD $PASSPROG /bin/true 2>&1
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  3031
diff -r 2be82bdba73b source/dietlibc/diet-qmail/tcp.pop3
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  3032
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  3033
+++ b/source/dietlibc/diet-qmail/tcp.pop3	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3034
@@ -0,0 +1,6 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3035
+# to update the database after changing this file, run:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3036
+# /etc/rc.d/qmail cdb
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3037
+# Allow any client to connect to us via POP3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3038
+# If people are abusing POP3 such as denial-of-service on POP3,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3039
+# you can add their ips here to block them out
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3040
+:allow
98
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  3041
diff -r 2be82bdba73b source/dietlibc/diet-qmail/tcp.smtp
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  3042
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
ee6165a0b4ed diet-qmail.patch: folded w/ upgrade-0.9-diet-qmail.patch
Tomas Zeman <tzeman@volny.cz>
parents: 28
diff changeset
  3043
+++ b/source/dietlibc/diet-qmail/tcp.smtp	Wed Feb 15 15:10:10 2012 +0100
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3044
@@ -0,0 +1,81 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3045
+#------------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3046
+# DESCRIPTION OF THE RULES TO REMIND ME OF HOW THIS FILE WORKS
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3047
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3048
+# If you set 'allow', this means that our mail server will allow
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3049
+# the specified IP range to make a TCP connection to our server
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3050
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3051
+# If you set 'deny', this means that our mail server will not allow
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3052
+# the specified IP range to make a TCP connection to our server
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3053
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3054
+# If you set RELAYCLIENT="", this means that the listed IP range is
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3055
+# allowed to relay mail through our server
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3056
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3057
+# If you dont set RELAYCLIENT="", this means that the listed IP range
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3058
+# will not be able to relay mail through our server
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3059
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3060
+# If you set RBLSMTPD="", this means that the listed IP ranges will
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3061
+# not be checked against any of the RBL databases
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3062
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3063
+# If you set RBLSMTPD="some text here", this means that an RBL lookup
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3064
+# wont be performed, but the mail will be rejected with the specified
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3065
+# text as a 4xx temp error message
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3066
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3067
+# If you set RBLSMTPD="-some text here", this means that an RBL lookup
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3068
+# wont be performed, but the mail will be rejected with the specified
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3069
+# text as a 5xx perm error message
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3070
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3071
+# If you do not set RBLSMTPD="" or ="some text", then an RBL lookup
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3072
+# will be performed. If the lookup is successful, then RBLSMTPD will
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3073
+# return your custom error message (as specified in the -r parameter
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3074
+# in smtpd supervise script)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3075
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3076
+#-----------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3077
+# HERE ARE THE RULES! :
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3078
+#-----------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3079
+# BYPASS OPEN RELAY CHECKING FOR THESE IPS :
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3080
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3081
+# These IPs are ones that we have setup so that they arent RBL checked.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3082
+# We have done this because these particular servers are RBL listed,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3083
+# and for whatever reason they can't/won't fix their open relay problem,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3084
+# and we still want to be able to receive mail from them.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3085
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3086
+# reminder text goes here for this entry so we know the story...
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3087
+111.111.111.111:allow,RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3088
+## reminder text goes here for this entry so we know the story...
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3089
+222.222.222.222:allow,RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3090
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3091
+#-----------------------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3092
+# DONT ALLOW THESE IPS TO SEND MAIL TO US :
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3093
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3094
+# mailXX.offermail.net connecting regularly and sending invalid
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3095
+# format messages causing exit with status 256 (bare linefeed normally)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3096
+# entry added 15/12/2001
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3097
+# after looking at the mail coming from these servers it was found to be spam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3098
+216.242.75.100-116:allow,RBLSMTPD="-Connections from this IP have been banned."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3099
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3100
+# heaps of spam from replyto of *@freeamateurhotties.com dec2001
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3101
+64.228.127.:allow,RBLSMTPD="-Connections refused due to spam from freeamateurhotties.com"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3102
+154.20.94.:allow,RBLSMTPD="-Connections refused due to spam from freeamateurhotties.com"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3103
+209.151.132.:allow,RBLSMTPD="-Connections refused due to spam from freeamateurhotties.com"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3104
+216.18.85.:allow,RBLSMTPD="-Connections refused due to spam from freeamateurhotties.com"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3105
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3106
+#-----------------------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3107
+# ALLOW THESE IPS TO RELAY MAIL THROUGH OUR SERVER
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3108
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3109
+# Local class-c's from our LAN are allowed to relay,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3110
+# and we wont bother doing any RBL checking.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3111
+#123.123.123.:allow,RELAYCLIENT="",RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3112
+#123.111.111.:allow,RELAYCLIENT="",RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3113
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3114
+# Connections from localhost are allowed to relay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3115
+# (because the WebMail server runs on localhost),
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3116
+# and obviously there is no point trying to perform an RBL check.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3117
+127.0.0.1:allow,RELAYCLIENT="",RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3118
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3119
+#-----------------------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3120
+# ALLOW EVERYONE ELSE TO SEND US MAIL
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3121
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3122
+# Everyone else can make connections to our server,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3123
+# but not allowed to relay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3124
+# RBL lookups are performed
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3125
+:allow