#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
#include <errno.h>
#include <sys/types.h>
/* Compromise between eating cpu and properly busy-waiting.
One could have an option to set this but for now that seems
like featuritis. */
-#define DEFAULT_TIMEOUT 100 /* microseconds */
+#define DEFAULT_TIMEOUT 1000 /* microseconds */
/* FIXME: These should allocated at run time and kept with other simulator
state (duh...). Later. */
memcpy (&sockaddr.sin_addr.s_addr, hostent->h_addr,
sizeof (struct in_addr));
+ tmp = 1;
+ if (setsockopt (sockser_listen_fd, SOL_SOCKET, SO_REUSEADDR, (void*)& tmp, sizeof(tmp)) < 0)
+ {
+ sim_io_eprintf (sd, "sockser init: unable to set SO_REUSEADDR: %s\n",
+ strerror (errno));
+ }
if (bind (sockser_listen_fd, (struct sockaddr *) &sockaddr, sizeof (sockaddr)) < 0)
{
sim_io_eprintf (sd, "sockser init: unable to bind socket address: %s\n",
if (numfds <= 0)
return 0;
+ addrlen = sizeof (sockaddr);
sockser_fd = accept (sockser_listen_fd, &sockaddr, &addrlen);
if (sockser_fd < 0)
return 0;