comparison src/mail/ngx_mail_auth_http_module.c @ 2309:8156bc03982a

smtp_auth none patch by Maxim Dounin
author Igor Sysoev <igor@sysoev.ru>
date Thu, 13 Nov 2008 13:25:34 +0000
parents b0a1c84725cf
children 842a558c3bc5
comparison
equal deleted inserted replaced
2308:3f98400e31e9 2309:8156bc03982a
139 139
140 static ngx_str_t ngx_mail_auth_http_method[] = { 140 static ngx_str_t ngx_mail_auth_http_method[] = {
141 ngx_string("plain"), 141 ngx_string("plain"),
142 ngx_string("plain"), 142 ngx_string("plain"),
143 ngx_string("apop"), 143 ngx_string("apop"),
144 ngx_string("cram-md5") 144 ngx_string("cram-md5"),
145 ngx_string("none")
145 }; 146 };
146 147
147 static ngx_str_t ngx_mail_smtp_errcode = ngx_string("535 5.7.0"); 148 static ngx_str_t ngx_mail_smtp_errcode = ngx_string("535 5.7.0");
148 149
149 150
1163 + sizeof(CRLF) - 1 1164 + sizeof(CRLF) - 1
1164 + sizeof("Auth-Login-Attempt: ") - 1 + NGX_INT_T_LEN 1165 + sizeof("Auth-Login-Attempt: ") - 1 + NGX_INT_T_LEN
1165 + sizeof(CRLF) - 1 1166 + sizeof(CRLF) - 1
1166 + sizeof("Client-IP: ") - 1 + s->connection->addr_text.len 1167 + sizeof("Client-IP: ") - 1 + s->connection->addr_text.len
1167 + sizeof(CRLF) - 1 1168 + sizeof(CRLF) - 1
1169 + sizeof("Client-Host: ") - 1 + s->host.len + sizeof(CRLF) - 1
1170 + sizeof("Auth-SMTP-Helo: ") - 1 + s->smtp_helo.len
1171 + sizeof("Auth-SMTP-From: ") - 1 + s->smtp_from.len
1172 + sizeof("Auth-SMTP-To: ") - 1 + s->smtp_to.len
1168 + ahcf->header.len 1173 + ahcf->header.len
1169 + sizeof(CRLF) - 1; 1174 + sizeof(CRLF) - 1;
1170 1175
1171 b = ngx_create_temp_buf(pool, len); 1176 b = ngx_create_temp_buf(pool, len);
1172 if (b == NULL) { 1177 if (b == NULL) {
1214 b->last = ngx_sprintf(b->last, "Auth-Login-Attempt: %ui" CRLF, 1219 b->last = ngx_sprintf(b->last, "Auth-Login-Attempt: %ui" CRLF,
1215 s->login_attempt); 1220 s->login_attempt);
1216 1221
1217 b->last = ngx_cpymem(b->last, "Client-IP: ", sizeof("Client-IP: ") - 1); 1222 b->last = ngx_cpymem(b->last, "Client-IP: ", sizeof("Client-IP: ") - 1);
1218 b->last = ngx_copy(b->last, s->connection->addr_text.data, 1223 b->last = ngx_copy(b->last, s->connection->addr_text.data,
1219 s->connection->addr_text.len); 1224 s->connection->addr_text.len);
1220 *b->last++ = CR; *b->last++ = LF; 1225 *b->last++ = CR; *b->last++ = LF;
1226
1227 if (s->host.len) {
1228 b->last = ngx_cpymem(b->last, "Client-Host: ",
1229 sizeof("Client-Host: ") - 1);
1230 b->last = ngx_copy(b->last, s->host.data, s->host.len);
1231 *b->last++ = CR; *b->last++ = LF;
1232 }
1233
1234 if (s->auth_method == NGX_MAIL_AUTH_NONE) {
1235
1236 /* HELO, MAIL FROM, and RCPT TO can't contain CRLF, no need to escape */
1237
1238 b->last = ngx_cpymem(b->last, "Auth-SMTP-Helo: ",
1239 sizeof("Auth-SMTP-Helo: ") - 1);
1240 b->last = ngx_copy(b->last, s->smtp_helo.data, s->smtp_helo.len);
1241 *b->last++ = CR; *b->last++ = LF;
1242
1243 b->last = ngx_cpymem(b->last, "Auth-SMTP-From: ",
1244 sizeof("Auth-SMTP-From: ") - 1);
1245 b->last = ngx_copy(b->last, s->smtp_from.data, s->smtp_from.len);
1246 *b->last++ = CR; *b->last++ = LF;
1247
1248 b->last = ngx_cpymem(b->last, "Auth-SMTP-To: ",
1249 sizeof("Auth-SMTP-To: ") - 1);
1250 b->last = ngx_copy(b->last, s->smtp_to.data, s->smtp_to.len);
1251 *b->last++ = CR; *b->last++ = LF;
1252
1253 }
1221 1254
1222 if (ahcf->header.len) { 1255 if (ahcf->header.len) {
1223 b->last = ngx_copy(b->last, ahcf->header.data, ahcf->header.len); 1256 b->last = ngx_copy(b->last, ahcf->header.data, ahcf->header.len);
1224 } 1257 }
1225 1258