summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qmail-qmqpd.c2
-rw-r--r--qmail-qmtpd.c2
-rw-r--r--qmail-smtpd.c7
-rw-r--r--received.c28
-rw-r--r--received.h10
5 files changed, 29 insertions, 20 deletions
diff --git a/qmail-qmqpd.c b/qmail-qmqpd.c
index 8726ab0..3eb06e4 100644
--- a/qmail-qmqpd.c
+++ b/qmail-qmqpd.c
@@ -80,7 +80,7 @@ void identify()
80 if (!local) local = env_get("TCPLOCALIP"); 80 if (!local) local = env_get("TCPLOCALIP");
81 if (!local) local = "unknown"; 81 if (!local) local = "unknown";
82 82
83 received(&qq,"QMQP",local,remoteip,remotehost,remoteinfo,(char *) 0); 83 received(&qq,"QMQP",local,remoteip,remotehost,remoteinfo,NULL,NULL);
84} 84}
85 85
86char buf[1000]; 86char buf[1000];
diff --git a/qmail-qmtpd.c b/qmail-qmtpd.c
index 1055274..77d36aa 100644
--- a/qmail-qmtpd.c
+++ b/qmail-qmtpd.c
@@ -144,7 +144,7 @@ int main()
144 else if (ch == 13) flagdos = 1; 144 else if (ch == 13) flagdos = 1;
145 else badproto(); 145 else badproto();
146 146
147 received(&qq,"QMTP",local,remoteip,remotehost,remoteinfo,(char *) 0); 147 received(&qq,"QMTP",local,remoteip,remotehost,remoteinfo,NULL,NULL);
148 148
149 /* XXX: check for loops? only if len is big? */ 149 /* XXX: check for loops? only if len is big? */
150 150
diff --git a/qmail-smtpd.c b/qmail-smtpd.c
index 1036eef..20027b0 100644
--- a/qmail-smtpd.c
+++ b/qmail-smtpd.c
@@ -63,6 +63,7 @@ char *remotehost;
63char *remoteinfo; 63char *remoteinfo;
64char *local; 64char *local;
65char *relayclient; 65char *relayclient;
66static const stralloc *client_get_session_id();
66 67
67#ifdef TLS 68#ifdef TLS
68# include <sys/stat.h> 69# include <sys/stat.h>
@@ -346,6 +347,9 @@ void setup()
346 else 347 else
347#endif 348#endif
348 dohelo(remotehost); 349 dohelo(remotehost);
350
351 /* generate session */
352 (void)client_get_session_id();
349} 353}
350 354
351 355
@@ -959,7 +963,7 @@ void smtp_data(arg) char *arg; {
959 if (flagauth) 963 if (flagauth)
960 received_authed(&qqt,protocol,local,remoteinfo,client_get_session_id()->s); 964 received_authed(&qqt,protocol,local,remoteinfo,client_get_session_id()->s);
961 else 965 else
962 received(&qqt,protocol,local,remoteip,remotehost,remoteinfo,fakehelo); 966 received(&qqt,protocol,local,remoteip,remotehost,remoteinfo,client_get_session_id()->s,fakehelo);
963 qmail_put(&qqt,sppheaders.s,sppheaders.len); /* set in qmail-spp.c */ 967 qmail_put(&qqt,sppheaders.s,sppheaders.len); /* set in qmail-spp.c */
964 spp_rset(); 968 spp_rset();
965 blast(&hops); 969 blast(&hops);
@@ -1244,7 +1248,6 @@ char *arg;
1244 1248
1245 switch (authcmds[i].fun(arg)) { 1249 switch (authcmds[i].fun(arg)) {
1246 case 0: 1250 case 0:
1247 (void)client_get_session_id(); /* generate session */
1248 if (!spp_auth(authcmds[i].text, user.s)) return; 1251 if (!spp_auth(authcmds[i].text, user.s)) return;
1249 flagauth = 1; 1252 flagauth = 1;
1250 if (ssl) { 1253 if (ssl) {
diff --git a/received.c b/received.c
index f38545e..0b51c39 100644
--- a/received.c
+++ b/received.c
@@ -36,15 +36,12 @@ static char buf[DATE822FMT];
36 36
37/* "Received: from relay1.uu.net (HELO uunet.uu.net) (7@192.48.96.5)\n" */ 37/* "Received: from relay1.uu.net (HELO uunet.uu.net) (7@192.48.96.5)\n" */
38/* " by silverton.berkeley.edu with SMTP; 26 Sep 1995 04:46:54 -0000\n" */ 38/* " by silverton.berkeley.edu with SMTP; 26 Sep 1995 04:46:54 -0000\n" */
39/* "X-UD-Smtp-Session: sessionid */
39 40
40void received(qqt,protocol,local,remoteip,remotehost,remoteinfo,helo) 41void received(const struct qmail *qqt,
41struct qmail *qqt; 42 const char *protocol, const char *local,
42char *protocol; 43 const char *remoteip, const char *remotehost, const char *remoteinfo,
43char *local; 44 const char *remotesession, const char *helo)
44char *remoteip;
45char *remotehost;
46char *remoteinfo;
47char *helo;
48{ 45{
49 struct datetime dt; 46 struct datetime dt;
50 47
@@ -68,17 +65,19 @@ char *helo;
68 qmail_puts(qqt,"; "); 65 qmail_puts(qqt,"; ");
69 datetime_tai(&dt,now()); 66 datetime_tai(&dt,now());
70 qmail_put(qqt,buf,date822fmt(buf,&dt)); 67 qmail_put(qqt,buf,date822fmt(buf,&dt));
68
69 if (remotesession) {
70 qmail_puts(qqt,"X-UD-Smtp-Session: ");
71 qmail_puts(qqt,remotesession);
72 qmail_put(qqt,"\n",1);
73 }
71} 74}
72 75
73/* "Received: by silverton.berkeley.edu with SMTP; 26 Sep 1995 04:46:54 -0000\n" 76/* "Received: by silverton.berkeley.edu with SMTP; 26 Sep 1995 04:46:54 -0000\n"
74 * "X-UD-Smtp-Session: user@sessionid */ 77 * "X-UD-Smtp-Session: user@sessionid */
75 78
76void received_authed(qqt,protocol,local,remoteinfo,remotesession) 79void received_authed(const struct qmail *qqt, const char *protocol,
77struct qmail *qqt; 80 const char *local, const char *remoteinfo, const char *remotesession)
78char *protocol;
79char *local;
80char *remoteinfo;
81char *remotesession;
82{ 81{
83 struct datetime dt; 82 struct datetime dt;
84 83
@@ -89,6 +88,7 @@ char *remotesession;
89 qmail_puts(qqt,"; "); 88 qmail_puts(qqt,"; ");
90 datetime_tai(&dt,now()); 89 datetime_tai(&dt,now());
91 qmail_put(qqt,buf,date822fmt(buf,&dt)); 90 qmail_put(qqt,buf,date822fmt(buf,&dt));
91
92 if (remoteinfo || remotesession) { 92 if (remoteinfo || remotesession) {
93 qmail_puts(qqt,"X-UD-Smtp-Session: "); 93 qmail_puts(qqt,"X-UD-Smtp-Session: ");
94 if (remoteinfo) { 94 if (remoteinfo) {
diff --git a/received.h b/received.h
index 7c98c28..473c3ca 100644
--- a/received.h
+++ b/received.h
@@ -1,7 +1,13 @@
1#ifndef RECEIVED_H 1#ifndef RECEIVED_H
2#define RECEIVED_H 2#define RECEIVED_H
3 3
4extern void received(); 4#include "qmail.h"
5extern void received_authed(); 5
6void received(const struct qmail *qqt, const char *protocol,
7 const char *local, const char *remoteip, const char *remotehost,
8 const char *remoteinfo, const char *remotesession, const char *helo
9);
10void received_authed(const struct qmail *qqt, const char *protocol,
11 const char *local, const char *remoteinfo, const char *remotesession);
6 12
7#endif 13#endif