svn commit: samba r19178 - in branches/SAMBA_4_0/source/lib/socket_wrapper: .

metze at samba.org metze at samba.org
Sun Oct 8 21:53:10 GMT 2006


Author: metze
Date: 2006-10-08 21:53:09 +0000 (Sun, 08 Oct 2006)
New Revision: 19178

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=19178

Log:
fix the standalone build of socket_wrapper by not using
samba's DLIST_ macros

metze
Modified:
   branches/SAMBA_4_0/source/lib/socket_wrapper/socket_wrapper.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/socket_wrapper/socket_wrapper.c
===================================================================
--- branches/SAMBA_4_0/source/lib/socket_wrapper/socket_wrapper.c	2006-10-08 21:50:22 UTC (rev 19177)
+++ branches/SAMBA_4_0/source/lib/socket_wrapper/socket_wrapper.c	2006-10-08 21:53:09 UTC (rev 19178)
@@ -46,10 +46,6 @@
 #include "system/network.h"
 #include "system/filesys.h"
 
-#ifndef _DLINKLIST_H
-#include "lib/util/dlinklist.h"
-#endif
-
 #ifdef malloc
 #undef malloc
 #endif
@@ -78,10 +74,39 @@
 
 #define _PUBLIC_
 
-#error "dlinklist.h missing"
-
 #endif
 
+#define SWRAP_DLIST_ADD(list,item) do { \
+	if (!(list)) { \
+		(item)->prev	= NULL; \
+		(item)->next	= NULL; \
+		(list)		= (item); \
+	} else { \
+		(item)->prev	= NULL; \
+		(item)->next	= (list); \
+		(list)->prev	= (item); \
+		(list)		= (item); \
+	} \
+} while (0)
+
+#define SWRAP_DLIST_REMOVE(list,item) do { \
+	if ((list) == (item)) { \
+		(list)		= (item)->next; \
+		if (list) { \
+			(list)->prev	= NULL; \
+		} \
+	} else { \
+		if ((item)->prev) { \
+			(item)->prev->next	= (item)->next; \
+		} \
+		if ((item)->next) { \
+			(item)->next->prev	= (item)->prev; \
+		} \
+	} \
+	(item)->prev	= NULL; \
+	(item)->next	= NULL; \
+} while (0)
+
 /* LD_PRELOAD doesn't work yet, so REWRITE_CALLS is all we support
  * for now */
 #define REWRITE_CALLS 
@@ -1076,7 +1101,7 @@
 	si->protocol = protocol;
 	si->fd = fd;
 
-	DLIST_ADD(sockets, si);
+	SWRAP_DLIST_ADD(sockets, si);
 
 	return si->fd;
 }
@@ -1145,7 +1170,7 @@
 	child_si->peername_len = *addrlen;
 	child_si->peername = sockaddr_dup(addr, *addrlen);
 
-	DLIST_ADD(sockets, child_si);
+	SWRAP_DLIST_ADD(sockets, child_si);
 
 	swrap_dump_packet(child_si, addr, SWRAP_ACCEPT_SEND, NULL, 0);
 	swrap_dump_packet(child_si, addr, SWRAP_ACCEPT_RECV, NULL, 0);
@@ -1545,7 +1570,7 @@
 		return real_close(fd);
 	}
 
-	DLIST_REMOVE(sockets, si);
+	SWRAP_DLIST_REMOVE(sockets, si);
 
 	if (si->myname && si->peername) {
 		swrap_dump_packet(si, NULL, SWRAP_CLOSE_SEND, NULL, 0);



More information about the samba-cvs mailing list