Mercurial > hg > nginx-quic
comparison src/mail/ngx_mail_auth_http_module.c @ 8594:fac88e160653 quic
Merged with the default branch.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Wed, 01 Sep 2021 10:57:25 +0300 |
parents | 13d0c1d26d47 |
children |
comparison
equal
deleted
inserted
replaced
8563:d6e191a583cc | 8594:fac88e160653 |
---|---|
1135 size_t len; | 1135 size_t len; |
1136 ngx_buf_t *b; | 1136 ngx_buf_t *b; |
1137 ngx_str_t login, passwd; | 1137 ngx_str_t login, passwd; |
1138 ngx_connection_t *c; | 1138 ngx_connection_t *c; |
1139 #if (NGX_MAIL_SSL) | 1139 #if (NGX_MAIL_SSL) |
1140 ngx_str_t verify, subject, issuer, serial, fingerprint, | 1140 ngx_str_t protocol, cipher, verify, subject, issuer, |
1141 raw_cert, cert; | 1141 serial, fingerprint, raw_cert, cert; |
1142 ngx_mail_ssl_conf_t *sslcf; | 1142 ngx_mail_ssl_conf_t *sslcf; |
1143 #endif | 1143 #endif |
1144 ngx_mail_core_srv_conf_t *cscf; | 1144 ngx_mail_core_srv_conf_t *cscf; |
1145 | 1145 |
1146 if (ngx_mail_auth_http_escape(pool, &s->login, &login) != NGX_OK) { | 1146 if (ngx_mail_auth_http_escape(pool, &s->login, &login) != NGX_OK) { |
1152 } | 1152 } |
1153 | 1153 |
1154 c = s->connection; | 1154 c = s->connection; |
1155 | 1155 |
1156 #if (NGX_MAIL_SSL) | 1156 #if (NGX_MAIL_SSL) |
1157 | |
1158 if (c->ssl) { | |
1159 | |
1160 if (ngx_ssl_get_protocol(c, pool, &protocol) != NGX_OK) { | |
1161 return NULL; | |
1162 } | |
1163 | |
1164 protocol.len = ngx_strlen(protocol.data); | |
1165 | |
1166 if (ngx_ssl_get_cipher_name(c, pool, &cipher) != NGX_OK) { | |
1167 return NULL; | |
1168 } | |
1169 | |
1170 cipher.len = ngx_strlen(cipher.data); | |
1171 | |
1172 } else { | |
1173 ngx_str_null(&protocol); | |
1174 ngx_str_null(&cipher); | |
1175 } | |
1157 | 1176 |
1158 sslcf = ngx_mail_get_module_srv_conf(s, ngx_mail_ssl_module); | 1177 sslcf = ngx_mail_get_module_srv_conf(s, ngx_mail_ssl_module); |
1159 | 1178 |
1160 if (c->ssl && sslcf->verify) { | 1179 if (c->ssl && sslcf->verify) { |
1161 | 1180 |
1250 | 1269 |
1251 #if (NGX_MAIL_SSL) | 1270 #if (NGX_MAIL_SSL) |
1252 | 1271 |
1253 if (c->ssl) { | 1272 if (c->ssl) { |
1254 len += sizeof("Auth-SSL: on" CRLF) - 1 | 1273 len += sizeof("Auth-SSL: on" CRLF) - 1 |
1274 + sizeof("Auth-SSL-Protocol: ") - 1 + protocol.len | |
1275 + sizeof(CRLF) - 1 | |
1276 + sizeof("Auth-SSL-Cipher: ") - 1 + cipher.len | |
1277 + sizeof(CRLF) - 1 | |
1255 + sizeof("Auth-SSL-Verify: ") - 1 + verify.len | 1278 + sizeof("Auth-SSL-Verify: ") - 1 + verify.len |
1256 + sizeof(CRLF) - 1 | 1279 + sizeof(CRLF) - 1 |
1257 + sizeof("Auth-SSL-Subject: ") - 1 + subject.len | 1280 + sizeof("Auth-SSL-Subject: ") - 1 + subject.len |
1258 + sizeof(CRLF) - 1 | 1281 + sizeof(CRLF) - 1 |
1259 + sizeof("Auth-SSL-Issuer: ") - 1 + issuer.len | 1282 + sizeof("Auth-SSL-Issuer: ") - 1 + issuer.len |
1371 | 1394 |
1372 if (c->ssl) { | 1395 if (c->ssl) { |
1373 b->last = ngx_cpymem(b->last, "Auth-SSL: on" CRLF, | 1396 b->last = ngx_cpymem(b->last, "Auth-SSL: on" CRLF, |
1374 sizeof("Auth-SSL: on" CRLF) - 1); | 1397 sizeof("Auth-SSL: on" CRLF) - 1); |
1375 | 1398 |
1399 if (protocol.len) { | |
1400 b->last = ngx_cpymem(b->last, "Auth-SSL-Protocol: ", | |
1401 sizeof("Auth-SSL-Protocol: ") - 1); | |
1402 b->last = ngx_copy(b->last, protocol.data, protocol.len); | |
1403 *b->last++ = CR; *b->last++ = LF; | |
1404 } | |
1405 | |
1406 if (cipher.len) { | |
1407 b->last = ngx_cpymem(b->last, "Auth-SSL-Cipher: ", | |
1408 sizeof("Auth-SSL-Cipher: ") - 1); | |
1409 b->last = ngx_copy(b->last, cipher.data, cipher.len); | |
1410 *b->last++ = CR; *b->last++ = LF; | |
1411 } | |
1412 | |
1376 if (verify.len) { | 1413 if (verify.len) { |
1377 b->last = ngx_cpymem(b->last, "Auth-SSL-Verify: ", | 1414 b->last = ngx_cpymem(b->last, "Auth-SSL-Verify: ", |
1378 sizeof("Auth-SSL-Verify: ") - 1); | 1415 sizeof("Auth-SSL-Verify: ") - 1); |
1379 b->last = ngx_copy(b->last, verify.data, verify.len); | 1416 b->last = ngx_copy(b->last, verify.data, verify.len); |
1380 *b->last++ = CR; *b->last++ = LF; | 1417 *b->last++ = CR; *b->last++ = LF; |