diff options
author | simonmar <unknown> | 1999-11-26 16:29:44 +0000 |
---|---|---|
committer | simonmar <unknown> | 1999-11-26 16:29:44 +0000 |
commit | 7700dda03d273676b274bc148491a4e02a7c5ae0 (patch) | |
tree | 09de9743e3b9f9c7a4108660230969ce893947df /ghc/lib/misc/cbits/connectSocket.c | |
parent | ef33ed94129ee17b577add392e04619ec1f53800 (diff) | |
download | haskell-7700dda03d273676b274bc148491a4e02a7c5ae0.tar.gz |
[project @ 1999-11-26 16:29:09 by simonmar]
GHC bits for new library organisation.
Diffstat (limited to 'ghc/lib/misc/cbits/connectSocket.c')
-rw-r--r-- | ghc/lib/misc/cbits/connectSocket.c | 119 |
1 files changed, 0 insertions, 119 deletions
diff --git a/ghc/lib/misc/cbits/connectSocket.c b/ghc/lib/misc/cbits/connectSocket.c deleted file mode 100644 index 8b89dbe079..0000000000 --- a/ghc/lib/misc/cbits/connectSocket.c +++ /dev/null @@ -1,119 +0,0 @@ -#if 0 -% -% (c) The GRASP/AQUA Project, Glasgow University, 1995 -% -\subsection[connectSocket.lc]{Assign name to client socket} - -\begin{code} -#endif - -#define NON_POSIX_SOURCE -#include "Rts.h" -#include "ghcSockets.h" -#include "stgio.h" - -StgInt -connectSocket(I_ sockfd, A_ servaddr, I_ addrlen, I_ isUnixDomain) -{ - int rc; - - while ((rc = connect((int)sockfd, (struct sockaddr *)servaddr, (int)addrlen)) < 0) { -#if !defined(_WIN32) || defined(__CYGWIN__) || defined(__CYGWIN32__) - if (errno == EINPROGRESS) { - errno = 0; - return FILEOBJ_BLOCKED_WRITE; - - } else -#endif - if (errno != EINTR) { - cvtErrno(); - switch (ghc_errno) { - default: - stdErrno(); - break; - case GHC_EACCES: - ghc_errtype = ERR_PERMISSIONDENIED; - if (isUnixDomain != 0) - ghc_errstr = "For a component of path prefix of path name"; - else - ghc_errstr = "Requested address protected, cannot bind socket"; - break; - case GHC_EISCONN: - case GHC_EADDRINUSE: - ghc_errtype = ERR_RESOURCEBUSY; - ghc_errstr = "Address already in use"; - break; - case GHC_EADDRNOTAVAIL: - ghc_errtype = ERR_PERMISSIONDENIED; - ghc_errstr = "Address not available from local machine"; - break; - case GHC_EAFNOSUPPORT: - ghc_errtype = ERR_INVALIDARGUMENT; - ghc_errstr = "Address cannot be used with socket"; - break; - case GHC_EALREADY: - ghc_errtype = ERR_RESOURCEBUSY; - ghc_errstr = "Non-blocking socket, previous connection attempt not completed"; - break; - case GHC_EBADF: - ghc_errtype = ERR_INVALIDARGUMENT; - ghc_errstr = "Not a valid socket file descriptor"; - break; - case GHC_ECONNREFUSED: - ghc_errtype = ERR_PERMISSIONDENIED; - ghc_errstr = "Connection rejected"; - break; - case GHC_EFAULT: - ghc_errtype = ERR_INVALIDARGUMENT; - ghc_errstr = "Address not in valid part of process address space"; - break; - case GHC_EINVAL: - ghc_errtype = ERR_SYSTEMERROR; - ghc_errstr = "Specified size of structure not equal valid address for family"; - break; - case GHC_ENETUNREACH: - ghc_errtype = ERR_PERMISSIONDENIED; - ghc_errstr = "Network not reachable from host"; - break; - case GHC_ENOTSOCK: - ghc_errtype = ERR_INAPPROPRIATETYPE; - ghc_errstr = "Descriptor for file, not a socket"; - break; - case GHC_ETIMEDOUT: - ghc_errtype = ERR_TIMEEXPIRED; - ghc_errstr = "Connection attempt timed out"; - break; - case GHC_EIO: - ghc_errtype = ERR_SYSTEMERROR; - ghc_errstr = "Could not make directory entry or alloc inode"; - break; - case GHC_EISDIR: - ghc_errtype = ERR_INVALIDARGUMENT; - ghc_errstr = "A null path name was given"; - break; - case GHC_ELOOP: - ghc_errtype = ERR_SYSTEMERROR; - ghc_errstr = "Too many symbolic links encountered"; - break; - case GHC_ENAMETOOLONG: - ghc_errtype = ERR_INVALIDARGUMENT; - ghc_errstr = "Max length of path name exceeded"; - break; - case GHC_ENOENT: - ghc_errtype = ERR_INVALIDARGUMENT; - ghc_errstr = "Component in path prefix does not exist"; - break; - case GHC_ENOTDIR: - ghc_errtype = ERR_INVALIDARGUMENT; - ghc_errstr = "Component in path prefix is not a directory"; - break; - case GHC_EPROTOTYPE: - ghc_errtype = ERR_INVALIDARGUMENT; - ghc_errstr = "File referred to is a socket of differing type"; - break; - } - return -1; - } - } - return 0; -} |