src/server/safs/proxy.c

changeset 700
658f4c02b4c5
parent 699
d794871da099
--- 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) {

mercurial