提交 be456366 编写于 作者: D Dr. Stephen Henson

Fix for WIN32 and possibly other platforms which don't define in_port_t.

上级 6fb32337
...@@ -723,15 +723,16 @@ int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsign ...@@ -723,15 +723,16 @@ int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsign
{ {
case AF_INET: case AF_INET:
length += sizeof(struct in_addr); length += sizeof(struct in_addr);
length += sizeof(peer.s4.sin_port);
break; break;
case AF_INET6: case AF_INET6:
length += sizeof(struct in6_addr); length += sizeof(struct in6_addr);
length += sizeof(peer.s6.sin6_port);
break; break;
default: default:
OPENSSL_assert(0); OPENSSL_assert(0);
break; break;
} }
length += sizeof(in_port_t);
#else #else
length = sizeof(peer.sin_addr); length = sizeof(peer.sin_addr);
length += sizeof(peer.sin_port); length += sizeof(peer.sin_port);
...@@ -750,16 +751,16 @@ int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsign ...@@ -750,16 +751,16 @@ int MS_CALLBACK generate_cookie_callback(SSL *ssl, unsigned char *cookie, unsign
case AF_INET: case AF_INET:
memcpy(buffer, memcpy(buffer,
&peer.s4.sin_port, &peer.s4.sin_port,
sizeof(in_port_t)); sizeof(peer.s4.sin_port));
memcpy(buffer + sizeof(in_port_t), memcpy(buffer + sizeof(peer.s4.sin_port),
&peer.s4.sin_addr, &peer.s4.sin_addr,
sizeof(struct in_addr)); sizeof(struct in_addr));
break; break;
case AF_INET6: case AF_INET6:
memcpy(buffer, memcpy(buffer,
&peer.s6.sin6_port, &peer.s6.sin6_port,
sizeof(in_port_t)); sizeof(peer.s6.sin6_port));
memcpy(buffer + sizeof(in_port_t), memcpy(buffer + sizeof(peer.s6.sin6_port),
&peer.s6.sin6_addr, &peer.s6.sin6_addr,
sizeof(struct in6_addr)); sizeof(struct in6_addr));
break; break;
...@@ -811,15 +812,16 @@ int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned ...@@ -811,15 +812,16 @@ int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned
{ {
case AF_INET: case AF_INET:
length += sizeof(struct in_addr); length += sizeof(struct in_addr);
length += sizeof(peer.s4.sin_port);
break; break;
case AF_INET6: case AF_INET6:
length += sizeof(struct in6_addr); length += sizeof(struct in6_addr);
length += sizeof(peer.s6.sin6_port);
break; break;
default: default:
OPENSSL_assert(0); OPENSSL_assert(0);
break; break;
} }
length += sizeof(in_port_t);
#else #else
length = sizeof(peer.sin_addr); length = sizeof(peer.sin_addr);
length += sizeof(peer.sin_port); length += sizeof(peer.sin_port);
...@@ -838,16 +840,16 @@ int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned ...@@ -838,16 +840,16 @@ int MS_CALLBACK verify_cookie_callback(SSL *ssl, unsigned char *cookie, unsigned
case AF_INET: case AF_INET:
memcpy(buffer, memcpy(buffer,
&peer.s4.sin_port, &peer.s4.sin_port,
sizeof(in_port_t)); sizeof(peer.s4.sin_port));
memcpy(buffer + sizeof(in_port_t), memcpy(buffer + sizeof(peer.s4.sin_port),
&peer.s4.sin_addr, &peer.s4.sin_addr,
sizeof(struct in_addr)); sizeof(struct in_addr));
break; break;
case AF_INET6: case AF_INET6:
memcpy(buffer, memcpy(buffer,
&peer.s6.sin6_port, &peer.s6.sin6_port,
sizeof(in_port_t)); sizeof(peer.s6.sin6_port));
memcpy(buffer + sizeof(in_port_t), memcpy(buffer + sizeof(peer.s6.sin6_port),
&peer.s6.sin6_addr, &peer.s6.sin6_addr,
sizeof(struct in6_addr)); sizeof(struct in6_addr));
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册