Stream ssl_preread: added SSLv2 Client Hello support.
In particular, it was not possible to obtain SSLv2 protocol version.
Sergey Kandaurov
3 years ago
147 | 147 | last = c->buffer->last; |
148 | 148 | |
149 | 149 | while (last - p >= 5) { |
150 | ||
151 | if ((p[0] & 0x80) && p[2] == 1 && (p[3] == 0 || p[3] == 3)) { | |
152 | ngx_log_debug0(NGX_LOG_DEBUG_STREAM, ctx->log, 0, | |
153 | "ssl preread: version 2 ClientHello"); | |
154 | ctx->version[0] = p[3]; | |
155 | ctx->version[1] = p[4]; | |
156 | return NGX_OK; | |
157 | } | |
150 | 158 | |
151 | 159 | if (p[0] != 0x16) { |
152 | 160 | ngx_log_debug0(NGX_LOG_DEBUG_STREAM, ctx->log, 0, |
506 | 514 | ngx_str_null(&version); |
507 | 515 | |
508 | 516 | switch (ctx->version[0]) { |
509 | case 2: | |
510 | ngx_str_set(&version, "SSLv2"); | |
517 | case 0: | |
518 | switch (ctx->version[1]) { | |
519 | case 2: | |
520 | ngx_str_set(&version, "SSLv2"); | |
521 | break; | |
522 | } | |
511 | 523 | break; |
512 | 524 | case 3: |
513 | 525 | switch (ctx->version[1]) { |