修正Qmail auth smtp中电子邮件地址任意的patch[6]

[入库:2005年9月21日] [更新:2007年3月24日]

本文简介:

+        die_nomem();
+      }
+      if (!stralloc_cat(&tmplogin, &mydefaultdomain))
+      {
+        die_nomem();
+      }
+      strncpy(authusername, tmplogin.s, sizeof(authusername));
+      }
+      else
+      {
+        strcpy(authusername, smtpauthlogin);
+      authusername[k]='@';
+      }
+  }
+  else {
+    strcpy(authusername, smtpauthlogin);
+  }
+  return !strcasecmp(from, authusername);
+}
+
+
+void auth_smtplog(authlogin, authresult)
+char * authlogin;
+int authresult;
+{
+  char * x = env_get("LOG_AUTH");
+
+  if (!x || (*x != '1')) return;
+
+  if (authresult == SMTP_AUTH_SUCCESS) {
+    syslog(LOG_MAIL | LOG_INFO, "smtp auth:; user name is %s, success!", authlogin);
+  } else {
+    syslog(LOG_MAIL | LOG_INFO, "smtp auth:; user name is %s, failed!", authlogin);
+  }
+}
+
 static int smtpauth_getl(void) {
   int i;
   if (!stralloc_copys(&smtpauth, "")) return -1;
@@ -611,11 +699,14 @@
   wait_pid(&st, pid);
   if (wait_exitcode(st) == 0) {
     out("235 go ahead\r\n");
+    authd = 1;
+    auth_smtplog(smtpauthlogin, SMTP_AUTH_SUCCESS);
     flush();
     relayclient="";
     return;
   }
   sleep(2);
+  auth_smtplog(smtpauthlogin, SMTP_AUTH_FAILED);
   out("535 auth failure\r\n"); flush(); _exit(0);
   /* done */
 }
[/code:1:e9fa54356d]

 IPphone 回复于:2003-06-02 19:18:09 这个怎么用呢,是不是作为一个 patch 来打啊???


另外我有个问题请问 gadfly ,我用呢前面的那个补丁打入最新的那个 qmail-smtpd.c (就是有三行输出的那个)。用编译后的 qmail-smtpd 来跑,认证没有问题,但是客户端的地址设置还是可以随便改啊,可不可以帮我分析一下原因??


我的 runsmtp 启动脚本是:
#/bin/sh
LOG_AUTH=1
export LOG_AUTH

tcpserver -H -R -l 0 0 smtp /var/qmail/bin/qmail-smtpd-auth /bin/checkpassword /bin/true &

 IPphone 回复于:2003-06-02 20:07:14 老兄啊,你那第十行的 “}” 又问题吧??我 patch 打不上啊。     



另外加了你的那个日志记录后会记录一些什么内容啊?仍然是在 Linux 的 /var/log/maillog 中吗??


我的 runsmtp 脚本改为:     

#/bin/sh 
LOG_AUTH=1 
export LOG_AUTH 

tcpserver -H -R -l 0 -u qmailduid -g qmaildgid 0 smtp /var/qmail/bin/qmail-smtpd-auth /bin/checkpassword /bin/true | /var/qmail/bin/splogger &

 gadfly 回复于:2003-06-02 20:30:03 ??不会呀,具体的错误信息。

另外看我最前面的说明。

特别要说明的是粘贴上来后,有些没有空格了。得自己补上

 IPphone 回复于:2003-06-02 20:59:23 看来确实是空格问题。后来用 gadfly 发过来的补丁就可以了。

后来在 gadfly 的热心帮助下解决了遇到的一些我在运行脚本和 qmail 配置文件上的问题;描述如下,供大家参考。

runsmtpd-auth脚本:
#!/bin/sh

LOG_AUTH=1
export LOG_AUTH

本文关键:修正Qmail auth smtp中电子邮件地址任意的patch
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top