Mercurial > hg > nginx
comparison src/http/ngx_http.c @ 5121:c0f7b94e88ba
Preliminary experimental support for SPDY draft 2.
author | Valentin Bartenev <vbart@nginx.com> |
---|---|
date | Wed, 20 Mar 2013 10:36:57 +0000 |
parents | 7ab10517ae58 |
children | 5482671df278 |
comparison
equal
deleted
inserted
replaced
5120:7956af6b6a02 | 5121:c0f7b94e88ba |
---|---|
1223 struct sockaddr_un *saun; | 1223 struct sockaddr_un *saun; |
1224 #endif | 1224 #endif |
1225 #if (NGX_HTTP_SSL) | 1225 #if (NGX_HTTP_SSL) |
1226 ngx_uint_t ssl; | 1226 ngx_uint_t ssl; |
1227 #endif | 1227 #endif |
1228 #if (NGX_HTTP_SPDY) | |
1229 ngx_uint_t spdy; | |
1230 #endif | |
1228 | 1231 |
1229 /* | 1232 /* |
1230 * we cannot compare whole sockaddr struct's as kernel | 1233 * we cannot compare whole sockaddr struct's as kernel |
1231 * may fill some fields in inherited sockaddr struct's | 1234 * may fill some fields in inherited sockaddr struct's |
1232 */ | 1235 */ |
1275 default_server = addr[i].opt.default_server; | 1278 default_server = addr[i].opt.default_server; |
1276 | 1279 |
1277 #if (NGX_HTTP_SSL) | 1280 #if (NGX_HTTP_SSL) |
1278 ssl = lsopt->ssl || addr[i].opt.ssl; | 1281 ssl = lsopt->ssl || addr[i].opt.ssl; |
1279 #endif | 1282 #endif |
1283 #if (NGX_HTTP_SPDY) | |
1284 spdy = lsopt->spdy || addr[i].opt.spdy; | |
1285 #endif | |
1280 | 1286 |
1281 if (lsopt->set) { | 1287 if (lsopt->set) { |
1282 | 1288 |
1283 if (addr[i].opt.set) { | 1289 if (addr[i].opt.set) { |
1284 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, | 1290 ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, |
1304 } | 1310 } |
1305 | 1311 |
1306 addr[i].opt.default_server = default_server; | 1312 addr[i].opt.default_server = default_server; |
1307 #if (NGX_HTTP_SSL) | 1313 #if (NGX_HTTP_SSL) |
1308 addr[i].opt.ssl = ssl; | 1314 addr[i].opt.ssl = ssl; |
1315 #endif | |
1316 #if (NGX_HTTP_SPDY) | |
1317 addr[i].opt.spdy = spdy; | |
1309 #endif | 1318 #endif |
1310 | 1319 |
1311 return NGX_OK; | 1320 return NGX_OK; |
1312 } | 1321 } |
1313 | 1322 |
1334 != NGX_OK) | 1343 != NGX_OK) |
1335 { | 1344 { |
1336 return NGX_ERROR; | 1345 return NGX_ERROR; |
1337 } | 1346 } |
1338 } | 1347 } |
1348 | |
1349 #if (NGX_HTTP_SPDY && NGX_HTTP_SSL && !defined TLSEXT_TYPE_next_proto_neg) | |
1350 if (lsopt->spdy && lsopt->ssl) { | |
1351 ngx_conf_log_error(NGX_LOG_WARN, cf, 0, | |
1352 "nginx was built without OpenSSL NPN support, " | |
1353 "SPDY is not enabled for %s", lsopt->addr); | |
1354 } | |
1355 #endif | |
1339 | 1356 |
1340 addr = ngx_array_push(&port->addrs); | 1357 addr = ngx_array_push(&port->addrs); |
1341 if (addr == NULL) { | 1358 if (addr == NULL) { |
1342 return NGX_ERROR; | 1359 return NGX_ERROR; |
1343 } | 1360 } |
1818 addrs[i].addr = sin->sin_addr.s_addr; | 1835 addrs[i].addr = sin->sin_addr.s_addr; |
1819 addrs[i].conf.default_server = addr[i].default_server; | 1836 addrs[i].conf.default_server = addr[i].default_server; |
1820 #if (NGX_HTTP_SSL) | 1837 #if (NGX_HTTP_SSL) |
1821 addrs[i].conf.ssl = addr[i].opt.ssl; | 1838 addrs[i].conf.ssl = addr[i].opt.ssl; |
1822 #endif | 1839 #endif |
1840 #if (NGX_HTTP_SPDY) | |
1841 addrs[i].conf.spdy = addr[i].opt.spdy; | |
1842 #endif | |
1823 | 1843 |
1824 if (addr[i].hash.buckets == NULL | 1844 if (addr[i].hash.buckets == NULL |
1825 && (addr[i].wc_head == NULL | 1845 && (addr[i].wc_head == NULL |
1826 || addr[i].wc_head->hash.buckets == NULL) | 1846 || addr[i].wc_head->hash.buckets == NULL) |
1827 && (addr[i].wc_tail == NULL | 1847 && (addr[i].wc_tail == NULL |
1879 addrs6[i].addr6 = sin6->sin6_addr; | 1899 addrs6[i].addr6 = sin6->sin6_addr; |
1880 addrs6[i].conf.default_server = addr[i].default_server; | 1900 addrs6[i].conf.default_server = addr[i].default_server; |
1881 #if (NGX_HTTP_SSL) | 1901 #if (NGX_HTTP_SSL) |
1882 addrs6[i].conf.ssl = addr[i].opt.ssl; | 1902 addrs6[i].conf.ssl = addr[i].opt.ssl; |
1883 #endif | 1903 #endif |
1904 #if (NGX_HTTP_SPDY) | |
1905 addrs6[i].conf.spdy = addr[i].opt.spdy; | |
1906 #endif | |
1884 | 1907 |
1885 if (addr[i].hash.buckets == NULL | 1908 if (addr[i].hash.buckets == NULL |
1886 && (addr[i].wc_head == NULL | 1909 && (addr[i].wc_head == NULL |
1887 || addr[i].wc_head->hash.buckets == NULL) | 1910 || addr[i].wc_head->hash.buckets == NULL) |
1888 && (addr[i].wc_tail == NULL | 1911 && (addr[i].wc_tail == NULL |