Index: server.c
===================================================================
RCS file: /home/msmakela/CVS/txt/mutex/posix/server.c,v
retrieving revision 1.3
diff -u -r1.3 server.c
--- server.c	13 Mar 2002 08:37:50 -0000	1.3
+++ server.c	25 Mar 2002 06:38:16 -0000
@@ -102,11 +102,14 @@
       case res_req:
 	if (!addr_active.sin_family) {
 	  c = res_ack;
-	  memcpy (&addr_active, &addr_from, sizeof addr_active);
+	  addr_active.sin_family = AF_INET;
+	  addr_active.sin_addr.s_addr = addr_from.sin_addr.s_addr;
+	  addr_active.sin_port = addr_from.sin_port;
 	  diag (&addr_from, "res_req->res_ack");
 	}
 	else {
-	  c = memcmp (&addr_active, &addr_from, sizeof addr_active)
+	  c = addr_from.sin_addr.s_addr != addr_active.sin_addr.s_addr ||
+	      addr_from.sin_port != addr_active.sin_port
 	    ? res_rej
 	    : res_ack;
 	  diag (&addr_from,
@@ -116,7 +119,8 @@
 		(struct sockaddr*) &addr_from, addrlen);
 	break;
       case rel_req:
-	if (memcmp (&addr_active, &addr_from, sizeof addr_active))
+	if (addr_from.sin_addr.s_addr != addr_active.sin_addr.s_addr ||
+	    addr_from.sin_port != addr_active.sin_port)
 	  diag (&addr_from, "bogus rel_req");
 	else {
 	  addr_active.sin_family = 0;

