Qmail dwie sprawy

Stacho Pal stacho w venco.com.pl
Pią, 15 Cze 2001, 20:18:28 CEST


Witam!
Wlasnie zainstalowalem sobie nowego qmaila *-41.*
i w logach zaczynaja sie pojawiac nastepujace komunikaty:
========
orion qmail: 992627648.929195 delivery 10: deferral:
 TLS_found_no_client_cert_in_control/cert.pem/
========
Oczywiscie poczta nie dochodzi, dotyczy to (narazie) dwoch
serverow, do innych dostarczana jest bez problemow.
Jak temu mozna zaradzic???

Przekompilowalem sobie qmaila z PLD z patchem na 'dirtychars'.
Dzieki temu mozna bezblednie przejsc test na www.abuse.net/relay.html
Pozwalam sobie go ponizej dolaczyc, jest dosc krotki.
-------------
pzdr
Stacho Pal
=============
--- qmail-smtpd.c	Fri Jun 15 18:25:42 2001
+++ qmail-smtpdp.c	Fri Jun 15 19:35:55 2001
@@ -118,7 +118,7 @@
 void err_noop() { out("250 ok\r\n"); }
 void err_vrfy() { out("252 send some mail, i'll try my best\r\n"); }
 void err_qqt() { out("451 qqt failure (#4.3.0)\r\n"); }
-
+void err_format() { out("553 sorry, but FROM or RCPT format is bad (#5.7.1)\r\n"); }
 
 stralloc greeting = {0};
 
@@ -157,6 +157,7 @@
 int bmfok = 0;
 stralloc bmf = {0};
 struct constmap mapbmf;
+int badfromformat = 0;
 int bmpok = 0;        /* Badmail pattern */
 stralloc bmp = {0};
 
@@ -272,6 +273,15 @@
   if (addr.len > 900) return 0;
   return 1;
 }
+ 
+int check_chars(char *s)
+{
+  char *x;
+  if ((strchr(s,'%')) || (strchr(s,'!'))) return 1;
+  if ((x = (char *)strchr(s,'@')))
+    if (strchr(x + 1,'@')) return 1;
+  return 0;
+}
 
 int bmfcheck()
 {
@@ -296,6 +306,7 @@
     i = j + 1;
   }
   return barf;
+  badfromformat = check_chars(addr.s);
 }
 
 int addrallowed()
@@ -426,6 +437,7 @@
   if (!stralloc_0(&rcptto)) die_nomem();
   if (tarpitcount && ++rcptcount >= tarpitcount) sleep(tarpitdelay); 
   if (maxrcpt && rcptcount > maxrcpt) { err_syntax(); return; }
+  if ((check_chars(addr.s)) || (badfromformat)) { err_format(); return; }
   out("250 ok\r\n");
 }




Więcej informacji o liście dyskusyjnej pld-devel-pl