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