--- a/src/server/safs/proxy.c Sun Feb 22 13:19:12 2026 +0100 +++ b/src/server/safs/proxy.c Sun Feb 22 13:39:39 2026 +0100 @@ -262,7 +262,7 @@ // set server address struct addrinfo hints = { 0 }; - hints.ai_family = AF_UNSPEC; + hints.ai_family = AF_INET; //AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; struct addrinfo *srv_addr; if(getaddrinfo(srvhost, srvport, &hints, &srv_addr)) { @@ -271,21 +271,24 @@ return REQ_ABORTED; } - int ret = http_client_set_addr(client, srv_addr->ai_addr, srv_addr->ai_addrlen); + WSBool addr_set = FALSE; + struct addrinfo *addr = srv_addr; + while(addr) { + if(addr->ai_family == AF_INET || addr->ai_family == AF_INET6) { + if(!http_client_set_addr(client, addr->ai_family, addr->ai_addr, addr->ai_addrlen)) { + addr_set = TRUE; + } + break; + } + + addr = addr->ai_next; + } freeaddrinfo(srv_addr); - if(ret) { + if(!addr_set) { http_client_free(client); return REQ_ABORTED; } - // test address - struct sockaddr_in address; - inet_pton(AF_INET, "127.0.0.1", &address.sin_addr); - address.sin_family = AF_INET; - address.sin_port = htons(8080); - http_client_set_addr(client, (struct sockaddr*)&address, sizeof(address)); - http_client_add_request_header(client, cx_mutstr("host"), cx_mutstr("localhost:8080")); - // add request headers to the client CxIterator i = pblock_iterator(rq->headers); cx_foreach(pb_entry*, entry, i) {