This commit is contained in:
Unbit
2014-05-13 13:26:33 +02:00
parent 5871146519
commit cfbb213e6d
3 changed files with 10 additions and 3 deletions
+1 -1
View File
@@ -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
View File
@@ -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
+8 -1
View File
@@ -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);