Commit d9d8e7a9 authored by Rich Salz's avatar Rich Salz Committed by Rich Salz
Browse files

Make the BIO_ADDR param optional.

parent 0756592b
Loading
Loading
Loading
Loading
+4 −11
Original line number Diff line number Diff line
@@ -316,16 +316,10 @@ int BIO_get_accept_socket(char *host, int bind_mode)

int BIO_accept(int sock, char **ip_port)
{
    BIO_ADDR *res = BIO_ADDR_new();
    BIO_ADDR res;
    int ret = -1;

    if (res == NULL) {
        BIOerr(BIO_F_BIO_ACCEPT, ERR_R_MALLOC_FAILURE);
        return ret;
    }

    ret = BIO_accept_ex(sock, res, 0);

    ret = BIO_accept_ex(sock, &res, 0);
    if (ret == (int)INVALID_SOCKET) {
        if (BIO_sock_should_retry(ret)) {
            ret = -2;
@@ -337,8 +331,8 @@ int BIO_accept(int sock, char **ip_port)
    }

    if (ip_port != NULL) {
        char *host = BIO_ADDR_hostname_string(res, 1);
        char *port = BIO_ADDR_service_string(res, 1);
        char *host = BIO_ADDR_hostname_string(&res, 1);
        char *port = BIO_ADDR_service_string(&res, 1);
        *ip_port = OPENSSL_zalloc(strlen(host) + strlen(port) + 2);
        strcpy(*ip_port, host);
        strcat(*ip_port, ":");
@@ -348,7 +342,6 @@ int BIO_accept(int sock, char **ip_port)
    }

 end:
    BIO_ADDR_free(res);
    return ret;
}
# endif
+3 −1
Original line number Diff line number Diff line
@@ -274,10 +274,12 @@ int BIO_listen(int sock, const BIO_ADDR *addr, int options)
 * @options: BIO socket options, applied on the accepted socket.
 *
 */
int BIO_accept_ex(int accept_sock, BIO_ADDR *addr, int options)
int BIO_accept_ex(int accept_sock, BIO_ADDR *addr_, int options)
{
    socklen_t len;
    int accepted_sock;
    BIO_ADDR locaddr;
    BIO_ADDR *addr = addr_ == NULL ? &locaddr : addr_;

    len = sizeof(*addr);
    accepted_sock = accept(accept_sock,