2005-01-05 Paul Jakma <paul@dishone.st>

	* zserv.c: (zebra_accept) Comment out setting of socket to NONBLOCK
          for now, as we dont actually deal with with resending.... See
          bugzilla #122, fix from wawa@yandex-team.ru (Vladimir Ivanov).
	* kernel_socket.c: (routing_socket) ditto.
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index e26204c..d54d8a9 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,10 @@
+2005-01-05 Paul Jakma <paul@dishone.st>
+
+	* zserv.c: (zebra_accept) Comment out setting of socket to NONBLOCK
+          for now, as we dont actually deal with with resending.... See
+          bugzilla #122, fix from wawa@yandex-team.ru (Vladimir Ivanov).
+	* kernel_socket.c: (routing_socket) ditto.
+
 2005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* rtadv.c: (rtadv_recv_packet,rtadv_send_packet) Use ZCMSG_FIRSTHDR
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 9027cd6..e6e7444 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -966,8 +966,13 @@
       return;
     }
 
-  if (fcntl (routing_sock, F_SETFL, O_NONBLOCK) < 0) 
-    zlog_warn ("Can't set O_NONBLOCK to routing socket");
+  /* XXX: Socket should be NONBLOCK, however as we currently 
+   * discard failed writes, this will lead to inconsistencies.
+   * For now, socket must be blocking.
+   */
+  /*if (fcntl (routing_sock, F_SETFL, O_NONBLOCK) < 0) 
+    zlog_warn ("Can't set O_NONBLOCK to routing socket");*/
+    
   if ( zserv_privs.change (ZPRIVS_LOWER) )
     zlog_err ("routing_socket: Can't lower privileges");
 
diff --git a/zebra/zserv.c b/zebra/zserv.c
index 47eb49a..10616b4 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -1374,10 +1374,14 @@
     }
 
   /* Make client socket non-blocking.  */
-
+  /* XXX: We dont requeue failed writes, so this leads to inconsistencies.
+   * for now socket must remain blocking, regardless of risk of deadlocks.
+   */
+  /*
   val = fcntl (client_sock, F_GETFL, 0);
   fcntl (client_sock, F_SETFL, (val | O_NONBLOCK));
-
+  */
+  
   /* Create new zebra client. */
   zebra_client_create (client_sock);