Mercurial > hg > nginx-mail
comparison src/mail/ngx_mail_handler.c @ 396:e2d916d7e50f PATCH_NGINX_MAIL_0_1
Mail: starttls only support for SMTP.
Capabilities tweaks according to starttls settings.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 18 Jul 2007 02:54:56 +0000 |
parents | 1c0300c3ae88 |
children | f9e6413396d4 |
comparison
equal
deleted
inserted
replaced
395:1c0300c3ae88 | 396:e2d916d7e50f |
---|---|
1309 size = cscf->smtp_server_name.len; | 1309 size = cscf->smtp_server_name.len; |
1310 text = cscf->smtp_server_name.data; | 1310 text = cscf->smtp_server_name.data; |
1311 | 1311 |
1312 } else { | 1312 } else { |
1313 s->esmtp = 1; | 1313 s->esmtp = 1; |
1314 | |
1315 #if (NGX_MAIL_SSL) | |
1316 | |
1317 if (c->ssl == NULL) { | |
1318 sslcf = ngx_mail_get_module_srv_conf(s, ngx_mail_ssl_module); | |
1319 | |
1320 if (sslcf->starttls == NGX_MAIL_STARTTLS_ON) { | |
1321 size = cscf->smtp_starttls_capability.len; | |
1322 text = cscf->smtp_starttls_capability.data; | |
1323 break; | |
1324 } | |
1325 | |
1326 if (sslcf->starttls == NGX_MAIL_STARTTLS_ONLY) { | |
1327 size = cscf->smtp_starttls_only_capability.len; | |
1328 text = cscf->smtp_starttls_only_capability.data; | |
1329 break; | |
1330 } | |
1331 } | |
1332 #endif | |
1333 | |
1314 size = cscf->smtp_capability.len; | 1334 size = cscf->smtp_capability.len; |
1315 text = cscf->smtp_capability.data; | 1335 text = cscf->smtp_capability.data; |
1316 } | 1336 } |
1317 | 1337 |
1318 break; | 1338 break; |
1319 | 1339 |
1320 case NGX_SMTP_AUTH: | 1340 case NGX_SMTP_AUTH: |
1341 | |
1342 #if (NGX_MAIL_SSL) | |
1343 | |
1344 if (c->ssl == NULL) { | |
1345 sslcf = ngx_mail_get_module_srv_conf(s, ngx_mail_ssl_module); | |
1346 | |
1347 if (sslcf->starttls == NGX_MAIL_STARTTLS_ONLY) { | |
1348 rc = NGX_MAIL_PARSE_INVALID_COMMAND; | |
1349 break; | |
1350 } | |
1351 } | |
1352 #endif | |
1321 | 1353 |
1322 if (s->args.nelts == 0) { | 1354 if (s->args.nelts == 0) { |
1323 text = smtp_invalid_argument; | 1355 text = smtp_invalid_argument; |
1324 size = sizeof(smtp_invalid_argument) - 1; | 1356 size = sizeof(smtp_invalid_argument) - 1; |
1325 s->state = 0; | 1357 s->state = 0; |
1469 text = smtp_ok; | 1501 text = smtp_ok; |
1470 size = sizeof(smtp_ok) - 1; | 1502 size = sizeof(smtp_ok) - 1; |
1471 break; | 1503 break; |
1472 | 1504 |
1473 #if (NGX_MAIL_SSL) | 1505 #if (NGX_MAIL_SSL) |
1506 | |
1474 case NGX_SMTP_STARTTLS: | 1507 case NGX_SMTP_STARTTLS: |
1475 if (c->ssl == NULL) { | 1508 if (c->ssl == NULL) { |
1476 sslcf = ngx_mail_get_module_srv_conf(s, | 1509 sslcf = ngx_mail_get_module_srv_conf(s, |
1477 ngx_mail_ssl_module); | 1510 ngx_mail_ssl_module); |
1478 if (sslcf->starttls) { | 1511 if (sslcf->starttls) { |