Index: web.c
===================================================================
--- web.c	(revision 210)
+++ web.c	(revision 211)
@@ -60,9 +60,9 @@
     ret=recv(fd,buffer,RAYDIUM_WEB_BUFSIZE,0);
     
     if(ret == 0 || ret == -1)
-	    {
+	    {
 	    /* read failure stop now */
-        //perror("read");
+        perror("read");
 	    raydium_web_answer("error: Failed to read browser request",fd);
 	    return;
 	    }
@@ -220,30 +220,32 @@
 strcpy(raydium_web_title,title);
 raydium_web_active=1;
 }
+
 
 
 void raydium_web_callback(void)
 {
 static int socketfd;
 static struct sockaddr_in cli_addr; /* static = initialised to zeros */
-
 size_t length;
 
 if(!raydium_web_active)
     return;
 
+if(!raydium_network_socket_is_readable(raydium_web_listenfd))
+    return;
+
 length = sizeof(cli_addr);
-
-raydium_network_set_socket_block_internal(raydium_web_listenfd,0);
+//raydium_network_set_socket_block_internal(raydium_web_listenfd,0);
 if((socketfd = accept(raydium_web_listenfd, (struct sockaddr *)&cli_addr, &length)) < 0)
 {
     return;
 }
-raydium_network_set_socket_block_internal(raydium_web_listenfd,1);
+//raydium_network_set_socket_block_internal(raydium_web_listenfd,1);
 
 // /!\ FIXME ! must fork here. (see original nweb for details)
 raydium_web_request(socketfd);
-close(socketfd);
+raydium_network_socket_close(socketfd);
 }
 
 #ifdef RAYDIUM_NETWORK_ONLY
@@ -399,7 +401,7 @@
 	    {
 	    buffer[12]=0;
 	    raydium_log("web: client: error: server said %s",buffer);
-	    close(sockfd);
+	    raydium_network_socket_close(sockfd);
 	    return 0;
 	    }
 
@@ -411,7 +413,7 @@
 	if(!strcmp(req+42,"Type: message"))
 	    {
 	    raydium_log("web: client: error: no data, this is a server message (not found ?)");
-	    close(sockfd);
+	    raydium_network_socket_close(sockfd);
 	    return 0;
 	    }
 
@@ -426,7 +428,7 @@
 	if(x==i)
 	    {
 	    raydium_log("web: client: error: cannot found header end");
-	    close(sockfd);
+	    raydium_network_socket_close(sockfd);
 	    return 0;
 	    }
 	// found, adjust offset 1 byte after
@@ -438,7 +440,7 @@
 	if(!fp)
 	    {
 	    raydium_log("web: client: error: cannot create temporary file");
-	    close(sockfd);
+	    raydium_network_socket_close(sockfd);
 	    return 0;
 	    }	
 	}
@@ -448,7 +450,7 @@
     }
 			
 fclose(fp);
-close(sockfd);
+raydium_network_socket_close(sockfd);
 
 // compare files and rename if not the same
 #ifndef RAYDIUM_NETWORK_ONLY