diet-qmail.patch
author Tomas Zeman <tzeman@volny.cz>
Thu, 05 Jun 2008 16:15:42 +0200
changeset 29 bb8dbd2d57f5
parent 28 4733b8aac58d
child 98 ee6165a0b4ed
permissions -rw-r--r--
diet-qmail-autoresponder: 0.96.2 -> 0.97
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
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     3
diff --git a/source/dietlibc/diet-qmail/FrugalBuild b/source/dietlibc/diet-qmail/FrugalBuild
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     4
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     5
index 0000000..c973246
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     6
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     7
+++ b/source/dietlibc/diet-qmail/FrugalBuild
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     8
@@ -0,0 +1,293 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
     9
+# Patched qmail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    10
+#	errno
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    11
+#	ext_todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    12
+#	qregex
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    13
+#	qmailqueue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    14
+#	smtpd.spam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    15
+#	dietlibc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    16
+# + queue-fix package with patches:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    17
+#	errno
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    18
+#	dietlibc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    19
+# Maintainer: Tomas Zeman <tzeman@volny.cz>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    20
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    21
+branch=diet
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    22
+pkgorig=qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    23
+pkgname=$branch-$pkgorig
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    24
+pkgver=1.03
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    25
+pkgrel=1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    26
+pkgdesc="A secure, reliable, efficient, SMTP/POP3 server."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    27
+url="http://cr.yp.to/qmail.html"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    28
+depends=('daemontools' 'ucspi-tcp' 'openssl')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    29
+makedepends=('dietlibc')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    30
+backup=(var/qmail/supervise/qmail-pop3d/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    31
+        var/qmail/supervise/qmail-pop3d/log/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    32
+        var/qmail/supervise/qmail-send/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    33
+        var/qmail/supervise/qmail-send/log/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    34
+        var/qmail/supervise/qmail-smtpd/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    35
+        var/qmail/supervise/qmail-smtpd/log/run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    36
+        var/qmail/control/concurrencyincoming \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    37
+        var/qmail/control/defaultdelivery \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    38
+        var/qmail/control/me \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    39
+        etc/tcp.smtp etc/tcp.pop3)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    40
+provides=('smtp-server' 'pop3-server' 'qmail')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    41
+install="$pkgorig.install"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    42
+archs=(i686)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    43
+up2date="1.03"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    44
+source=(http://cr.yp.to/software/$pkgorig-$pkgver.tar.gz \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    45
+	qmail-1.03.errno.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    46
+	ext_todo-20030105.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    47
+	qmailqueue-patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    48
+	qregex-20060423-qmail.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    49
+	qmail-dietlibc.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    50
+	qmail-smtpd.spam.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    51
+	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
    52
+	queue-fix-errno.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    53
+	queue-fix-dietlibc.patch \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    54
+        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
    55
+        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
    56
+        make_cert.sh)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    57
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    58
+sha1sums=('18fb960481291a0503e93a94df3f6094edb7f27a' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    59
+          '5cab1d84f67987983d13f10be1577e3da274cb94' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    60
+          'a1ecb939a4aaeeb325d947f3e6416aa63ae97d80' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    61
+          '76240289d52f2aca88004af47e5bd41c969880cf' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    62
+          '40b18255da69a2f36cf8698d8eb907f5f039c0a7' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    63
+          '605e93734c82373383f0284fabc64f85c4c06bfc' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    64
+          '25f4ef231560bbc5fc3c2a82f2f0cd0696deded9' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    65
+          'ce42fcc4daf5076adcf8fea6a9a84f2e1716c67c' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    66
+          '72be22c7987ff3639692cda21c09dec340e06a4a' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    67
+          '7d3525ab4a2e0e2be2bcd074dd94ae2784309d1b' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    68
+          '3111cc689b5b1f6caa38997bf5f85aa3a516ef9c' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    69
+          '3a80e44c97fd3035ce16c68fd2f611a64c61d169' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    70
+          'f14f63c7b1bdc2d1f527249235551dc7f21ad47d' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    71
+          '36951a4c195c72f4194c2d98ce3478c11d85c5bf' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    72
+          '2b29cf70c6cbf52ef5af5da7840c72ae626ccb50' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    73
+          '80543d062529a1eefde0c8b288c411a0b896e950' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    74
+          '5877c8e1896f655bd8f4d98d52e67231c63d9e42' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    75
+          '87ebef35a931cdf43b9ffc6dfe42529a21e562ba' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    76
+          'e53e6248b347be058e3e1973434b2b885c65f091' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    77
+          '27ff6fcaa115d7b59b86f54f970b6271c84ca6d3' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    78
+          'ac0994b0ec0ada5bd28fdce6f8e37e9827357f43' \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    79
+          '3e91eb05c9bf51e230f237d19633fc572fbc3540')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    80
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    81
+# NOTE: This should be built only as root, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    82
+# not using fakeroot.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    83
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    84
+# a small function to add required groups
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    85
+# & users before building.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    86
+pre_build_qmail() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    87
+  # create a tmp dir
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    88
+  mkdir -p $startdir/src/tmp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    89
+  # group: qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    90
+  if [ ! `grep qmail /etc/group` ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    91
+    echo "==> Adding group qmail (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    92
+    groupadd -g 2107 qmail &>/dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    93
+    touch $startdir/src/tmp/group_qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    94
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    95
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    96
+  # group: nofiles
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    97
+  if [ ! `grep nofiles /etc/group` ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    98
+    echo "==> Adding group nofiles (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
    99
+    groupadd -g 2108 nofiles &>/dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   100
+    touch $startdir/src/tmp/group_nofiles
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   101
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   102
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   103
+  # user: alias
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   104
+  if ! id alias &>/dev/null; then 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   105
+    echo "==> Adding user alias (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   106
+    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
   107
+    touch $startdir/src/tmp/user_alias
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   108
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   109
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   110
+  # user: qmaild
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   111
+  if ! id qmaild &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   112
+    echo "==> Adding user qmaild (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   113
+    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
   114
+    touch $startdir/src/tmp/user_qmaild
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   115
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   116
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   117
+  # user: qmaill
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   118
+  if ! id qmaill &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   119
+    echo "==> Adding user qmaill (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   120
+    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
   121
+    touch $startdir/src/tmp/user_qmaill
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   122
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   123
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   124
+  # user: qmailp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   125
+  if ! id qmailp &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   126
+    echo "==> Adding user qmailp (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   127
+    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
   128
+    touch $startdir/src/tmp/user_qmailp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   129
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   130
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   131
+  # user: qmailq
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   132
+  if ! id qmailq &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   133
+    echo "==> Adding user qmailq (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   134
+    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
   135
+    touch $startdir/src/tmp/user_qmailq
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   136
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   137
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   138
+  # user: qmailr
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   139
+  if ! id qmailr &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   140
+    echo "==> Adding user: qmailr (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   141
+    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
   142
+    touch $startdir/src/tmp/user_qmailr
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   143
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   144
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   145
+  # user: qmails
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   146
+  if ! id qmails &>/dev/null; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   147
+    echo "==> Adding user: qmails (temporarily)"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   148
+    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
   149
+    touch $startdir/src/tmp/user_qmails
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   150
+  fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   151
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   152
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   153
+# a small function to remove users
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   154
+# after the build.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   155
+post_build_qmail() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   156
+  # remove users
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   157
+  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
   158
+    if [ -f $startdir/src/tmp/user_${user} ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   159
+      echo "==> Removing user: ${user}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   160
+      userdel ${user} &> /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   161
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   162
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   163
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   164
+  # remove groups
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   165
+  for group in nofiles qmail; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   166
+    if [ -f $startdir/src/tmp/group_${group} ]; then 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   167
+      echo "==> Removing group: ${group}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   168
+      groupdel ${group} &> /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   169
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   170
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   171
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   172
+  # remove temp dir
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   173
+  rm -rf $startdir/src/tmp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   174
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   175
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   176
+build() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   177
+  # save me some typing ;)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   178
+  qmail_dir=$Fdestdir/var/qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   179
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   180
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   181
+  # add the required groups & users 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   182
+  pre_build_qmail || Fdie
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   183
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   184
+  # start playing with qmail :)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   185
+  Fcd $pkgorig-$pkgver
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   186
+  Fpatch qmail-1.03.errno.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   187
+  Fpatch ext_todo-20030105.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   188
+  Fpatch qmailqueue-patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   189
+  Fpatch qregex-20060423-qmail.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   190
+  Fpatch qmail-dietlibc.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   191
+  Fpatch qmail-smtpd.spam.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   192
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   193
+  # compile qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   194
+  make it man || Fdie 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   195
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   196
+  # create dirs
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
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   198
+  for i in bin boot control users; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   199
+    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
   200
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   201
+  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
   202
+  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
   203
+  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
   204
+  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
   205
+  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
   206
+  mkdir -p $qmail_dir/supervise/qmail-{pop3d,send,smtpd}/log
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   207
+  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
   208
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   209
+  # install binaries
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   210
+  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
   211
+    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
   212
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   213
+  install -m 4711 -o qmailq -g qmail qmail-queue \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   214
+    $qmail_dir/bin/qmail-queue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   215
+  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
   216
+    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
   217
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   218
+  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
   219
+           qmail-clean qmail-send splogger qmail-popup qmail-pw2u \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   220
+           qmail-todo; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   221
+    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
   222
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   223
+  for i in qmail-inject predate datemail mailsubj qmail-showctl \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   224
+	   qmail-qread qmail-qstat qmail-tcpto qmail-tcpok qmail-pop3d \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   225
+           qmail-popup qmail-qmqpc qmail-qmqpd qmail-qmtpd qmail-smtpd \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   226
+           sendmail tcp-env qreceipt qsmhook qbiff forward preline \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   227
+           condredirect bouncesaying except maildirmake maildir2mbox \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   228
+           maildirwatch qail elq pinq config-fast; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   229
+    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
   230
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   231
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   232
+  # install manpages
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   233
+  for i in bouncesaying except maildir2mbox maildirwatch preline qreceipt \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   234
+           condredirect forward maildirmake mailsubj qbiff tcp-env; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   235
+    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
   236
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   237
+  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
   238
+           maildir qmail-control qmail-log tcp-environ; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   239
+    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
   240
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   241
+  for i in forgeries qmail-limits qmail; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   242
+    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
   243
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   244
+  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
   245
+           qmail-command qmail-newu qmail-qmtpd qmail-send splogger \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   246
+           qmail-getpw qmail-pop3d qmail-qread qmail-showctl qmail-inject \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   247
+           qmail-popup qmail-qstat qmail-smtpd qmail-local qmail-pw2u \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   248
+           qmail-queue qmail-start qmail-lspawn qmail-qmqpc qmail-remote \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   249
+           qmail-tcpok; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   250
+    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
   251
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   252
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   253
+  # install supervise files
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   254
+  for i in pop3d send smtpd; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   255
+    install -m 755 $startdir/${i}_run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   256
+      $qmail_dir/supervise/qmail-${i}/run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   257
+    install -m 755 $startdir/${i}_log_run \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   258
+      $qmail_dir/supervise/qmail-${i}/log/run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   259
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   260
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   261
+  # install rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   262
+  install -m 755 $startdir/rc \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   263
+    $qmail_dir/rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   264
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   265
+  # install concurrencyicoming & defaultdelivery files
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   266
+  echo 20 > $qmail_dir/control/concurrencyincoming
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   267
+  echo ./Maildir/ > $qmail_dir/control/defaultdelivery
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   268
+  chmod 644 $qmail_dir/control/{concurrencyincoming,defaultdelivery}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   269
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   270
+  # create sendmail symlinks for compatibility reasons
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   271
+  for i in sbin lib; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   272
+    mkdir -p $Fdestdir/usr/${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   273
+    ln -sf /var/qmail/bin/sendmail $Fdestdir/usr/${i}/sendmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   274
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   275
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   276
+  # install profile.d file
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   277
+  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
   278
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   279
+  # install tcp files
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   280
+  for i in smtp pop3; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   281
+    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
   282
+  done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   283
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   284
+  # install cert making script
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   285
+  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
   286
+  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   287
+  # install rc.d file
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   288
+  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
   289
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   290
+  # build and install queue-fix
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   291
+  Fmessage "Now building queue-fix"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   292
+  cd $Fsrcdir/queue-fix-1.4 || Fdie
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   293
+  Fpatch queue-fix-errno.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   294
+  Fpatch queue-fix-dietlibc.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   295
+  make || Fdie
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   296
+  install -D -m755 queue-fix $qmail_dir/bin/queue-fix
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   297
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   298
+  # remove groups & users
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   299
+  post_build_qmail || Fdie
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   300
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   301
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   302
diff --git a/source/dietlibc/diet-qmail/ext_todo-20030105.patch b/source/dietlibc/diet-qmail/ext_todo-20030105.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   303
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   304
index 0000000..466fb4d
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   305
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   306
+++ b/source/dietlibc/diet-qmail/ext_todo-20030105.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   307
@@ -0,0 +1,1238 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   308
+diff -uN qmail-1.03/EXTTODO qmail-exttodo/EXTTODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   309
+--- 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
   310
++++ qmail-exttodo/EXTTODO	Sun Jan  5 22:12:01 2003
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   311
+@@ -0,0 +1,114 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   312
++EXTTODO by Claudio Jeker <jeker@n-r-g.com> and 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   313
++Andre Oppermann <opi@nrg4u.com>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   314
++(c) 1998,1999,2000,2001,2002 Internet Business Solutions Ltd.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   315
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   316
++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
   317
++This patches for qmail come with NO WARRANTY.
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
++These patches are under the BSD license.
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
++RELEASE: 5. Jan. 2003
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   322
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   323
++EXTTODO:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   324
++======================
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   325
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   326
++TOC:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   327
++ WHAT DOES IT DO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   328
++ INSTALL
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   329
++ CONFIG FILES
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   330
++ SETUP
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   331
++ BIG PICTURE
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
++NEWS:
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
++ This is the first release of the EXTTODO patch.
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
++================================================================================
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   338
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   339
++WHAT DOES IT DO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   340
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   341
++ 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
   342
++ 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
   343
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   344
++ 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
   345
++ 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
   346
++ becomes a bottleneck on those high volumes servers.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   347
++ 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
   348
++ 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
   349
++ 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
   350
++ 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
   351
++ not possible to achieve the maximum throughput.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   352
++ 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
   353
++ 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
   354
++ run is expensive and throttles the throughput.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   355
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   356
++ 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
   357
++ 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
   358
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   359
++ 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
   360
++ 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
   361
++ 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
   362
++ 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
   363
++ 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
   364
++ delivery. 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   365
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   366
++INSTALL
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   367
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   368
++ 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
   369
++ 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
   370
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   371
++ 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
   372
++ qmail-ldap patch.
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
++================================================================================
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
++CONFIG FILES
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
++ No additional control files are used or needed.
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
++================================================================================
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   381
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   382
++SETUP
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   383
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   384
++ 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
   385
++ is needed.
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
++ 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
   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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   391
++BIG PICTURE
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   392
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   393
++               +-------+   +-------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   394
++               | clean |   | clean |
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   395
++               +--0-1--+   +--0-1--+       +-----------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   396
++         trigger  ^ |         ^ |        +->0,1 lspawn |
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   397
++            |     | v         | v       /  +-----------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   398
++ +-------+  v  +--2-3--+   +--5-6--+   /
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   399
++ |       |  |  |       0<--7     1,2<-+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   400
++ | queue |--+--| todo  |   | send  |
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   401
++ |       |  |  |       1-->8     3,4<-+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   402
++ +-------+     +-------+   +---0---+   \
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
++                               v         +->0,1 rspwan |
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   405
++                           +---0---+       +-----------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   406
++                           | logger|
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   407
++                           +-------+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   408
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   409
++Communication between qmail-send and qmail-todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   410
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   411
++todo -> send:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   412
++   D[LRB]<mesgid>\0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   413
++          Start delivery for new message with id <messid>.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   414
++          the character L, R or B defines the type
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   415
++          of delivery, local, remote or both respectively.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   416
++   L<string>\0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   417
++          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
   418
++send -> todo:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   419
++   H      Got a SIGHUP reread ~/control/locals and ~/control/virtualdomains
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   420
++   X      Quit ASAP.
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
++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
   423
++character to qmail-todo.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   424
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   425
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   426
+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
   427
+--- 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
   428
++++ 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
   429
+@@ -0,0 +1,11 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   430
++Files modified:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   431
++Makefile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   432
++EXTTODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   433
++FILES
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   434
++TARGETS
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   435
++qmail-send.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   436
++qmail-todo.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   437
++qmail-start.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   438
++hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   439
++install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   440
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   441
+diff -uN qmail-1.03/FILES qmail-exttodo/FILES
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   442
+--- 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
   443
++++ qmail-exttodo/FILES	Mon Apr 22 13:59:28 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   444
+@@ -431,3 +431,4 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   445
+ tcp-environ.5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   446
+ constmap.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   447
+ constmap.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   448
++qmail-todo.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   449
+diff -uN qmail-1.03/Makefile qmail-exttodo/Makefile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   450
+--- 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
   451
++++ qmail-exttodo/Makefile	Mon Apr 22 14:55:59 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   452
+@@ -1,5 +1,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   453
+ # Don't edit Makefile! Use conf-* for configuration.
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
++DEFINES=-DEXTERNAL_TODO # use to enable external todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   456
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   457
+ SHELL=/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   458
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   459
+ default: it
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   460
+@@ -703,7 +705,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   461
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   462
+ hier.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   463
+ 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
   464
+-	./compile hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   465
++	./compile $(DEFINES) hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   466
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   467
+ home: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   468
+ home.sh conf-qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   469
+@@ -755,7 +757,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   470
+ install-big.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   471
+ 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
   472
+ fifo.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   473
+-	./compile install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   474
++	./compile $(DEFINES) install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   475
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   476
+ install.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   477
+ 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
   478
+@@ -808,7 +810,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   479
+ forward preline condredirect bouncesaying except maildirmake \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   480
+ maildir2mbox maildirwatch qail elq pinq idedit install-big install \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   481
+ 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
   482
+-binm3 binm3+df
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   483
++binm3 binm3+df qmail-todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   484
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   485
+ load: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   486
+ make-load warn-auto.sh systype
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   487
+@@ -1509,7 +1511,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   488
+ 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
   489
+ 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
   490
+ fmtqfn.h readsubdir.h direntry.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   491
+-	./compile qmail-send.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   492
++	./compile $(DEFINES) qmail-send.c
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-showctl: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   495
+ 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
   496
+@@ -1574,7 +1576,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   497
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   498
+ qmail-start.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   499
+ 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
   500
+-	./compile qmail-start.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   501
++	./compile $(DEFINES) qmail-start.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   502
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   503
+ qmail-tcpok: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   504
+ 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
   505
+@@ -1605,6 +1607,20 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   506
+ 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
   507
+ 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
   508
+ 	./compile qmail-tcpto.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   509
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   510
++qmail-todo: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   511
++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
   512
++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
   513
++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
   514
++	./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
   515
++	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
   516
++	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
   517
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   518
++qmail-todo.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   519
++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
   520
++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
   521
++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
   522
++	./compile $(DEFINES) qmail-todo.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   523
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   524
+ qmail-upq: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   525
+ 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
   526
+diff -uN qmail-1.03/TARGETS qmail-exttodo/TARGETS
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   527
+--- 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
   528
++++ qmail-exttodo/TARGETS	Mon Apr 22 13:59:32 2002
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   529
+@@ -385,3 +385,5 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   530
+ man
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   531
+ setup
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   532
+ check
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   533
++qmail-todo.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   534
++qmail-todo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   535
+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
   536
+--- 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
   537
++++ 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
   538
+@@ -108,6 +108,9 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   539
+   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
   540
+   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
   541
+   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
   542
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   543
++  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
   544
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   545
+   c(auto_qmail,"bin","splogger",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   546
+   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
   547
+   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
   548
+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
   549
+--- 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
   550
++++ 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
   551
+@@ -108,6 +108,9 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   552
+   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
   553
+   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
   554
+   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
   555
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   556
++  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
   557
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   558
+   c(auto_qmail,"bin","splogger",auto_uido,auto_gidq,0711);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   559
+   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
   560
+   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
   561
+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
   562
+--- 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
   563
++++ 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
   564
+@@ -1215,6 +1215,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   565
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   566
+ /* this file is too long ---------------------------------------------- TODO */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   567
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   568
++#ifndef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   569
+ datetime_sec nexttodorun;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   570
+ DIR *tododir; /* if 0, have to opendir again */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   571
+ stralloc todoline = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   572
+@@ -1438,6 +1439,143 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   573
+    if (fdchan[c] != -1) close(fdchan[c]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   574
+ }
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
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   577
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   578
++/* this file is too long ------------------------------------- EXTERNAL TODO */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   579
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   580
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   581
++stralloc todoline = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   582
++char todobuf[2048];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   583
++int todofdin;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   584
++int todofdout;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   585
++int flagtodoalive;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   586
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   587
++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
   588
++ flagexitasap = 1; flagtodoalive = 0; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   589
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   590
++void todo_init()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   591
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   592
++  todofdout = 7;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   593
++  todofdin = 8;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   594
++  flagtodoalive = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   595
++  /* sync with external todo */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   596
++  if (write(todofdout, "S", 1) != 1) tododied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   597
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   598
++  return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   599
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   600
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   601
++void todo_selprep(nfds,rfds,wakeup)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   602
++int *nfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   603
++fd_set *rfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   604
++datetime_sec *wakeup;
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
++  if (flagexitasap) {
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
++      write(todofdout, "X", 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   609
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   610
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   611
++  if (flagtodoalive) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   612
++    FD_SET(todofdin,rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   613
++    if (*nfds <= todofdin)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   614
++      *nfds = todofdin + 1;
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
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   617
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   618
++void todo_del(char* s)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   619
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   620
++ int flagchan[CHANNELS];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   621
++ struct prioq_elt pe;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   622
++ unsigned long id;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   623
++ unsigned int len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   624
++ int c;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   625
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   626
++ for (c = 0;c < CHANNELS;++c) flagchan[c] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   627
++ switch(*s++) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   628
++  case 'L':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   629
++    flagchan[0] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   630
++    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   631
++  case 'R':
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 'B':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   635
++    flagchan[0] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   636
++    flagchan[1] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   637
++    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   638
++  case 'X':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   639
++    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   640
++  default:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   641
++    log1("warning: qmail-send unable to understand qmail-todo\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   642
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   643
++ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   644
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   645
++ len = scan_ulong(s,&id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   646
++ if (!len || s[len]) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   647
++  log1("warning: qmail-send unable to understand qmail-todo\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   648
++  return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   649
++ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   650
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   651
++ pe.id = id; pe.dt = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   652
++ for (c = 0;c < CHANNELS;++c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   653
++   if (flagchan[c])
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   654
++     while (!prioq_insert(&pqchan[c],&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
++ for (c = 0;c < CHANNELS;++c) if (flagchan[c]) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   657
++ if (c == CHANNELS)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   658
++   while (!prioq_insert(&pqdone,&pe)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   659
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   660
++ return;
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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   663
++void todo_do(rfds)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   664
++fd_set *rfds;
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
++  int r;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   667
++  char ch;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   668
++  int i;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   669
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   670
++  if (!flagtodoalive) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   671
++  if (!FD_ISSET(todofdin,rfds)) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   672
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   673
++  r = read(todofdin,todobuf,sizeof(todobuf));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   674
++  if (r == -1) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   675
++  if (r == 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   676
++    if (flagexitasap)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   677
++      flagtodoalive = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   678
++    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   679
++      tododied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   680
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   681
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   682
++  for (i = 0;i < r;++i) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   683
++    ch = todobuf[i];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   684
++    while (!stralloc_append(&todoline,&ch)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   685
++    if (todoline.len > REPORTMAX)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   686
++      todoline.len = REPORTMAX;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   687
++      /* qmail-todo is responsible for keeping it short */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   688
++    if (!ch && (todoline.len > 1)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   689
++      switch (todoline.s[0]) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   690
++	case 'D':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   691
++	  if (flagexitasap) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   692
++	  todo_del(todoline.s + 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   693
++	  break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   694
++	case 'L':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   695
++	  log1(todoline.s + 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   696
++	  break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   697
++	case 'X':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   698
++	  if (flagexitasap)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   699
++	    flagtodoalive = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   700
++	  else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   701
++	    tododied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   702
++	  break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   703
++	default:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   704
++	  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
   705
++	  break;
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
++      todoline.len = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   708
++    }
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
++}
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
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   713
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   714
+ /* this file is too long ---------------------------------------------- MAIN */
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
+@@ -1504,6 +1642,9 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   717
+    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
   718
+    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   719
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   720
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   721
++ write(todofdout, "H", 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   722
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   723
+  regetcontrols();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   724
+  while (chdir("queue") == -1)
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
+@@ -1568,8 +1709,12 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   727
+  todo_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   728
+  cleanup_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   729
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   730
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   731
++ while (!flagexitasap || !del_canexit() || flagtodoalive)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   732
++#else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   733
+  while (!flagexitasap || !del_canexit())
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
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   736
++ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   737
+    recent = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   738
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   739
+    if (flagrunasap) { flagrunasap = 0; pqrun(); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   740
+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
   741
+--- 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
   742
++++ 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
   743
+@@ -8,6 +8,9 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   744
+ char *(qcargs[]) = { "qmail-clean", 0 };
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   745
+ char *(qlargs[]) = { "qmail-lspawn", "./Mailbox", 0 };
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   746
+ char *(qrargs[]) = { "qmail-rspawn", 0 };
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   747
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   748
++char *(qtargs[]) = { "qmail-todo", 0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   749
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   750
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   751
+ void die() { _exit(111); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   752
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   753
+@@ -18,13 +21,28 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   754
+ int pi4[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   755
+ int pi5[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   756
+ int pi6[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   757
+-
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   758
+-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
   759
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   760
++int pi7[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   761
++int pi8[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   762
++int pi9[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   763
++int pi10[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   764
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   765
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   766
++void close23456() { 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   767
++  close(2); close(3); close(4); close(5); close(6); 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   768
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   769
++  close(7); close(8);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   770
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   771
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   772
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   773
+ void closepipes() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   774
+   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
   775
+   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
   776
+   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
   777
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   778
++  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
   779
++	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
   780
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   781
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   782
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   783
+ void main(argc,argv)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   784
+@@ -40,6 +58,10 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   785
+   if (fd_copy(4,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   786
+   if (fd_copy(5,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   787
+   if (fd_copy(6,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   788
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   789
++  if (fd_copy(7,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   790
++  if (fd_copy(8,0) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   791
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   792
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   793
+   if (argv[1]) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   794
+     qlargs[1] = argv[1];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   795
+@@ -70,6 +92,12 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   796
+   if (pipe(pi4) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   797
+   if (pipe(pi5) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   798
+   if (pipe(pi6) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   799
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   800
++  if (pipe(pi7) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   801
++  if (pipe(pi8) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   802
++  if (pipe(pi9) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   803
++  if (pipe(pi10) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   804
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   805
+  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   806
+   switch(fork()) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   807
+     case -1: die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   808
+@@ -105,6 +133,34 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   809
+       execvp(*qcargs,qcargs);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   810
+       die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   811
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   812
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   813
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   814
++  switch(fork()) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   815
++    case -1: die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   816
++    case 0:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   817
++      if (prot_uid(auto_uids) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   818
++      if (fd_copy(0,pi7[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   819
++      if (fd_copy(1,pi8[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   820
++      close23456();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   821
++      if (fd_copy(2,pi9[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   822
++      if (fd_copy(3,pi10[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   823
++      closepipes();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   824
++      execvp(*qtargs,qtargs);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   825
++      die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   826
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   827
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   828
++  switch(fork()) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   829
++    case -1: die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   830
++    case 0:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   831
++      if (prot_uid(auto_uidq) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   832
++      if (fd_copy(0,pi9[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   833
++      if (fd_copy(1,pi10[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   834
++      close23456();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   835
++      closepipes();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   836
++      execvp(*qcargs,qcargs);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   837
++      die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   838
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   839
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   840
+  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   841
+   if (prot_uid(auto_uids) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   842
+   if (fd_copy(0,1) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   843
+@@ -114,6 +170,10 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   844
+   if (fd_copy(4,pi4[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   845
+   if (fd_copy(5,pi5[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   846
+   if (fd_copy(6,pi6[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   847
++#ifdef EXTERNAL_TODO
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   848
++  if (fd_copy(7,pi7[1]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   849
++  if (fd_copy(8,pi8[0]) == -1) die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   850
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   851
+   closepipes();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   852
+   execvp(*qsargs,qsargs);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   853
+   die();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   854
+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
   855
+--- 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
   856
++++ 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
   857
+@@ -0,0 +1,688 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   858
++#include <sys/types.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   859
++#include <sys/stat.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   860
++#include "alloc.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   861
++#include "auto_qmail.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   862
++#include "byte.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   863
++#include "constmap.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   864
++#include "control.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   865
++#include "direntry.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   866
++#include "error.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   867
++#include "exit.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   868
++#include "fmt.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   869
++#include "fmtqfn.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   870
++#include "getln.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   871
++#include "open.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   872
++#include "ndelay.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   873
++#include "now.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   874
++#include "readsubdir.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   875
++#include "readwrite.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   876
++#include "scan.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   877
++#include "select.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   878
++#include "str.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   879
++#include "stralloc.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   880
++#include "substdio.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   881
++#include "trigger.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   882
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   883
++/* 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
   884
++/* critical timing feature #2: if triggered, respond within fixed time */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   885
++/* important timing feature: when triggered, respond instantly */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   886
++#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
   887
++#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
   888
++#define SLEEP_FOREVER 86400 /* absolute maximum time spent in select() */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   889
++#define SLEEP_SYSFAIL 123
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   890
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   891
++stralloc percenthack = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   892
++struct constmap mappercenthack;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   893
++stralloc locals = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   894
++struct constmap maplocals;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   895
++stralloc vdoms = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   896
++struct constmap mapvdoms;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   897
++stralloc envnoathost = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   898
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   899
++char strnum[FMT_ULONG];
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
++/* 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
   902
++#define CHANNELS 2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   903
++char *chanaddr[CHANNELS] = { "local/", "remote/" };
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   904
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   905
++datetime_sec recent;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   906
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   907
++void log1(char *x);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   908
++void log3(char* x, char* y, char* z);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   909
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   910
++int flagstopasap = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   911
++void sigterm(void)
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
++  if (flagstopasap == 0)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   914
++    log1("status: qmail-todo stop processing asap\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   915
++  flagstopasap = 1;
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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   918
++int flagreadasap = 0; void sighup(void) { flagreadasap = 1; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   919
++int flagsendalive = 1; void senddied(void) { flagsendalive = 0; }
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 nomem() { log1("alert: out of memory, sleeping...\n"); sleep(10); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   922
++void pausedir(dir) char *dir;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   923
++{ log3("alert: unable to opendir ",dir,", sleeping...\n"); sleep(10); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   924
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   925
++void cleandied()
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
++  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
   928
++  flagstopasap = 1;
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
++
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
++/* this file is not so long ------------------------------------- FILENAMES */
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
++stralloc fn = {0};
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
++void fnmake_init(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   937
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   938
++ while (!stralloc_ready(&fn,FMTQFN)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   939
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   940
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   941
++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
   942
++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
   943
++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
   944
++void fnmake_chanaddr(unsigned long id, int c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   945
++{ fn.len = fmtqfn(fn.s,chanaddr[c],id,1); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   946
++
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
++/* this file is not so long ------------------------------------- REWRITING */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   949
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   950
++stralloc rwline = {0};
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
++/* 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
   953
++/* 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
   954
++int rewrite(char *recip)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   955
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   956
++  int i;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   957
++  int j;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   958
++  char *x;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   959
++  static stralloc addr = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   960
++  int at;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   961
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   962
++  if (!stralloc_copys(&rwline,"T")) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   963
++  if (!stralloc_copys(&addr,recip)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   964
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   965
++  i = byte_rchr(addr.s,addr.len,'@');
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   966
++  if (i == addr.len) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   967
++    if (!stralloc_cats(&addr,"@")) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   968
++    if (!stralloc_cat(&addr,&envnoathost)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   969
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   970
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   971
++  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
   972
++    j = byte_rchr(addr.s,i,'%');
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   973
++    if (j == i) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   974
++    addr.len = i;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   975
++    i = j;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   976
++    addr.s[i] = '@';
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   977
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   978
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   979
++  at = byte_rchr(addr.s,addr.len,'@');
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   980
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   981
++  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
   982
++    if (!stralloc_cat(&rwline,&addr)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   983
++    if (!stralloc_0(&rwline)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   984
++    return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   985
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   986
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   987
++  for (i = 0;i <= addr.len;++i)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   988
++    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
   989
++      if (x = constmap(&mapvdoms,addr.s + i,addr.len - i)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   990
++        if (!*x) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   991
++        if (!stralloc_cats(&rwline,x)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   992
++        if (!stralloc_cats(&rwline,"-")) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   993
++        if (!stralloc_cat(&rwline,&addr)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   994
++        if (!stralloc_0(&rwline)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   995
++        return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   996
++      }
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
++  if (!stralloc_cat(&rwline,&addr)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
   999
++  if (!stralloc_0(&rwline)) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1000
++  return 2;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1001
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1002
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1003
++/* this file is not so long --------------------------------- COMMUNICATION */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1004
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1005
++substdio sstoqc; char sstoqcbuf[1024];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1006
++substdio ssfromqc; char ssfromqcbuf[1024];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1007
++stralloc comm_buf = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1008
++int comm_pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1009
++int fdout = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1010
++int fdin = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1011
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1012
++void comm_init(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1013
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1014
++ substdio_fdbuf(&sstoqc,write,2,sstoqcbuf,sizeof(sstoqcbuf));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1015
++ substdio_fdbuf(&ssfromqc,read,3,ssfromqcbuf,sizeof(ssfromqcbuf));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1016
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1017
++ fdout = 1; /* stdout */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1018
++ fdin = 0;  /* stdin */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1019
++ if (ndelay_on(fdout) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1020
++ /* 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
  1021
++   senddied(); /* drastic, but better than risking deadlock */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1022
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1023
++ while (!stralloc_ready(&comm_buf,1024)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1024
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1025
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1026
++int comm_canwrite(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1027
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1028
++ /* XXX: could allow a bigger buffer; say 10 recipients */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1029
++ /* XXX: returns true if there is something in the buffer */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1030
++ if (!flagsendalive) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1031
++ if (comm_buf.s && comm_buf.len) return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1032
++ return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1033
++}
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
++void log1(char* x)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1036
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1037
++  int pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1038
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1039
++  pos = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1040
++  if (!stralloc_cats(&comm_buf,"L")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1041
++  if (!stralloc_cats(&comm_buf,x)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1042
++  if (!stralloc_0(&comm_buf)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1043
++  return;
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
++fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1046
++  /* either all or nothing */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1047
++  comm_buf.len = pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1048
++}
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
++void log3(char* x, char *y, char *z)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1051
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1052
++  int pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1053
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1054
++  pos = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1055
++  if (!stralloc_cats(&comm_buf,"L")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1056
++  if (!stralloc_cats(&comm_buf,x)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1057
++  if (!stralloc_cats(&comm_buf,y)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1058
++  if (!stralloc_cats(&comm_buf,z)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1059
++  if (!stralloc_0(&comm_buf)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1060
++  return;
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
++fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1063
++  /* either all or nothing */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1064
++  comm_buf.len = pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1065
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1066
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1067
++void comm_write(unsigned long id, int local, int remote)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1068
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1069
++  int pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1070
++  char *s;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1071
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1072
++  if(local && remote) s="B";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1073
++  else if(local) s="L";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1074
++  else if(remote) s="R";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1075
++  else s="X";
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1076
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1077
++  pos = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1078
++  strnum[fmt_ulong(strnum,id)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1079
++  if (!stralloc_cats(&comm_buf,"D")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1080
++  if (!stralloc_cats(&comm_buf,s)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1081
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1082
++  if (!stralloc_0(&comm_buf)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1083
++  return;
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
++fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1086
++  /* either all or nothing */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1087
++  comm_buf.len = pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1088
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1089
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1090
++static int issafe(char ch)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1091
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1092
++ 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
  1093
++ if (ch < 33) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1094
++ if (ch > 126) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1095
++ return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1096
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1097
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1098
++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
  1099
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1100
++  int pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1101
++  int i;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1102
++  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1103
++  pos = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1104
++  if (!stralloc_cats(&comm_buf,"Linfo msg ")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1105
++  strnum[fmt_ulong(strnum,id)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1106
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1107
++  if (!stralloc_cats(&comm_buf,": bytes ")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1108
++  strnum[fmt_ulong(strnum,size)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1109
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1110
++  if (!stralloc_cats(&comm_buf," from <")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1111
++  i = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1112
++  if (!stralloc_cats(&comm_buf,from)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1113
++  for (;i < comm_buf.len;++i)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1114
++    if (comm_buf.s[i] == '\n')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1115
++      comm_buf.s[i] = '/';
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1116
++    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1117
++      if (!issafe(comm_buf.s[i]))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1118
++	comm_buf.s[i] = '_';
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1119
++  if (!stralloc_cats(&comm_buf,"> qp ")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1120
++  strnum[fmt_ulong(strnum,pid)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1121
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1122
++  if (!stralloc_cats(&comm_buf," uid ")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1123
++  strnum[fmt_ulong(strnum,uid)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1124
++  if (!stralloc_cats(&comm_buf,strnum)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1125
++  if (!stralloc_cats(&comm_buf,"\n")) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1126
++  if (!stralloc_0(&comm_buf)) goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1127
++  return;
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
++fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1130
++  /* either all or nothing */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1131
++  comm_buf.len = pos;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1132
++}
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
++void comm_exit(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1135
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1136
++  int w;
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
++  /* if it fails exit, we have already stoped */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1139
++  if (!stralloc_cats(&comm_buf,"X")) _exit(1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1140
++  if (!stralloc_0(&comm_buf)) _exit(1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1141
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1142
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1143
++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
  1144
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1145
++  if (flagsendalive) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1146
++    if (flagstopasap && comm_canwrite() == 0)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1147
++      comm_exit();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1148
++    if (comm_canwrite()) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1149
++      FD_SET(fdout,wfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1150
++      if (*nfds <= fdout)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1151
++	*nfds = fdout + 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
++    FD_SET(fdin,rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1154
++    if (*nfds <= fdin)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1155
++      *nfds = fdin + 1;
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
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1158
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1159
++void comm_do(fd_set *wfds, fd_set *rfds)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1160
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1161
++  /* first write then read */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1162
++  if (flagsendalive)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1163
++    if (comm_canwrite())
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1164
++      if (FD_ISSET(fdout,wfds)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1165
++	int w;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1166
++	int len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1167
++	len = comm_buf.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1168
++	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
  1169
++	if (w <= 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1170
++	  if ((w == -1) && (errno == error_pipe))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1171
++	    senddied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1172
++	} else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1173
++	  comm_pos += w;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1174
++	  if (comm_pos == len) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1175
++	    comm_buf.len = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1176
++	    comm_pos = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1177
++	  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1178
++	}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1179
++      }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1180
++  if (flagsendalive)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1181
++    if (FD_ISSET(fdin,rfds)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1182
++      /* there are only two messages 'H' and 'X' */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1183
++      char c;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1184
++      int r;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1185
++      r = read(fdin, &c, 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1186
++      if (r <= 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1187
++	if ((r == -1) && (errno != error_intr))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1188
++	  senddied();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1189
++      } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1190
++	switch(c) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1191
++	  case 'H':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1192
++	    sighup();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1193
++	    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1194
++	  case 'X':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1195
++	    sigterm();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1196
++	    break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1197
++	  default:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1198
++	    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
  1199
++	    break;
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
++      }
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
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1204
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1205
++/* this file is not so long ------------------------------------------ TODO */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1206
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1207
++datetime_sec nexttodorun;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1208
++DIR *tododir; /* if 0, have to opendir again */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1209
++stralloc todoline = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1210
++char todobuf[SUBSTDIO_INSIZE];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1211
++char todobufinfo[512];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1212
++char todobufchan[CHANNELS][1024];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1213
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1214
++void todo_init(void)
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
++ tododir = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1217
++ nexttodorun = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1218
++ trigger_set();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1219
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1220
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1221
++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
  1222
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1223
++ if (flagstopasap) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1224
++ trigger_selprep(nfds,rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1225
++ if (tododir) *wakeup = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1226
++ if (*wakeup > nexttodorun) *wakeup = nexttodorun;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1227
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1228
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1229
++void todo_do(fd_set *rfds)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1230
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1231
++ struct stat st;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1232
++ substdio ss; int fd;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1233
++ substdio ssinfo; int fdinfo;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1234
++ substdio sschan[CHANNELS];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1235
++ int fdchan[CHANNELS];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1236
++ int flagchan[CHANNELS];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1237
++ char ch;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1238
++ int match;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1239
++ unsigned long id;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1240
++ unsigned int len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1241
++ direntry *d;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1242
++ int c;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1243
++ unsigned long uid;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1244
++ unsigned long pid;
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
++ fd = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1247
++ fdinfo = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1248
++ for (c = 0;c < CHANNELS;++c) fdchan[c] = -1;
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 (flagstopasap) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1251
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1252
++ if (!tododir)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1253
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1254
++   if (!trigger_pulled(rfds))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1255
++     if (recent < nexttodorun)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1256
++       return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1257
++   trigger_set();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1258
++   tododir = opendir("todo");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1259
++   if (!tododir)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1260
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1261
++     pausedir("todo");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1262
++     return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1263
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1264
++   nexttodorun = recent + SLEEP_TODO;
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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1267
++ d = readdir(tododir);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1268
++ if (!d)
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
++   closedir(tododir);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1271
++   tododir = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1272
++   return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1273
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1274
++ if (str_equal(d->d_name,".")) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1275
++ if (str_equal(d->d_name,"..")) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1276
++ len = scan_ulong(d->d_name,&id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1277
++ if (!len || d->d_name[len]) return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1278
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1279
++ fnmake_todo(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1280
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1281
++ fd = open_read(fn.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1282
++ 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
  1283
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1284
++ fnmake_mess(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1285
++ /* just for the statistics */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1286
++ if (stat(fn.s,&st) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1287
++  { 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
  1288
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1289
++ for (c = 0;c < CHANNELS;++c)
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
++   fnmake_chanaddr(id,c);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1292
++   if (unlink(fn.s) == -1) if (errno != error_noent)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1293
++    { 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
  1294
++  }
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
++ fnmake_info(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1297
++ if (unlink(fn.s) == -1) if (errno != error_noent)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1298
++  { 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
  1299
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1300
++ fdinfo = open_excl(fn.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1301
++ if (fdinfo == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1302
++  { 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
  1303
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1304
++ strnum[fmt_ulong(strnum,id)] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1305
++ log3("new msg ",strnum,"\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1306
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1307
++ for (c = 0;c < CHANNELS;++c) flagchan[c] = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1308
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1309
++ substdio_fdbuf(&ss,read,fd,todobuf,sizeof(todobuf));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1310
++ substdio_fdbuf(&ssinfo,write,fdinfo,todobufinfo,sizeof(todobufinfo));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1311
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1312
++ uid = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1313
++ pid = 0;
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
++ for (;;)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1316
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1317
++   if (getln(&ss,&todoline,&match,'\0') == -1)
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
++     /* 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
  1320
++     fnmake_todo(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1321
++     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
  1322
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1323
++   if (!match) break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1324
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1325
++   switch(todoline.s[0])
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1326
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1327
++     case 'u':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1328
++       scan_ulong(todoline.s + 1,&uid);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1329
++       break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1330
++     case 'p':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1331
++       scan_ulong(todoline.s + 1,&pid);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1332
++       break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1333
++     case 'F':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1334
++       if (substdio_putflush(&ssinfo,todoline.s,todoline.len) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1335
++	{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1336
++	 fnmake_info(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1337
++         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
  1338
++	}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1339
++	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
  1340
++       break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1341
++     case 'T':
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1342
++       switch(rewrite(todoline.s + 1))
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
++	 case 0: nomem(); goto fail;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1345
++	 case 2: c = 1; break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1346
++	 default: c = 0; break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1347
++        }
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
++	{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1350
++	 fnmake_chanaddr(id,c);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1351
++	 fdchan[c] = open_excl(fn.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1352
++	 if (fdchan[c] == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1353
++          { 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
  1354
++	 substdio_fdbuf(&sschan[c]
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1355
++	   ,write,fdchan[c],todobufchan[c],sizeof(todobufchan[c]));
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1356
++	 flagchan[c] = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1357
++	}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1358
++       if (substdio_bput(&sschan[c],rwline.s,rwline.len) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1359
++        {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1360
++	 fnmake_chanaddr(id,c);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1361
++         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
  1362
++        }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1363
++       break;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1364
++     default:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1365
++       fnmake_todo(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1366
++       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
  1367
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1368
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1369
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1370
++ close(fd); fd = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1371
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1372
++ fnmake_info(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1373
++ if (substdio_flush(&ssinfo) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1374
++  { 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
  1375
++ if (fsync(fdinfo) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1376
++  { 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
  1377
++ close(fdinfo); fdinfo = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1378
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1379
++ for (c = 0;c < CHANNELS;++c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1380
++   if (fdchan[c] != -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1381
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1382
++     fnmake_chanaddr(id,c);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1383
++     if (substdio_flush(&sschan[c]) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1384
++      { 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
  1385
++     if (fsync(fdchan[c]) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1386
++      { 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
  1387
++     close(fdchan[c]); fdchan[c] = -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1388
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1389
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1390
++ fnmake_todo(id);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1391
++ 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
  1392
++ if (substdio_get(&ssfromqc,&ch,1) != 1) { cleandied(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1393
++ if (ch != '+')
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
++   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
  1396
++   return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1397
++  }
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
++ comm_write(id, flagchan[0], flagchan[1]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1400
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1401
++ return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1402
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1403
++ fail:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1404
++ if (fd != -1) close(fd);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1405
++ if (fdinfo != -1) close(fdinfo);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1406
++ for (c = 0;c < CHANNELS;++c)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1407
++   if (fdchan[c] != -1) close(fdchan[c]);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1408
++}
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
++/* this file is too long ---------------------------------------------- MAIN */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1411
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1412
++int getcontrols(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1413
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1414
++ if (control_init() == -1) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1415
++ 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
  1416
++ if (control_readfile(&locals,"control/locals",1) != 1) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1417
++ 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
  1418
++ switch(control_readfile(&percenthack,"control/percenthack",0))
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
++   case -1: return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1421
++   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
  1422
++   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
  1423
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1424
++ switch(control_readfile(&vdoms,"control/virtualdomains",0))
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
++   case -1: return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1427
++   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
  1428
++   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
  1429
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1430
++ return 1;
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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1433
++stralloc newlocals = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1434
++stralloc newvdoms = {0};
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
++void regetcontrols(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1437
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1438
++ int r;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1439
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1440
++ if (control_readfile(&newlocals,"control/locals",1) != 1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1441
++  { 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
  1442
++ r = control_readfile(&newvdoms,"control/virtualdomains",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1443
++ if (r == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1444
++  { 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
  1445
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1446
++ constmap_free(&maplocals);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1447
++ constmap_free(&mapvdoms);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1448
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1449
++ while (!stralloc_copy(&locals,&newlocals)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1450
++ while (!constmap_init(&maplocals,locals.s,locals.len,0)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1451
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1452
++ if (r)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1453
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1454
++   while (!stralloc_copy(&vdoms,&newvdoms)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1455
++   while (!constmap_init(&mapvdoms,vdoms.s,vdoms.len,1)) nomem();
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
++ else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1458
++   while (!constmap_init(&mapvdoms,"",0,1)) nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1459
++}
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
++void reread(void)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1462
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1463
++ if (chdir(auto_qmail) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1464
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1465
++   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
  1466
++   return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1467
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1468
++ regetcontrols();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1469
++ while (chdir("queue") == -1)
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
++   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
  1472
++   sleep(10);
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
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1475
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1476
++void main()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1477
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1478
++ datetime_sec wakeup;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1479
++ fd_set rfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1480
++ fd_set wfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1481
++ int nfds;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1482
++ struct timeval tv;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1483
++ int r;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1484
++ char c;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1485
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1486
++ if (chdir(auto_qmail) == -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 home directory\n"); _exit(111); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1488
++ if (!getcontrols())
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1489
++  { 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
  1490
++ if (chdir("queue") == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1491
++  { 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
  1492
++ sig_pipeignore();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1493
++ umask(077);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1494
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1495
++ fnmake_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1496
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1497
++ todo_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1498
++ comm_init();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1499
++ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1500
++ do {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1501
++   r = read(fdin, &c, 1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1502
++   if ((r == -1) && (errno != error_intr))
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1503
++     _exit(100); /* read failed probably qmail-send died */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1504
++ } while (r =! 1); /* we assume it is a 'S' */
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
++ for (;;)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1507
++  {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1508
++   recent = now();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1509
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1510
++   if (flagreadasap) { flagreadasap = 0; reread(); }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1511
++   if (!flagsendalive) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1512
++     /* qmail-send finaly exited, so do the same. */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1513
++     if (flagstopasap) _exit(0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1514
++     /* 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
  1515
++     _exit(1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1516
++   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1517
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1518
++   wakeup = recent + SLEEP_FOREVER;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1519
++   FD_ZERO(&rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1520
++   FD_ZERO(&wfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1521
++   nfds = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1522
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1523
++   todo_selprep(&nfds,&rfds,&wakeup);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1524
++   comm_selprep(&nfds,&wfds,&rfds);
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 (wakeup <= recent) tv.tv_sec = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1527
++   else tv.tv_sec = wakeup - recent + SLEEP_FUZZ;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1528
++   tv.tv_usec = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1529
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1530
++   if (select(nfds,&rfds,&wfds,(fd_set *) 0,&tv) == -1)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1531
++     if (errno == error_intr)
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
++     else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1534
++       log1("warning: qmail-todo: trouble in select\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1535
++   else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1536
++    {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1537
++     recent = now();
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
++     todo_do(&rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1540
++     comm_do(&wfds, &rfds);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1541
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1542
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1543
++  /* NOTREACHED */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1544
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1545
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1546
diff --git a/source/dietlibc/diet-qmail/make_cert.sh b/source/dietlibc/diet-qmail/make_cert.sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1547
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1548
index 0000000..8b17499
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1549
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1550
+++ b/source/dietlibc/diet-qmail/make_cert.sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1551
@@ -0,0 +1,57 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1552
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1553
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1554
+# This script creates ssl certificates for
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1555
+# use with qmail.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1556
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1557
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1558
+cert() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1559
+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
  1560
+	-days 366 -keyout /var/qmail/control/servercert.pem; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1561
+  chmod 640 /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1562
+  chown qmaild.qmail /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1563
+  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
  1564
+  echo "==> Process done."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1565
+else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1566
+  echo "==> Certificate creation failed."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1567
+  exit 1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1568
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1569
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1570
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1571
+cert_req() {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1572
+if openssl req -new -nodes -out req.pem \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1573
+	-keyout /var/qmail/control/servercert.pem; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1574
+  chmod 640 /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1575
+  chown qmaild.qmail /var/qmail/control/servercert.pem
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1576
+  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
  1577
+  cat << EOF
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1578
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1579
+==> Process done.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1580
+==> 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
  1581
+==> cat signed_req.pem >> /var/qmail/control/servercert.pem
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
+EOF
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1584
+else 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1585
+  echo "==> Certificate creation failed."
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1586
+  exit 1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1587
+fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1588
+}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1589
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1590
+case "$1" in 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1591
+  -h|--help)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1592
+    cat << EOF
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1593
+    
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1594
+This script creates SSL certificates to use with qmail.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1595
+Options :
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1596
+ -h --help    This help screen
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1597
+ -r --req     Creates a certificate verification request to 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1598
+              send to your CA.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1599
+EOF
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
+  -r|--req)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1602
+    cert_req
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1603
+  ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1604
+  *)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1605
+    cert
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1606
+  ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1607
+esac
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
diff --git a/source/dietlibc/diet-qmail/pop3d_log_run b/source/dietlibc/diet-qmail/pop3d_log_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1610
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1611
index 0000000..941cde1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1612
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1613
+++ b/source/dietlibc/diet-qmail/pop3d_log_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1614
@@ -0,0 +1,20 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1615
+#!/bin/sh
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
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1618
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1619
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1620
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1621
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1622
+# Log size rotate size.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1623
+LOG_SIZE="1048576"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1624
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1625
+# Number of logs to keep.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1626
+LOGS="5"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1627
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1628
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1629
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1630
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1631
+exec /usr/bin/setuidgid qmaill \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1632
+  /usr/bin/multilog t \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1633
+  n${LOGS} s${LOG_SIZE} \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1634
+  /var/log/qmail/pop3d 2>&1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1635
diff --git a/source/dietlibc/diet-qmail/pop3d_run b/source/dietlibc/diet-qmail/pop3d_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1636
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1637
index 0000000..a61f0cd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1638
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1639
+++ b/source/dietlibc/diet-qmail/pop3d_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1640
@@ -0,0 +1,33 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1641
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1642
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1643
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1644
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1645
+# during updates
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
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1648
+# Password checking program (ie. checkpasswd, vpopmail).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1649
+PASSPROG=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1650
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1651
+# FQDN as set in /var/qmail/control/me
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1652
+LOCAL=`head -1 /var/qmail/control/me` 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1653
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1654
+# Maximum memory qmail-pop3d is allowed to use.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1655
+MAX_MEM="2000000"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1656
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1657
+# Maximum allowed concurrent connections.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1658
+MAX_CON="30" 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1659
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1660
+# Relay control.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1661
+TCP_CDB="/etc/tcp.pop3.cdb"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1662
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1663
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1664
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1665
+POPUP="/var/qmail/bin/qmail-popup"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1666
+POP3D="/var/qmail/bin/qmail-pop3d"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1667
+PORT="110"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1668
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1669
+exec /usr/bin/softlimit -m $MAX_MEM \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1670
+  /usr/bin/tcpserver -H -l $LOCAL \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1671
+  -v -x $TCP_CDB \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1672
+  -c $MAX_CON -R 0 $PORT \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1673
+  $POPUP $LOCAL $PASSPROG $POP3D Maildir 2>&1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1674
diff --git a/source/dietlibc/diet-qmail/qmail-1.03.errno.patch b/source/dietlibc/diet-qmail/qmail-1.03.errno.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1675
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1676
index 0000000..75e0b7b
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1677
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1678
+++ b/source/dietlibc/diet-qmail/qmail-1.03.errno.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1679
@@ -0,0 +1,47 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1680
+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
  1681
+--- 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
  1682
++++ 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
  1683
+@@ -1,6 +1,5 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1684
+ #include <sys/types.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1685
+ #include <errno.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1686
+-extern int errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1687
+ #include "cdb.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1688
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1689
+ #ifndef SEEK_SET
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1690
+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
  1691
+--- 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
  1692
++++ 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
  1693
+@@ -7,8 +7,6 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1694
+ #include <errno.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1695
+ extern int res_query();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1696
+ extern int res_search();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1697
+-extern int errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1698
+-extern int h_errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1699
+ #include "ip.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1700
+ #include "ipalloc.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1701
+ #include "fmt.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1702
+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
  1703
+--- 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
  1704
++++ 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
  1705
+@@ -3,8 +3,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1706
+ error \- syscall error codes
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1707
+ .SH SYNTAX
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1708
+ .B #include <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 \fBerrno\fP;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1711
++.B #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 \fBerror_intr\fP;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1714
+ .br
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1715
+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
  1716
+--- 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
  1717
++++ 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
  1718
+@@ -1,7 +1,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1719
+ #ifndef ERROR_H
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1720
+ #define ERROR_H
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1721
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1722
+-extern int errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1723
++#include <errno.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1724
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1725
+ extern int error_intr;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1726
+ extern int error_nomem;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1727
diff --git a/source/dietlibc/diet-qmail/qmail-dietlibc.patch b/source/dietlibc/diet-qmail/qmail-dietlibc.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1728
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1729
index 0000000..52e404c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1730
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1731
+++ b/source/dietlibc/diet-qmail/qmail-dietlibc.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1732
@@ -0,0 +1,40 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1733
+dietlibc compile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1734
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1735
+diff -r df48dd6b95fa conf-cc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1736
+--- 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
  1737
++++ 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
  1738
+@@ -1,3 +1,3 @@ cc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1739
+-cc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1740
++diet gcc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1741
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1742
+ This will be used to compile .c files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1743
+diff -r df48dd6b95fa conf-ld
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1744
+--- 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
  1745
++++ 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
  1746
+@@ -1,3 +1,3 @@ cc -s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1747
+-cc -s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1748
++diet gcc -s -static
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1749
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1750
+ 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
  1751
+diff -r df48dd6b95fa predate.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1752
+--- 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
  1753
++++ 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
  1754
+@@ -8,7 +8,6 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1755
+ #include "strerr.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1756
+ #include "substdio.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1757
+ #include "subfd.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1758
+-#include "readwrite.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1759
+ #include "exit.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1760
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1761
+ #define FATAL "predate: fatal: "
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1762
+diff -r df48dd6b95fa qbiff.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1763
+--- 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
  1764
++++ 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
  1765
+@@ -8,7 +8,6 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1766
+ #define UTMP_FILE "/etc/utmp"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1767
+ #endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1768
+ #endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1769
+-#include "readwrite.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1770
+ #include "stralloc.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1771
+ #include "substdio.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1772
+ #include "subfd.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1773
diff --git a/source/dietlibc/diet-qmail/qmail-smtpd.spam.patch b/source/dietlibc/diet-qmail/qmail-smtpd.spam.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1774
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1775
index 0000000..5ef6b6e
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1776
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1777
+++ b/source/dietlibc/diet-qmail/qmail-smtpd.spam.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1778
@@ -0,0 +1,74 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1779
+stika.net antispam
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1780
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1781
+diff -r 72430e923db2 qmail-smtpd.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1782
+--- 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
  1783
++++ 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
  1784
+@@ -31,6 +31,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1785
+ #define BMCHECK_BMT 2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1786
+ #define BMCHECK_BMTNR 3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1787
+ #define BMCHECK_BHELO 4
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1788
++#define BMCHECK_GMF 5	// 20041202 tz - goodmailfrom functionality
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1789
+     
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
+ #define MAXHOPS 100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1792
+@@ -108,6 +109,9 @@ int bmfok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1793
+ int bmfok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1794
+ stralloc bmf = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1795
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1796
++int gmfok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1797
++stralloc gmf = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1798
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1799
+ int bmfnrok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1800
+ stralloc bmfnr = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1801
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1802
+@@ -140,6 +144,9 @@ void setup()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1803
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1804
+   bmfok = control_readfile(&bmf,"control/badmailfrom",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1805
+   if (bmfok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1806
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1807
++  gmfok = control_readfile(&gmf,"control/goodmailfrom",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1808
++  if (gmfok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1809
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1810
+   bmfnrok = control_readfile(&bmfnr,"control/badmailfromnorelay",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1811
+   if (bmfnrok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1812
+@@ -247,6 +254,8 @@ int bmcheck(which) int which;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1813
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1814
+   if (which == BMCHECK_BMF) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1815
+     if (!stralloc_copy(&bmb,&bmf)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1816
++  } else if (which == BMCHECK_GMF) {		// 20041202 tz - goodmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1817
++    if (!stralloc_copy(&bmb,&gmf)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1818
+   } else if (which == BMCHECK_BMFNR) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1819
+     if (!stralloc_copy(&bmb,&bmfnr)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1820
+   } else if (which == BMCHECK_BMT) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1821
+@@ -304,6 +313,7 @@ int flagbarfbhelo;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1822
+ int flagbarfbhelo;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1823
+ stralloc mailfrom = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1824
+ stralloc rcptto = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1825
++int senderallowed = 0;	/* 20021121 tz - our anti-spam */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1826
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1827
+ void smtp_helo(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1828
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1829
+@@ -327,6 +337,7 @@ void smtp_mail(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1830
+   if (!addrparse(arg)) { err_syntax(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1831
+   flagbarfbmf = 0; /* bmcheck is skipped for empty envelope senders */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1832
+   if ((bmfok) && (addr.len != 1)) flagbarfbmf = bmcheck(BMCHECK_BMF);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1833
++  if (flagbarfbmf && gmfok) flagbarfbmf = !bmcheck(BMCHECK_GMF);	// 20041202 tz - goodmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1834
+   if ((!flagbarfbmf) && (bmfnrok) && (addr.len != 1) && (!relayclient)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1835
+     flagbarfbmf = bmcheck(BMCHECK_BMFNR);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1836
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1837
+@@ -334,6 +345,7 @@ void smtp_mail(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1838
+   if (!stralloc_copys(&rcptto,"")) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1839
+   if (!stralloc_copys(&mailfrom,addr.s)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1840
+   if (!stralloc_0(&mailfrom)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1841
++  senderallowed = addrallowed();			/* 20021121 tz - our anti-spam */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1842
+   out("250 ok\r\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1843
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1844
+ void smtp_rcpt(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1845
+@@ -377,6 +389,7 @@ void smtp_rcpt(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1846
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1847
+   else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1848
+     if (!addrallowed()) { err_nogateway(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1849
++  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
  1850
+   if (!stralloc_cats(&rcptto,"T")) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1851
+   if (!stralloc_cats(&rcptto,addr.s)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1852
+   if (!stralloc_0(&rcptto)) die_nomem();
28
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1853
diff --git a/source/dietlibc/diet-qmail/qmail.install b/source/dietlibc/diet-qmail/qmail.install
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1854
new file mode 100644
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1855
index 0000000..1fa4a33
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1856
--- /dev/null
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1857
+++ b/source/dietlibc/diet-qmail/qmail.install
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1858
@@ -0,0 +1,82 @@
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1859
+post_install() {
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1860
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1861
+  # add required groups
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1862
+  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
  1863
+    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
  1864
+  fi
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1865
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1866
+  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
  1867
+    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
  1868
+  fi
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1869
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1870
+  # add required users
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1871
+  id alias &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1872
+    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
  1873
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1874
+  id qmaild &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1875
+    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
  1876
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1877
+  id qmaill &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1878
+    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
  1879
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1880
+  id qmailp &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1881
+    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
  1882
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1883
+  id qmailq &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1884
+    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
  1885
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1886
+  id qmailr &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1887
+    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
  1888
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1889
+  id qmails &>/dev/null || \
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1890
+    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
  1891
+  
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1892
+  # create FQDN file
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1893
+  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
  1894
+    /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
  1895
+    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
  1896
+  fi
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1897
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1898
+  # create aliases
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1899
+  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
  1900
+    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
  1901
+      touch ~alias/.qmail-${i}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1902
+      chmod 644 ~alias/.qmail-${i}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1903
+    fi
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1904
+  done
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
+  # create /var/qmail/queue
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1907
+  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
  1908
+  /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
  1909
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1910
+  cat << EOF
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1911
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1912
+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
  1913
+To setup qmail run:
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1914
+  
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1915
+  $ config-fast FQDN
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1916
+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
  1917
+Then :
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1918
+$ 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
  1919
+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
  1920
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1921
+EOF
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1922
+}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1923
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1924
+post_upgrade() {
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1925
+  post_install $1
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1926
+}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1927
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1928
+pre_remove() {
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1929
+  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
  1930
+    userdel ${user} &> /dev/null
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1931
+  done
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1932
+  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
  1933
+    groupdel ${group} &> /dev/null
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1934
+  done
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1935
+}
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1936
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1937
+op=$1
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1938
+shift
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1939
+
4733b8aac58d diet-qmail: merged w/ diet-qmail-fix-qmail.install
Tomas Zeman <tzeman@volny.cz>
parents: 1
diff changeset
  1940
+$op $*
1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1941
diff --git a/source/dietlibc/diet-qmail/qmail.profile b/source/dietlibc/diet-qmail/qmail.profile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1942
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1943
index 0000000..3b5fcd0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1944
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1945
+++ b/source/dietlibc/diet-qmail/qmail.profile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1946
@@ -0,0 +1,5 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1947
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1948
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1949
+export QMAILDIR=/var/qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1950
+export PATH=$PATH:$QMAILDIR/bin
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1951
+export MANPATH=$MANPATH:$QMAILDIR/man
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1952
diff --git a/source/dietlibc/diet-qmail/qmail.rc b/source/dietlibc/diet-qmail/qmail.rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1953
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1954
index 0000000..45e716e
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1955
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1956
+++ b/source/dietlibc/diet-qmail/qmail.rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1957
@@ -0,0 +1,167 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1958
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1959
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1960
+# qmailctl script (based on lifewithqmail)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1961
+# modified for ArchLinux
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1962
+#
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
+. /etc/rc.conf
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1965
+. /etc/rc.d/functions
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1966
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1967
+QMAILDUID=`id -u qmaild`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1968
+NOFILESGID=`id -g qmaild`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1969
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1970
+case "$1" in
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1971
+  start)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1972
+    stat_busy "Starting qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1973
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1974
+      if svok /service/qmail-${i} &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1975
+	echo -n "  ${i}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1976
+        svc -u /service/qmail-${i}
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
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1979
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1980
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1981
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1982
+      add_daemon qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1983
+      stat_done
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
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1986
+  stop)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1987
+    stat_busy "Stopping qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1988
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1989
+      if svok /service/qmail-${i} &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1990
+	echo -n "  ${i}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1991
+	svc -d /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1992
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1993
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1994
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1995
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1996
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1997
+      rm_daemon qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1998
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  1999
+    fi
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
+  stat)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2002
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2003
+      if svok /service/qmail-${i} &>/dev/null ; then	    
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2004
+        svstat /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2005
+        svstat /service/qmail-${i}/log
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2006
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2007
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2008
+    qmail-qstat
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
+  doqueue|alrm|flush)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2011
+    stat_busy "Sending ALRM signal to qmail-send"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2012
+    svc -a /service/qmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2013
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2014
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2015
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2016
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2017
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2018
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2019
+  queue)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2020
+    qmail-qstat
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2021
+    qmail-qread
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2022
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2023
+  reload|hup)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2024
+    stat_busy "Sending HUP signal to qmail-send"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2025
+    svc -h /service/qmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2026
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2027
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2028
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2029
+      stat_done
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
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2032
+  pause)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2033
+    stat_busy "Pausing qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2034
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2035
+      if svok /service/qmail-${i} &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2036
+	echo -n "  ${i}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2037
+        svc -p /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2038
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2039
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2040
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2041
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2042
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2043
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2044
+    fi 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2045
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2046
+  cont)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2047
+    stat_busy "Continuing qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2048
+    for i in send smtpd pop3d; do
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2049
+      if svok /service/qmail-${i} &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2050
+	echo -n "  ${i}"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2051
+        svc -c /service/qmail-${i}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2052
+      fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2053
+    done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2054
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2055
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2056
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2057
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2058
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2059
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2060
+  restart)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2061
+    stat_busy "Restarting qmail"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2062
+    if svok /service/qmail-smtpd &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2063
+      echo -n "  Stopping qmail-smtpd"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2064
+      svc -d /service/qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2065
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2066
+    if svok /service/qmail-send &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2067
+      echo -n "  Sending qmail-send SIGTERM and restarting"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2068
+      svc -t /service/qmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2069
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2070
+    if svok /service/qmail-pop3d &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2071
+      echo -n "  Restarting qmail-pop3d"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2072
+      svc -t /service/qmail-pop3d
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 svok /service/qmail-smtpd &>/dev/null ; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2075
+      echo -n "  Restarting qmail-smtpd"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2076
+      svc -u /service/qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2077
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2078
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2079
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2080
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2081
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2082
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2083
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2084
+  cdb)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2085
+    stat_busy "Reload qmail access control"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2086
+    if [ -f /etc/tcp.smtp ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2087
+      echo -n "  SMTP"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2088
+      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
  2089
+      chmod 644 /etc/tcp.smtp.cdb
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2090
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2091
+    if [ -f /etc/tcp.pop3 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2092
+      echo -n "  POP3"	    
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2093
+      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
  2094
+      chmod 644 /etc/tcp.pop3.cdb
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2095
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2096
+    if [ $? -gt 0 ]; then
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2097
+      stat_fail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2098
+    else
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2099
+      stat_done
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2100
+    fi
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2101
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2102
+  help)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2103
+    cat <<HELP
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2104
+   stop -- stops mail service (smtp connections refused, nothing goes out)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2105
+  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
  2106
+  pause -- temporarily stops mail service (connections accepted, nothing leaves)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2107
+   cont -- continues paused mail service
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2108
+   stat -- displays status of mail service
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2109
+    cdb -- rebuild the tcpserver cdb file for smtp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2110
+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
  2111
+doqueue -- sends qmail-send ALRM, scheduling queued messages for delivery
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2112
+ reload -- sends qmail-send HUP, rereading locals and virtualdomains
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2113
+  queue -- shows status of queue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2114
+   alrm -- same as doqueue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2115
+  flush -- same as doqueue
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2116
+    hup -- same as reload
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2117
+HELP
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2118
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2119
+  *)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2120
+    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
  2121
+    exit 1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2122
+    ;;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2123
+esac
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2124
+exit 0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2125
diff --git a/source/dietlibc/diet-qmail/qmailqueue-patch b/source/dietlibc/diet-qmail/qmailqueue-patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2126
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2127
index 0000000..ec304b6
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2128
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2129
+++ b/source/dietlibc/diet-qmail/qmailqueue-patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2130
@@ -0,0 +1,72 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2131
+From: Bruce Guenter <bguenter-djb-qmail@qcc.sk.ca>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2132
+To: qmail@list.cr.yp.to
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2133
+Subject: QMAILQUEUE patch for qmail-1.03
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2134
+Date: Mon, 25 Jan 1999 15:37:21 -0600
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2135
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2136
+Greetings.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2137
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2138
+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
  2139
+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
  2140
+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
  2141
+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
  2142
+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
  2143
+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
  2144
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2145
+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
  2146
+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
  2147
+/var/qmail is always done before exec'ing the program.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2148
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2149
+Does this look like a reasonable thing to do?
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2150
+-- 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2151
+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
  2152
+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
  2153
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2154
+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
  2155
+--- 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
  2156
++++ 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
  2157
+@@ -1483,12 +1483,12 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2158
+ 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
  2159
+ 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
  2160
+ 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
  2161
+-auto_split.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2162
++auto_split.o env.a
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2163
+ 	./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
  2164
+ 	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
  2165
+ 	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
  2166
+ 	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
  2167
+-	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
  2168
++	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
  2169
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2170
+ qmail-send.0: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2171
+ qmail-send.8
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2172
+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
  2173
+--- 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
  2174
++++ 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
  2175
+@@ -6,14 +6,25 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2176
+ #include "fd.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2177
+ #include "qmail.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2178
+ #include "auto_qmail.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2179
++#include "env.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2180
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2181
+-static char *binqqargs[2] = { "bin/qmail-queue", 0 } ;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2182
++static char *binqqargs[2] = { 0, 0 } ;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2183
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2184
++static void setup_qqargs()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2185
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2186
++  if(!binqqargs[0])
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2187
++    binqqargs[0] = env_get("QMAILQUEUE");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2188
++  if(!binqqargs[0])
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2189
++    binqqargs[0] = "bin/qmail-queue";
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
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2192
+ int qmail_open(qq)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2193
+ struct qmail *qq;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2194
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2195
+   int pim[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2196
+   int pie[2];
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2197
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2198
++  setup_qqargs();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2199
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2200
+   if (pipe(pim) == -1) return -1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2201
+   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
  2202
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2203
diff --git a/source/dietlibc/diet-qmail/qregex-20060423-qmail.patch b/source/dietlibc/diet-qmail/qregex-20060423-qmail.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2204
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2205
index 0000000..6d08258
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2206
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2207
+++ b/source/dietlibc/diet-qmail/qregex-20060423-qmail.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2208
@@ -0,0 +1,688 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2209
+Fixed qregex-20060423 (pristine is against netqmail)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2210
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2211
+diff -r 1510847ae5bf Makefile
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2212
+--- a/Makefile	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2213
++++ b/Makefile	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2214
+@@ -1534,16 +1534,16 @@ auto_split.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2215
+ 	./compile qmail-showctl.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2216
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2217
+ qmail-smtpd: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2218
+-load qmail-smtpd.o rcpthosts.o commands.o timeoutread.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2219
++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
  2220
+ 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
  2221
+ 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
  2222
+-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
  2223
++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
  2224
+ fs.a auto_qmail.o socket.lib
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2225
+-	./load qmail-smtpd rcpthosts.o commands.o timeoutread.o \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2226
++	./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
  2227
+ 	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
  2228
+ 	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
  2229
+ 	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
  2230
+-	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
  2231
++	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
  2232
+ 	socket.lib`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2233
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2234
+ qmail-smtpd.0: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2235
+@@ -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
  2236
+ 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
  2237
+ constmap.h stralloc.h gen_alloc.h rcpthosts.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2238
+ 	./compile rcpthosts.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2239
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2240
++qregex.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2241
++compile qregex.c qregex.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2242
++	./compile qregex.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2243
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2244
+ readsubdir.o: \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2245
+ 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
  2246
+diff -r 1510847ae5bf README.qregex
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2247
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2248
++++ 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
  2249
+@@ -0,0 +1,203 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2250
++QREGEX (v2) 20060423 - README April 23, 2006
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2251
++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
  2252
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2253
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2254
++OVERVIEW:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2255
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2256
++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
  2257
++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
  2258
++`mail from` (envelope sender), and `rcpt to` (envelope recipient) commands.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2259
++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
  2260
++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
  2261
++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
  2262
++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
  2263
++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
  2264
++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
  2265
++regulated against buffer overruns and the like.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2266
++See: http://cr.yp.to/qmail/guarantee.html
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2267
++
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
++FEATURES:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2270
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2271
++Features of qregex include:
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
++1. Performs pattern matching on envelope senders and envelope
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2274
++   recipients against REs in the badmailfrom and badmailto control
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2275
++   files. Two additional control files, badmailfromnorelay and
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2276
++   badmailtonorelay, are used for pattern matching when the 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2277
++   RELAYCLIENT environment variable is not set.
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
++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
  2280
++   NOBADHELO environment variable prevents the host name from being
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2281
++   compared to the patterns in the badhelo control file.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2282
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2283
++3. Matches to patterns are logged. Setting the LOGREGEX environment
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2284
++   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
  2285
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2286
++4. Matching is case insensitive.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2287
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2288
++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
  2289
++   compared to the patterns in the badmailfrom and badmailfromnorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2290
++   control files and is always accepted.
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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2293
++PLATFORMS:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2294
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2295
++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
  2296
++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
  2297
++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
  2298
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2299
++	- OpenBSD 3.x
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2300
++	- FreeBSD 4.x, 5.x
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2301
++	- Mandrake Linux 9.x
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2302
++	- SuSE Linux 8.x
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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2305
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2306
++INSTALLATION INSTRUCTIONS:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2307
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2308
++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
  2309
++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
  2310
++(For Solaris 8 users it is installed as 'gpatch')
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2311
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2312
++- If this is a new setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2313
++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
  2314
++"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
  2315
++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
  2316
++the section on the control files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2317
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2318
++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
  2319
++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
  2320
++"patch < /path/to/qregex-<version>.patch". Complete the netqmail installation
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2321
++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
  2322
++control files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2323
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2324
++- If this is an existing setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2325
++FIRST: create your control files (see below).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2326
++cd into your existing qmail or netqmail source directory. Run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2327
++"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
  2328
++./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
  2329
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2330
++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
  2331
++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
  2332
++source directory to 'qmail-smtpd'.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2333
++(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
  2334
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2335
++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
  2336
++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
  2337
++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
  2338
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2339
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2340
++LOGGING:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2341
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2342
++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
  2343
++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
  2344
++matched:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2345
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2346
++badhelo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2347
++qmail-smtpd: badhelo: <host> at <remote IP>
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
++badmailfrom and badmailfromnorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2350
++qmail-smtpd: badmailfrom: <sender address> at <remote IP>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2351
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2352
++badmailto and badmailtonorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2353
++qmail-smtpd: badmailto: <rcpt address> at <remote IP>
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
++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
  2356
++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
  2357
++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
  2358
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2359
++qmail-smtpd: badhelo: <host> at <remote IP> matches pattern: <regex>
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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2362
++CONTROL FILES:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2363
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2364
++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
  2365
++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
  2366
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2367
++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
  2368
++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
  2369
++recipient) smtp commands respectively.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2370
++The "control/badmailfromnorelay" and "control/badmailtonorelay" match against
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2371
++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
  2372
++is not set.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2373
++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
  2374
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2375
++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
  2376
++(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
  2377
++this might cause problems in certain setups.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2378
++        
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2379
++	Here's an example "badhelo" file.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2380
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2381
++	# block host strings with no dot (not a FQDN)
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
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2384
++	
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2385
++	An example "badmailfrom" file.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2386
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2387
++	# this will drop everything containing the string
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2388
++	# 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
  2389
++	bad\.domain\.com
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2390
++	# force users to fully qualify themselves
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2391
++	# (i.e. deny "user", accept "user@domain")
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2392
++	!@
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
++	And "badmailto" (a little more interesting)
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
++	# must not contain invalid characters, brakets or multiple @'s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2398
++	[!%#:*^(){}]
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2399
++	@.*@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2400
++	-----------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2401
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2402
++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
  2403
++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
  2404
++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
  2405
++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
  2406
++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
  2407
++example.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2408
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2409
++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
  2410
++are intended to address two specific scenarios.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2411
++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
  2412
++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
  2413
++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
  2414
++envelope sender.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2415
++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
  2416
++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
  2417
++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
  2418
++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
  2419
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2420
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2421
++INTERNALS:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2422
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2423
++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
  2424
++`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
  2425
++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
  2426
++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
  2427
++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
  2428
++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
  2429
++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
  2430
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2431
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2432
++CONTACT:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2433
++qregex is maintained by:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2434
++	Andrew St. Jean
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2435
++	andrew@arda.homeunix.net
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2436
++	www.arda.homeunix.net/store/qmail/
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2437
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2438
++Contributers to qregex:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2439
++	Jeremy Kitchen	
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2440
++	kitchen at scriptkitchen dot com
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2441
++	http://www.scriptkitchen.com/qmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2442
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2443
++	Alex Pleiner
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2444
++	alex@zeitform.de
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2445
++	zeitform Internet Dienste
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2446
++	http://www.zeitform.de/
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2447
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2448
++	Thanos Massias
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2449
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2450
++Original qregex patch written by:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2451
++	Evan Borgstrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2452
++	evan at unixpimps dot org
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2453
+diff -r 1510847ae5bf TARGETS
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2454
+--- a/TARGETS	Thu Nov 01 16:23:16 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2455
++++ b/TARGETS	Thu Nov 01 16:24:02 2007 +0100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2456
+@@ -252,6 +252,7 @@ qmail-qmtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2457
+ qmail-qmtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2458
+ qmail-smtpd.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2459
+ qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2460
++qregex.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2461
+ sendmail.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2462
+ sendmail
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2463
+ tcp-env.o
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2464
+diff -r 1510847ae5bf hier.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2465
+--- 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
  2466
++++ 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
  2467
+@@ -76,6 +76,7 @@ void hier()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2468
+   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
  2469
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2470
+   c(auto_qmail,"doc","FAQ",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2471
++  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
  2472
+   c(auto_qmail,"doc","UPGRADE",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2473
+   c(auto_qmail,"doc","SENDMAIL",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2474
+   c(auto_qmail,"doc","INSTALL",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2475
+diff -r 1510847ae5bf install-big.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2476
+--- 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
  2477
++++ 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
  2478
+@@ -76,6 +76,7 @@ void hier()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2479
+   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
  2480
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2481
+   c(auto_qmail,"doc","FAQ",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2482
++  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
  2483
+   c(auto_qmail,"doc","UPGRADE",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2484
+   c(auto_qmail,"doc","SENDMAIL",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2485
+   c(auto_qmail,"doc","INSTALL",auto_uido,auto_gidq,0644);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2486
+diff -r 1510847ae5bf qmail-control.9
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2487
+--- 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
  2488
++++ 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
  2489
+@@ -20,7 +20,11 @@ other hostname-related control files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2490
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2491
+ Comments are allowed
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2492
+ in
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2493
++.IR badhelo ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2494
+ .IR badmailfrom ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2495
++.IR badmailfromnorelay ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2496
++.IR badmailto ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2497
++.IR badmailtonorelay ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2498
+ .IR locals ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2499
+ .IR percenthack ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2500
+ .IR qmqpservers ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2501
+@@ -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
  2502
+ .ta 5c 10c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2503
+ control	default	used by
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2504
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2505
++.I badhelo	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2506
+ .I badmailfrom	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2507
++.I badmailfromnorelay	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2508
++.I badmailto	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2509
++.I badmailtonorelay	\fR(none)	\fRqmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2510
+ .I bouncefrom	\fRMAILER-DAEMON	\fRqmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2511
+ .I bouncehost	\fIme	\fRqmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2512
+ .I concurrencylocal	\fR10	\fRqmail-send
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2513
+diff -r 1510847ae5bf qmail-showctl.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2514
+--- 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
  2515
++++ 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
  2516
+@@ -214,7 +214,11 @@ void main()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2517
+     _exit(111);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2518
+   }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2519
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2520
+-  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
  2521
++  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
  2522
++  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
  2523
++  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
  2524
++  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
  2525
++  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
  2526
+   do_str("bouncefrom",0,"MAILER-DAEMON","Bounce user name is ");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2527
+   do_str("bouncehost",1,"bouncehost","Bounce host name is ");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2528
+   do_int("concurrencylocal","10","Local concurrency is ","");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2529
+@@ -267,7 +271,11 @@ void main()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2530
+     if (str_equal(d->d_name,"..")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2531
+     if (str_equal(d->d_name,"bouncefrom")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2532
+     if (str_equal(d->d_name,"bouncehost")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2533
++    if (str_equal(d->d_name,"badhelo")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2534
+     if (str_equal(d->d_name,"badmailfrom")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2535
++    if (str_equal(d->d_name,"badmailfromnorelay")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2536
++    if (str_equal(d->d_name,"badmailto")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2537
++    if (str_equal(d->d_name,"badmailtonorelay")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2538
+     if (str_equal(d->d_name,"bouncefrom")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2539
+     if (str_equal(d->d_name,"bouncehost")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2540
+     if (str_equal(d->d_name,"concurrencylocal")) continue;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2541
+diff -r 1510847ae5bf qmail-smtpd.8
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2542
+--- 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
  2543
++++ 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
  2544
+@@ -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
  2545
+ even though such messages violate the SMTP protocol.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2546
+ .SH "CONTROL FILES"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2547
+ .TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2548
++.I badhelo
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2549
++Unacceptable HELO/EHLO host names.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2550
++.B qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2551
++will reject every recipient address for a message if
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2552
++the host name is listed in, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2553
++or matches a POSIX regular expression pattern listed in,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2554
++.IR badhelo .
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2555
++If the 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2556
++.B NOBADHELO 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2557
++environment variable is set, then the contents of 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2558
++.IR badhelo 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2559
++will be ignored.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2560
++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
  2561
++.TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2562
+ .I badmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2563
+ Unacceptable envelope sender addresses.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2564
+ .B qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2565
+ will reject every recipient address for a message
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2566
+-if the envelope sender address is listed in
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2567
++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
  2568
++pattern listed in,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2569
+ .IR badmailfrom .
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2570
+ A line in
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2571
+ .I badmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2572
+@@ -49,6 +64,32 @@ may be of the form
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2573
+ .BR @\fIhost ,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2574
+ meaning every address at
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2575
+ .IR host .
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2576
++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
  2577
++.TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2578
++.I badmailfromnorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2579
++Functions the same as the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2580
++.IR badmailfrom
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2581
++control file but is read only if the 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2582
++.B RELAYCLIENT 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2583
++environment variable is not set.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2584
++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
  2585
++.TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2586
++.I badmailto
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2587
++Unacceptable envelope recipient addresses.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2588
++.B qmail-smtpd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2589
++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
  2590
++is listed in,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2591
++or matches a POSIX regular expression pattern listed in,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2592
++.IR badmailto .
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2593
++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
  2594
++.TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2595
++.I badmailtonorelay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2596
++Functions the same as the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2597
++.IR badmailto
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2598
++control file but is read only if the
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2599
++.B RELAYCLIENT
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2600
++environment variable is not set.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2601
++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
  2602
+ .TP 5
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2603
+ .I databytes
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2604
+ Maximum number of bytes allowed in a message,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2605
+diff -r 1510847ae5bf qmail-smtpd.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2606
+--- 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
  2607
++++ 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
  2608
+@@ -23,6 +23,15 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2609
+ #include "timeoutread.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2610
+ #include "timeoutwrite.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2611
+ #include "commands.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2612
++#include "qregex.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2613
++#include "strerr.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2614
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2615
++#define BMCHECK_BMF 0
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2616
++#define BMCHECK_BMFNR 1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2617
++#define BMCHECK_BMT 2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2618
++#define BMCHECK_BMTNR 3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2619
++#define BMCHECK_BHELO 4
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
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2622
+ #define MAXHOPS 100
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2623
+ unsigned int databytes = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2624
+@@ -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
  2625
+ 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
  2626
+ 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
  2627
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2628
+-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
  2629
++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
  2630
++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
  2631
++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
  2632
+ 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
  2633
+ 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
  2634
+ 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
  2635
+@@ -93,9 +104,24 @@ void dohelo(arg) char *arg; {
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
+ int liphostok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2638
+ stralloc liphost = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2639
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2640
+ int bmfok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2641
+ stralloc bmf = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2642
+-struct constmap mapbmf;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2643
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2644
++int bmfnrok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2645
++stralloc bmfnr = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2646
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2647
++int bmtok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2648
++stralloc bmt = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2649
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2650
++int bmtnrok = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2651
++stralloc bmtnr = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2652
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2653
++int bhelook = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2654
++stralloc bhelo = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2655
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2656
++int logregex = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2657
++stralloc matchedregex = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2658
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2659
+ void setup()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2660
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2661
+@@ -114,8 +140,21 @@ void setup()
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
+   bmfok = control_readfile(&bmf,"control/badmailfrom",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2664
+   if (bmfok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2665
+-  if (bmfok)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2666
+-    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
  2667
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2668
++  bmfnrok = control_readfile(&bmfnr,"control/badmailfromnorelay",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2669
++  if (bmfnrok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2670
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2671
++  bmtok = control_readfile(&bmt,"control/badmailto",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2672
++  if (bmtok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2673
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2674
++  bmtnrok = control_readfile(&bmtnr,"control/badmailtonorelay",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2675
++  if (bmtnrok == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2676
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2677
++  bhelook = control_readfile(&bhelo, "control/badhelo",0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2678
++  if (bhelook == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2679
++  if (env_get("NOBADHELO")) bhelook = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2680
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2681
++  if (env_get("LOGREGEX")) logregex = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2682
+  
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2683
+   if (control_readint(&databytes,"control/databytes") == -1) die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2684
+   x = env_get("DATABYTES");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2685
+@@ -197,14 +236,56 @@ char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2686
+   return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2687
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2688
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2689
+-int bmfcheck()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2690
+-{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2691
+-  int j;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2692
+-  if (!bmfok) return 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2693
+-  if (constmap(&mapbmf,addr.s,addr.len - 1)) return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2694
+-  j = byte_rchr(addr.s,addr.len,'@');
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2695
+-  if (j < addr.len)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2696
+-    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
  2697
++int bmcheck(which) int which;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2698
++{
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2699
++  int i = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2700
++  int j = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2701
++  int x = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2702
++  int negate = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2703
++  static stralloc bmb = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2704
++  static stralloc curregex = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2705
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2706
++  if (which == BMCHECK_BMF) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2707
++    if (!stralloc_copy(&bmb,&bmf)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2708
++  } else if (which == BMCHECK_BMFNR) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2709
++    if (!stralloc_copy(&bmb,&bmfnr)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2710
++  } else if (which == BMCHECK_BMT) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2711
++    if (!stralloc_copy(&bmb,&bmt)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2712
++  } else if (which == BMCHECK_BMTNR) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2713
++    if (!stralloc_copy(&bmb,&bmtnr)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2714
++  } else if (which == BMCHECK_BHELO) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2715
++    if (!stralloc_copy(&bmb,&bhelo)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2716
++  } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2717
++    die_control();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2718
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2719
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2720
++  while (j < bmb.len) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2721
++    i = j;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2722
++    while ((bmb.s[i] != '\0') && (i < bmb.len)) i++;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2723
++    if (bmb.s[j] == '!') {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2724
++      negate = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2725
++      j++;
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
++    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
  2728
++    if (!stralloc_0(&curregex)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2729
++    if (which == BMCHECK_BHELO) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2730
++      x = matchregex(helohost.s, curregex.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2731
++    } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2732
++      x = matchregex(addr.s, curregex.s);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2733
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2734
++    if ((negate) && (x == 0)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2735
++      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
  2736
++      if (!stralloc_0(&matchedregex)) die_nomem();      
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2737
++      return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2738
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2739
++    if (!(negate) && (x > 0)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2740
++      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
  2741
++      if (!stralloc_0(&matchedregex)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2742
++      return 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2743
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2744
++    j = i + 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2745
++    negate = 0;
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
+   return 0;
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
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2750
+@@ -218,7 +299,9 @@ int addrallowed()
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
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2753
+ int seenmail = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2754
+-int flagbarf; /* defined if seenmail */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2755
++int flagbarfbmf; /* defined if seenmail */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2756
++int flagbarfbmt;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2757
++int flagbarfbhelo;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2758
+ stralloc mailfrom = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2759
+ stralloc rcptto = {0};
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2760
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2761
+@@ -226,11 +309,13 @@ void smtp_helo(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2762
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2763
+   smtp_greet("250 "); out("\r\n");
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2764
+   seenmail = 0; dohelo(arg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2765
++  if (bhelook) flagbarfbhelo = bmcheck(BMCHECK_BHELO);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2766
+ }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2767
+ void smtp_ehlo(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2768
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2769
+   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
  2770
+   seenmail = 0; dohelo(arg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2771
++  if (bhelook) flagbarfbhelo = bmcheck(BMCHECK_BHELO);
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
+ void smtp_rset()
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2774
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2775
+@@ -240,7 +325,11 @@ void smtp_mail(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2776
+ void smtp_mail(arg) char *arg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2777
+ {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2778
+   if (!addrparse(arg)) { err_syntax(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2779
+-  flagbarf = bmfcheck();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2780
++  flagbarfbmf = 0; /* bmcheck is skipped for empty envelope senders */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2781
++  if ((bmfok) && (addr.len != 1)) flagbarfbmf = bmcheck(BMCHECK_BMF);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2782
++  if ((!flagbarfbmf) && (bmfnrok) && (addr.len != 1) && (!relayclient)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2783
++    flagbarfbmf = bmcheck(BMCHECK_BMFNR);
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
+   seenmail = 1;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2786
+   if (!stralloc_copys(&rcptto,"")) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2787
+   if (!stralloc_copys(&mailfrom,addr.s)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2788
+@@ -250,7 +339,37 @@ void smtp_rcpt(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2789
+ void smtp_rcpt(arg) char *arg; {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2790
+   if (!seenmail) { err_wantmail(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2791
+   if (!addrparse(arg)) { err_syntax(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2792
+-  if (flagbarf) { err_bmf(); return; }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2793
++  if (flagbarfbhelo) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2794
++    if (logregex) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2795
++      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
  2796
++    } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2797
++      strerr_warn4("qmail-smtpd: badhelo: <",helohost.s,"> at ",remoteip,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2798
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2799
++    err_bhelo();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2800
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2801
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2802
++  if (flagbarfbmf) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2803
++    if (logregex) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2804
++      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
  2805
++    } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2806
++      strerr_warn4("qmail-smtpd: badmailfrom: <",mailfrom.s,"> at ",remoteip,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2807
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2808
++    err_bmf();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2809
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2810
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2811
++  if (bmtok) flagbarfbmt = bmcheck(BMCHECK_BMT);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2812
++  if ((!flagbarfbmt) && (bmtnrok) && (!relayclient)) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2813
++    flagbarfbmt = bmcheck(BMCHECK_BMTNR);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2814
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2815
++  if (flagbarfbmt) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2816
++    if (logregex) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2817
++      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
  2818
++    } else {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2819
++      strerr_warn4("qmail-smtpd: badmailto: <",addr.s,"> at ",remoteip,0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2820
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2821
++    err_bmt();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2822
++    return;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2823
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2824
+   if (relayclient) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2825
+     --addr.len;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2826
+     if (!stralloc_cats(&addr,relayclient)) die_nomem();
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2827
+diff -r 1510847ae5bf qregex.c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2828
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2829
++++ 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
  2830
+@@ -0,0 +1,57 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2831
++/*
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2832
++ * qregex (v2)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2833
++ * $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
  2834
++ *
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2835
++ * Author  : Evan Borgstrom (evan at unixpimps dot org)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2836
++ * Created : 2001/12/14 23:08:16
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2837
++ * Modified: $Date: 2001/12/28 07:05:21 $
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2838
++ * Revision: $Revision: 2.1 $
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
++ * 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
  2841
++ * It logs to the maillog
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2842
++ * See the qregex-readme file included with this tarball.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2843
++ * 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
  2844
++ *  http://www.unixpimps.org/software/qregex
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
++ * qregex.c is released under a BSD style copyright.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2847
++ * See http://www.unixpimps.org/software/qregex/copyright.html
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2848
++ *
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2849
++ * 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
  2850
++ *       the qmail code and that described at the following URL.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2851
++ *       http://cr.yp.to/qmail/guarantee.html
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2852
++ * 
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
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2855
++#include <sys/types.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2856
++#include <regex.h>
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2857
++#include "qregex.h"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2858
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2859
++#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
  2860
++#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
  2861
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2862
++int matchregex(char *text, char *regex) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2863
++  regex_t qreg;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2864
++  int retval = 0;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2865
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2866
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2867
++  /* build the regex */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2868
++  if ((retval = REGCOMP(qreg, regex)) != 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2869
++    regfree(&qreg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2870
++    return(-retval);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2871
++  }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2872
++
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2873
++  /* execute the regex */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2874
++  if ((retval = REGEXEC(qreg, text)) != 0) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2875
++    /* did we just not match anything? */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2876
++    if (retval == REG_NOMATCH) {
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2877
++      regfree(&qreg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2878
++      return(0);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2879
++    }
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2880
++    regfree(&qreg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2881
++    return(-retval);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2882
++  }
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
++  /* signal the match */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2885
++  regfree(&qreg);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2886
++  return(1);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2887
++}
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2888
+diff -r 1510847ae5bf qregex.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2889
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2890
++++ 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
  2891
+@@ -0,0 +1,5 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2892
++/* simple header file for the matchregex prototype */
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2893
++#ifndef _QREGEX_H_
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2894
++#define _QREGEX_H_
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2895
++int matchregex(char *text, char *regex);
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2896
++#endif
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2897
diff --git a/source/dietlibc/diet-qmail/queue-fix-dietlibc.patch b/source/dietlibc/diet-qmail/queue-fix-dietlibc.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2898
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2899
index 0000000..6d967ed
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2900
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2901
+++ b/source/dietlibc/diet-qmail/queue-fix-dietlibc.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2902
@@ -0,0 +1,18 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2903
+Compile with dietlibc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2904
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2905
+diff -r 6becbe0d87fa conf-cc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2906
+--- 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
  2907
++++ 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
  2908
+@@ -1,3 +1,3 @@ gcc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2909
+-gcc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2910
++diet gcc -O2
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2911
+ 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2912
+ This will be used to compile .c files.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2913
+diff -r 6becbe0d87fa conf-ld
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2914
+--- 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
  2915
++++ 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
  2916
+@@ -1,3 +1,3 @@ gcc -s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2917
+-gcc -s
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2918
++diet gcc -s -static
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
+ 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
  2921
diff --git a/source/dietlibc/diet-qmail/queue-fix-errno.patch b/source/dietlibc/diet-qmail/queue-fix-errno.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2922
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2923
index 0000000..72f9fcd
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2924
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2925
+++ b/source/dietlibc/diet-qmail/queue-fix-errno.patch
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2926
@@ -0,0 +1,14 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2927
+errno fix
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2928
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2929
+diff -r c045670f36e9 error.h
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2930
+--- 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
  2931
++++ 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
  2932
+@@ -1,7 +1,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2933
+ #ifndef ERROR_H
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2934
+ #define ERROR_H
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
+-extern int errno;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2937
++#include <errno.h>
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
+ extern int error_intr;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2940
+ extern int error_nomem;
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2941
diff --git a/source/dietlibc/diet-qmail/rc b/source/dietlibc/diet-qmail/rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2942
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2943
index 0000000..0f82f9e
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2944
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2945
+++ b/source/dietlibc/diet-qmail/rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2946
@@ -0,0 +1,7 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2947
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2948
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2949
+# Using stdout for logging
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2950
+# 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
  2951
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2952
+exec env - PATH="/var/qmail/bin:$PATH" \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2953
+  qmail-start "`cat /var/qmail/control/defaultdelivery`"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2954
diff --git a/source/dietlibc/diet-qmail/send_log_run b/source/dietlibc/diet-qmail/send_log_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2955
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2956
index 0000000..0c4fd21
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2957
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2958
+++ b/source/dietlibc/diet-qmail/send_log_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2959
@@ -0,0 +1,20 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2960
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2961
+# 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2962
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2963
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2964
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2965
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2966
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2967
+# Log size rotate size.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2968
+LOG_SIZE="1048576"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2969
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2970
+# Number of logs to keep.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2971
+LOGS="5"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2972
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2973
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2974
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2975
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2976
+exec /usr/bin/setuidgid qmaill \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2977
+  /usr/bin/multilog t \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2978
+  n${LOGS} s${LOG_SIZE} \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2979
+  /var/log/qmail/send 2>&1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2980
diff --git a/source/dietlibc/diet-qmail/send_run b/source/dietlibc/diet-qmail/send_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2981
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2982
index 0000000..1724b2c
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2983
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2984
+++ b/source/dietlibc/diet-qmail/send_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2985
@@ -0,0 +1,8 @@
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
+exec /var/qmail/rc
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2994
diff --git a/source/dietlibc/diet-qmail/smtpd_log_run b/source/dietlibc/diet-qmail/smtpd_log_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2995
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2996
index 0000000..68027b6
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2997
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2998
+++ b/source/dietlibc/diet-qmail/smtpd_log_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  2999
@@ -0,0 +1,20 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3000
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3001
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3002
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3003
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3004
+# during updates
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
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3007
+# Log size rotate size.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3008
+LOG_SIZE="1048576"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3009
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3010
+# Number of logs to keep.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3011
+LOGS="5"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3012
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3013
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3014
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3015
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3016
+exec /usr/bin/setuidgid qmaill \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3017
+  /usr/bin/multilog t \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3018
+  n${LOGS} s${LOG_SIZE} \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3019
+  /var/log/qmail/smtpd 2>&1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3020
diff --git a/source/dietlibc/diet-qmail/smtpd_run b/source/dietlibc/diet-qmail/smtpd_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3021
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3022
index 0000000..ffd4451
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3023
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3024
+++ b/source/dietlibc/diet-qmail/smtpd_run
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3025
@@ -0,0 +1,45 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3026
+#!/bin/sh
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3027
+# 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3028
+# Edit this file to match your setup.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3029
+# NOTE: This file is automatically backed-up by pacman, 
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3030
+# during updates
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3031
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3032
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3033
+# uid & gid to run qmail-smtpd as.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3034
+# optionally `id -u vpopmail' for vpopmail.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3035
+QMAILDUID=`id -u qmaild`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3036
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3037
+# optionally `id -g vpopmail` for vpopmail.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3038
+NOFILESGID=`id -g qmaild`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3039
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3040
+# Password checking program (ie. checkpasswd, vpopmail).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3041
+PASSPROG=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3042
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3043
+# FQDN as set in /var/qmail/control/me
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3044
+LOCAL=`head -1 /var/qmail/control/me`
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
+# Maximum memory qmail-smtpd is allowed to use.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3047
+MAX_MEM="2000000"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3048
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3049
+# Maximum allowed concurrent connections.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3050
+MAX_CON=`cat /var/qmail/control/concurrencyincoming`
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3051
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3052
+# Relay control.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3053
+TCP_CDB="/etc/tcp.smtp.cdb"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3054
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3055
+# Relay denied message for open relays.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3056
+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
  3057
+
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3058
+# Don't change from this point on, unless
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3059
+# you really know what you're doing :).
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3060
+SMTPD="/var/qmail/bin/qmail-smtpd"
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3061
+PORT="25"
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
+exec /usr/bin/softlimit -m $MAX_MEM \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3064
+  /usr/bin/tcpserver -H -l $LOCAL \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3065
+  -v -x $TCP_CDB \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3066
+  -c $MAX_CON -R 0 $PORT \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3067
+  -u $QMAILUID -g $NOFILESGID \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3068
+  /usr/bin/rblsmtpd -b -C \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3069
+  -r $RELAY_DENIED -t 5 \
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3070
+  $SMTPD $PASSPROG /bin/true 2>&1
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3071
diff --git a/source/dietlibc/diet-qmail/tcp.pop3 b/source/dietlibc/diet-qmail/tcp.pop3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3072
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3073
index 0000000..4437128
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3074
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3075
+++ b/source/dietlibc/diet-qmail/tcp.pop3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3076
@@ -0,0 +1,6 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3077
+# to update the database after changing this file, run:
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3078
+# /etc/rc.d/qmail cdb
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3079
+# Allow any client to connect to us via POP3
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3080
+# 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
  3081
+# you can add their ips here to block them out
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3082
+:allow
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3083
diff --git a/source/dietlibc/diet-qmail/tcp.smtp b/source/dietlibc/diet-qmail/tcp.smtp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3084
new file mode 100644
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3085
index 0000000..a5faa17
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3086
--- /dev/null
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3087
+++ b/source/dietlibc/diet-qmail/tcp.smtp
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3088
@@ -0,0 +1,81 @@
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3089
+#------------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3090
+# 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
  3091
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3092
+# 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
  3093
+# 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
  3094
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3095
+# 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
  3096
+# 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
  3097
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3098
+# 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
  3099
+# allowed to relay mail through our server
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3100
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3101
+# 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
  3102
+# will not be able to relay mail through our server
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3103
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3104
+# 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
  3105
+# not be checked against any of the RBL databases
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
+# 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
  3108
+# 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
  3109
+# text as a 4xx temp error message
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3110
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3111
+# 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
  3112
+# 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
  3113
+# text as a 5xx perm error message
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3114
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3115
+# 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
  3116
+# 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
  3117
+# 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
  3118
+# in smtpd supervise script)
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
+#-----------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3121
+# HERE ARE THE RULES! :
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3122
+#-----------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3123
+# BYPASS OPEN RELAY CHECKING FOR THESE IPS :
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3124
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3125
+# 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
  3126
+# 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
  3127
+# 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
  3128
+# 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
  3129
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3130
+# 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
  3131
+111.111.111.111:allow,RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3132
+## 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
  3133
+222.222.222.222:allow,RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3134
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3135
+#-----------------------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3136
+# DONT ALLOW THESE IPS TO SEND MAIL TO US :
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3137
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3138
+# mailXX.offermail.net connecting regularly and sending invalid
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3139
+# format messages causing exit with status 256 (bare linefeed normally)
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3140
+# entry added 15/12/2001
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3141
+# 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
  3142
+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
  3143
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3144
+# heaps of spam from replyto of *@freeamateurhotties.com dec2001
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3145
+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
  3146
+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
  3147
+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
  3148
+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
  3149
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3150
+#-----------------------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3151
+# ALLOW THESE IPS TO RELAY MAIL THROUGH OUR SERVER
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3152
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3153
+# 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
  3154
+# and we wont bother doing any RBL checking.
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3155
+#123.123.123.:allow,RELAYCLIENT="",RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3156
+#123.111.111.:allow,RELAYCLIENT="",RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3157
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3158
+# Connections from localhost are allowed to relay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3159
+# (because the WebMail server runs on localhost),
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3160
+# 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
  3161
+127.0.0.1:allow,RELAYCLIENT="",RBLSMTPD=""
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3162
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3163
+#-----------------------------------------------------------------
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3164
+# ALLOW EVERYONE ELSE TO SEND US MAIL
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3165
+#
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3166
+# Everyone else can make connections to our server,
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3167
+# but not allowed to relay
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3168
+# RBL lookups are performed
32f160a66da4 Imported patches of my packages
Tomas Zeman <tzeman@volny.cz>
parents:
diff changeset
  3169
+:allow