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) {