|
@@ -46,7 +46,8 @@ int BIO_socket(int domain, int socktype, int protocol, int options)
|
|
|
|
|
|
sock = socket(domain, socktype, protocol);
|
|
|
if (sock == -1) {
|
|
|
- FUNCerr("socket", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling socket()");
|
|
|
BIOerr(BIO_F_BIO_SOCKET, BIO_R_UNABLE_TO_CREATE_SOCKET);
|
|
|
return INVALID_SOCKET;
|
|
|
}
|
|
@@ -89,7 +90,8 @@ int BIO_connect(int sock, const BIO_ADDR *addr, int options)
|
|
|
if (options & BIO_SOCK_KEEPALIVE) {
|
|
|
if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE,
|
|
|
(const void *)&on, sizeof(on)) != 0) {
|
|
|
- FUNCerr("setsockopt", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling setsockopt()");
|
|
|
BIOerr(BIO_F_BIO_CONNECT, BIO_R_UNABLE_TO_KEEPALIVE);
|
|
|
return 0;
|
|
|
}
|
|
@@ -98,7 +100,8 @@ int BIO_connect(int sock, const BIO_ADDR *addr, int options)
|
|
|
if (options & BIO_SOCK_NODELAY) {
|
|
|
if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY,
|
|
|
(const void *)&on, sizeof(on)) != 0) {
|
|
|
- FUNCerr("setsockopt", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling setsockopt()");
|
|
|
BIOerr(BIO_F_BIO_CONNECT, BIO_R_UNABLE_TO_NODELAY);
|
|
|
return 0;
|
|
|
}
|
|
@@ -107,7 +110,8 @@ int BIO_connect(int sock, const BIO_ADDR *addr, int options)
|
|
|
if (connect(sock, BIO_ADDR_sockaddr(addr),
|
|
|
BIO_ADDR_sockaddr_size(addr)) == -1) {
|
|
|
if (!BIO_sock_should_retry(-1)) {
|
|
|
- FUNCerr("connect", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling connect()");
|
|
|
BIOerr(BIO_F_BIO_CONNECT, BIO_R_CONNECT_ERROR);
|
|
|
}
|
|
|
return 0;
|
|
@@ -150,7 +154,8 @@ int BIO_bind(int sock, const BIO_ADDR *addr, int options)
|
|
|
if (options & BIO_SOCK_REUSEADDR) {
|
|
|
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
|
|
|
(const void *)&on, sizeof(on)) != 0) {
|
|
|
- FUNCerr("setsockopt", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling setsockopt()");
|
|
|
BIOerr(BIO_F_BIO_BIND, BIO_R_UNABLE_TO_REUSEADDR);
|
|
|
return 0;
|
|
|
}
|
|
@@ -158,7 +163,8 @@ int BIO_bind(int sock, const BIO_ADDR *addr, int options)
|
|
|
# endif
|
|
|
|
|
|
if (bind(sock, BIO_ADDR_sockaddr(addr), BIO_ADDR_sockaddr_size(addr)) != 0) {
|
|
|
- FUNCerr("bind", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling bind()");
|
|
|
BIOerr(BIO_F_BIO_BIND, BIO_R_UNABLE_TO_BIND_SOCKET);
|
|
|
return 0;
|
|
|
}
|
|
@@ -217,7 +223,8 @@ int BIO_listen(int sock, const BIO_ADDR *addr, int options)
|
|
|
if (getsockopt(sock, SOL_SOCKET, SO_TYPE,
|
|
|
(void *)&socktype, &socktype_len) != 0
|
|
|
|| socktype_len != sizeof(socktype)) {
|
|
|
- FUNCerr("getsockopt", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling getsockopt()");
|
|
|
BIOerr(BIO_F_BIO_LISTEN, BIO_R_GETTING_SOCKTYPE);
|
|
|
return 0;
|
|
|
}
|
|
@@ -228,7 +235,8 @@ int BIO_listen(int sock, const BIO_ADDR *addr, int options)
|
|
|
if (options & BIO_SOCK_KEEPALIVE) {
|
|
|
if (setsockopt(sock, SOL_SOCKET, SO_KEEPALIVE,
|
|
|
(const void *)&on, sizeof(on)) != 0) {
|
|
|
- FUNCerr("setsockopt", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling setsockopt()");
|
|
|
BIOerr(BIO_F_BIO_LISTEN, BIO_R_UNABLE_TO_KEEPALIVE);
|
|
|
return 0;
|
|
|
}
|
|
@@ -237,7 +245,8 @@ int BIO_listen(int sock, const BIO_ADDR *addr, int options)
|
|
|
if (options & BIO_SOCK_NODELAY) {
|
|
|
if (setsockopt(sock, IPPROTO_TCP, TCP_NODELAY,
|
|
|
(const void *)&on, sizeof(on)) != 0) {
|
|
|
- FUNCerr("setsockopt", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling setsockopt()");
|
|
|
BIOerr(BIO_F_BIO_LISTEN, BIO_R_UNABLE_TO_NODELAY);
|
|
|
return 0;
|
|
|
}
|
|
@@ -252,7 +261,8 @@ int BIO_listen(int sock, const BIO_ADDR *addr, int options)
|
|
|
on = options & BIO_SOCK_V6_ONLY ? 1 : 0;
|
|
|
if (setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
|
|
|
(const void *)&on, sizeof(on)) != 0) {
|
|
|
- FUNCerr("setsockopt", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling setsockopt()");
|
|
|
BIOerr(BIO_F_BIO_LISTEN, BIO_R_LISTEN_V6_ONLY);
|
|
|
return 0;
|
|
|
}
|
|
@@ -263,7 +273,8 @@ int BIO_listen(int sock, const BIO_ADDR *addr, int options)
|
|
|
return 0;
|
|
|
|
|
|
if (socktype != SOCK_DGRAM && listen(sock, MAX_LISTEN) == -1) {
|
|
|
- FUNCerr("listen", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling listen()");
|
|
|
BIOerr(BIO_F_BIO_LISTEN, BIO_R_UNABLE_TO_LISTEN_SOCKET);
|
|
|
return 0;
|
|
|
}
|
|
@@ -290,7 +301,8 @@ int BIO_accept_ex(int accept_sock, BIO_ADDR *addr_, int options)
|
|
|
BIO_ADDR_sockaddr_noconst(addr), &len);
|
|
|
if (accepted_sock == -1) {
|
|
|
if (!BIO_sock_should_retry(accepted_sock)) {
|
|
|
- FUNCerr("accept", get_last_socket_error());
|
|
|
+ ERR_raise_data(ERR_LIB_SYS, get_last_socket_error(),
|
|
|
+ "calling accept()");
|
|
|
BIOerr(BIO_F_BIO_ACCEPT_EX, BIO_R_ACCEPT_ERROR);
|
|
|
}
|
|
|
return INVALID_SOCKET;
|