summaryrefslogtreecommitdiff
path: root/ghc/lib/misc/cbits/bindSocket.c
blob: cf595480520bdf4724d2b14dd80d1fd93e1fde19 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#if 0
%
% (c) The GRASP/AQUA Project, Glasgow University, 1995
%
\subsection[bindSocket.lc]{Assign name to unnamed socket}

\begin{code}
#endif

#define NON_POSIX_SOURCE
#include "rtsdefs.h"
#include "ghcSockets.h"

StgInt
bindSocket(I_ sockfd, A_ myaddr, I_ addrlen, I_ isUnixDomain)
{
    int rc;
    
    while ((rc = bind((int)sockfd, (struct sockaddr *)myaddr, (int)addrlen)) < 0) {
      if (errno != EINTR) {
	  cvtErrno();
	  stdErrno();
	  return -1;
      }
    }
    return 0;
}