diff options
| author | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-12-08 17:21:08 +0100 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@intec.ugent.be> | 2016-12-08 17:21:08 +0100 | 
| commit | 7c2191370c1c4b891df4d1016baeb220ce1d8dca (patch) | |
| tree | 870f4b0a6c869d0e82b48260f5c84b0c991ebd74 /src/irmd | |
| parent | d257e862662f5692c5bdd922adf125a5c1f02e7e (diff) | |
| parent | 12935222221e316d188075602f07c372e00c855e (diff) | |
| download | ouroboros-7c2191370c1c4b891df4d1016baeb220ce1d8dca.tar.gz ouroboros-7c2191370c1c4b891df4d1016baeb220ce1d8dca.zip | |
Merged in dstaesse/ouroboros/be-bsd (pull request #321)
irmd, ipcp: Call select on FreeBSD
Diffstat (limited to 'src/irmd')
| -rw-r--r-- | src/irmd/main.c | 12 | 
1 files changed, 11 insertions, 1 deletions
| diff --git a/src/irmd/main.c b/src/irmd/main.c index d8cb27fa..dc0c26f2 100644 --- a/src/irmd/main.c +++ b/src/irmd/main.c @@ -1804,6 +1804,11 @@ void * mainloop(void * o)          (void) o;          while (true) { +#ifdef __FreeBSD__ +                fd_set fds; +                struct timeval timeout = {(IRMD_ACCEPT_TIMEOUT / 1000), +                                          (IRMD_ACCEPT_TIMEOUT % 1000) * 1000}; +#endif                  int cli_sockfd;                  irm_msg_t * msg;                  ssize_t count; @@ -1822,7 +1827,12 @@ void * mainloop(void * o)                  pthread_rwlock_unlock(&irmd->state_lock);                  ret_msg.code = IRM_MSG_CODE__IRM_REPLY; - +#ifdef __FreeBSD__ +                FD_ZERO(&fds); +                FD_SET(irmd->sockfd, &fds); +                if (select(irmd->sockfd, &fds, NULL, NULL, &timeout) <= 0) +                        continue; +#endif                  cli_sockfd = accept(irmd->sockfd, 0, 0);                  if (cli_sockfd < 0)                          continue; | 
