* Temporary hack to ig_tcp_server() to listen on an arbitrary port if the
[citadel.git] / citadel / sysdep.c
index 35a3d8f43797bd95671f9b60d92fa0a075efa258..6bde9f3961d93b173dd2d96490dd4630a8f9f4a8 100644 (file)
@@ -285,7 +285,16 @@ int ig_tcp_server(int port_number, int queue_len)
 
        if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
                lprintf(1, "citserver: Can't bind: %s\n", strerror(errno));
-               return(-1);
+               sin.sin_port = 0;
+               if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) {
+                       lprintf(1, "citserver: Can't bind: %s\n",
+                               strerror(errno));
+                       return(-1);
+               }
+               else {
+                       lprintf(1, "bind to alternate port %d ok\n",
+                               htons(sin.sin_port) );
+               }
        }
 
        if (listen(s, queue_len) < 0) {