mirror of
https://github.com/clearlinux/uwsgi.git
synced 2026-09-06 13:41:28 +00:00
fixed #623
This commit is contained in:
@@ -157,7 +157,7 @@ void hr_session_ssl_close(struct corerouter_session *);
|
||||
ssize_t hr_ssl_read(struct corerouter_peer *);
|
||||
ssize_t hr_ssl_write(struct corerouter_peer *);
|
||||
|
||||
int hr_https_add_vars(struct http_session *, struct uwsgi_buffer *);
|
||||
int hr_https_add_vars(struct http_session *, struct corerouter_peer *, struct uwsgi_buffer *);
|
||||
void hr_setup_ssl(struct http_session *, struct uwsgi_gateway_socket *);
|
||||
|
||||
#endif
|
||||
|
||||
+1
-1
@@ -334,7 +334,7 @@ int http_headers_parse(struct corerouter_peer *peer) {
|
||||
}
|
||||
|
||||
#ifdef UWSGI_SSL
|
||||
if (hr_https_add_vars(hr, out)) return -1;
|
||||
if (hr_https_add_vars(hr, peer, out)) return -1;
|
||||
#endif
|
||||
|
||||
// REMOTE_ADDR
|
||||
|
||||
@@ -166,10 +166,17 @@ void uwsgi_opt_http_to_https(char *opt, char *value, void *cr) {
|
||||
ucr->has_sockets++;
|
||||
}
|
||||
|
||||
int hr_https_add_vars(struct http_session *hr, struct uwsgi_buffer *out) {
|
||||
int hr_https_add_vars(struct http_session *hr, struct corerouter_peer *peer, struct uwsgi_buffer *out) {
|
||||
// HTTPS (adapted from nginx)
|
||||
if (hr->session.ugs->mode == UWSGI_HTTP_SSL) {
|
||||
if (uwsgi_buffer_append_keyval(out, "HTTPS", 5, "on", 2)) return -1;
|
||||
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
|
||||
const char *servername = SSL_get_servername(hr->ssl, TLSEXT_NAMETYPE_host_name);
|
||||
if (servername) {
|
||||
peer->key = (char *) servername;
|
||||
peer->key_len = strlen(servername);
|
||||
}
|
||||
#endif
|
||||
hr->ssl_client_cert = SSL_get_peer_certificate(hr->ssl);
|
||||
if (hr->ssl_client_cert) {
|
||||
X509_NAME *name = X509_get_subject_name(hr->ssl_client_cert);
|
||||
|
||||
Reference in New Issue
Block a user