mirror of
https://github.com/debauchee/barrier.git
synced 2026-05-09 07:22:21 +08:00
Replaced inet_addr() with inet_aton(), which is a better function
anyway but isn't implemented in winsock, removed use of INADDR_NONE which some platforms don't define except on winsock which does define it, and changed SOL_TCP to IPPROTO_TCP which should work on more platforms.
This commit is contained in:
@@ -29,7 +29,6 @@ int (PASCAL FAR *CNetwork::ioctl)(CNetwork::Socket s, int cmd, void FAR *);
|
||||
int (PASCAL FAR *CNetwork::getpeername)(CNetwork::Socket s, CNetwork::Address FAR *name, CNetwork::AddressLength FAR * namelen);
|
||||
int (PASCAL FAR *CNetwork::getsockname)(CNetwork::Socket s, CNetwork::Address FAR *name, CNetwork::AddressLength FAR * namelen);
|
||||
int (PASCAL FAR *CNetwork::getsockopt)(CNetwork::Socket s, int level, int optname, void FAR * optval, CNetwork::AddressLength FAR *optlen);
|
||||
unsigned long (PASCAL FAR *CNetwork::inet_addr)(const char FAR * cp);
|
||||
int (PASCAL FAR *CNetwork::listen)(CNetwork::Socket s, int backlog);
|
||||
ssize_t (PASCAL FAR *CNetwork::read)(CNetwork::Socket s, void FAR * buf, size_t len);
|
||||
ssize_t (PASCAL FAR *CNetwork::recv)(CNetwork::Socket s, void FAR * buf, size_t len, int flags);
|
||||
@@ -198,7 +197,7 @@ CNetwork::init2(
|
||||
setfunc(getpeername, getpeername, int (PASCAL FAR *)(Socket s, Address FAR *name, AddressLength FAR * namelen));
|
||||
setfunc(getsockname, getsockname, int (PASCAL FAR *)(Socket s, Address FAR *name, AddressLength FAR * namelen));
|
||||
setfunc(getsockopt, getsockopt, int (PASCAL FAR *)(Socket s, int level, int optname, void FAR * optval, AddressLength FAR *optlen));
|
||||
setfunc(inet_addr, inet_addr, unsigned long (PASCAL FAR *)(const char FAR * cp));
|
||||
setfunc(inet_addr_n, inet_addr, unsigned long (PASCAL FAR *)(const char FAR * cp));
|
||||
setfunc(inet_ntoa_n, inet_ntoa, char FAR * (PASCAL FAR *)(struct in_addr in));
|
||||
setfunc(listen, listen, int (PASCAL FAR *)(Socket s, int backlog));
|
||||
setfunc(recv, recv, ssize_t (PASCAL FAR *)(Socket s, void FAR * buf, size_t len, int flags));
|
||||
@@ -238,6 +237,22 @@ CNetwork::write2(Socket s, const void FAR* buf, size_t len)
|
||||
return send(s, buf, len, 0);
|
||||
}
|
||||
|
||||
int PASCAL FAR
|
||||
CNetwork::inet_aton(const char FAR * cp, InternetAddress FAR * addr)
|
||||
{
|
||||
assert(addr != NULL);
|
||||
|
||||
// fake it with inet_addr
|
||||
unsigned long inetAddr = inet_addr_n(cp);
|
||||
if (inetAddr == INADDR_NONE) {
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
*(addr->s_addr) = inetAddr;
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
CString PASCAL FAR
|
||||
CNetwork::inet_ntoa(struct in_addr in)
|
||||
{
|
||||
@@ -387,7 +402,7 @@ CNetwork::setnodelay(CNetwork::Socket s, bool nodelay)
|
||||
#include <sys/ioctl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
#if !defined(TCP_NODELAY) || !defined(SOL_TCP)
|
||||
#if !defined(TCP_NODELAY)
|
||||
# include <netinet/tcp.h>
|
||||
#endif
|
||||
|
||||
@@ -444,7 +459,6 @@ CNetwork::init()
|
||||
setfunc(getpeername, getpeername, int (PASCAL FAR *)(Socket s, Address FAR *name, AddressLength FAR * namelen));
|
||||
setfunc(getsockname, getsockname, int (PASCAL FAR *)(Socket s, Address FAR *name, AddressLength FAR * namelen));
|
||||
setfunc(getsockopt, getsockopt, int (PASCAL FAR *)(Socket s, int level, int optname, void FAR * optval, AddressLength FAR *optlen));
|
||||
setfunc(inet_addr, inet_addr, unsigned long (PASCAL FAR *)(const char FAR * cp));
|
||||
setfunc(listen, listen, int (PASCAL FAR *)(Socket s, int backlog));
|
||||
#if HAVE_POLL
|
||||
setfunc(poll, poll, int (PASCAL FAR *)(CNetwork::PollEntry fds[], int nfds, int timeout));
|
||||
@@ -483,6 +497,12 @@ CNetwork::getsockerror2(void)
|
||||
return errno;
|
||||
}
|
||||
|
||||
int PASCAL FAR
|
||||
CNetwork::inet_aton(const char FAR * cp, InternetAddress FAR * addr)
|
||||
{
|
||||
return ::inet_aton(cp, addr);
|
||||
}
|
||||
|
||||
CString PASCAL FAR
|
||||
CNetwork::inet_ntoa(struct in_addr in)
|
||||
{
|
||||
@@ -628,7 +648,7 @@ int PASCAL FAR
|
||||
CNetwork::setnodelay(CNetwork::Socket s, bool nodelay)
|
||||
{
|
||||
int flag = nodelay ? 1 : 0;
|
||||
setsockopt(s, SOL_TCP, TCP_NODELAY, &flag, sizeof(flag));
|
||||
setsockopt(s, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(flag));
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user