$OpenBSD: patch-cvsyncd_access_c,v 1.1 2013/08/29 14:28:14 naddy Exp $
--- cvsyncd/access.c.orig	Mon Jul 18 16:33:02 2005
+++ cvsyncd/access.c	Tue Aug 27 13:47:36 2013
@@ -103,10 +103,12 @@ static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER
 bool
 access_init(size_t sz)
 {
+#if defined(NO_ARC4RANDOM)
 #if !defined(NO_INITSTATE)
 	static char acl_random_state[256];
 #endif /* !defined(NO_INITSTATE) */
 	struct timeval tv;
+#endif /* defined(NO_ARC4RANDOM) */
 
 	if ((acl = malloc(sz * sizeof(*acl))) == NULL) {
 		logmsg_err("ACL: %s", strerror(errno));
@@ -119,6 +121,7 @@ access_init(size_t sz)
 		return (false);
 	}
 
+#if defined(NO_ARC4RANDOM)
 	(void)gettimeofday(&tv, NULL);
 
 #if !defined(NO_INITSTATE)
@@ -127,6 +130,7 @@ access_init(size_t sz)
 #else /* !defined(NO_INITSTATE) */
 	srandom((unsigned long)tv.tv_usec);
 #endif /* !defined(NO_INITSTATE) */
+#endif /* defined(NO_ARC4RANDOM) */
 
 	acl_name[0] = '\0';
 	acl_size = sz;
@@ -205,7 +209,11 @@ access_authorize(int sock, struct config *cf)
 		sa->sa_error = CVSYNC_ERROR_UNAVAIL;
 		return (sa);
 	}
+#if !defined(NO_ARC4RANDOM)
+	_v.v32 = arc4random();
+#else /* !defined(NO_ARC4RANDOM) */
 	_v.v32 = (uint32_t)random();
+#endif /* !defined(NO_ARC4RANDOM) */
 	wn = snprintf(sa->sa_hostinfo, sizeof(sa->sa_hostinfo),
 		      "[%s] (%02x%02x%02x%02x)", sa->sa_addr,
 		      _v.v8[0], _v.v8[1], _v.v8[2], _v.v8[3]);
