mirror of
https://github.com/3proxy/3proxy.git
synced 2026-10-15 16:15:49 +08:00
Fix the build with MSVC: nssocket() a function everywhere
Outside Linux nssocket() was a macro, and two of its callers have #ifdef WITH_UN among its arguments. Preprocessor directives in macro arguments are undefined behaviour: gcc and clang take them, MSVC does not. It is a function on every system now. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
43ae0389bf
commit
3d5da0105d
@ -77,6 +77,11 @@ SOCKET nssocket(struct srvparam *srv, struct sockfuncs *sf, void *state, int sid
|
||||
errno = err;
|
||||
return s;
|
||||
}
|
||||
#else
|
||||
/* no network namespaces: a socket is made where it always is */
|
||||
SOCKET nssocket(struct srvparam *srv, struct sockfuncs *sf, void *state, int side, int domain, int type, int protocol){
|
||||
return sf->_socket(state, domain, type, protocol);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@ -245,10 +245,10 @@ int socks5_setaddr(int family, int atyp, const unsigned char *addr, PROXYSOCKADD
|
||||
#ifdef __linux__
|
||||
extern int mainnsfd;
|
||||
int nsopen(void);
|
||||
SOCKET nssocket(struct srvparam *srv, struct sockfuncs *sf, void *state, int side, int domain, int type, int protocol);
|
||||
#else
|
||||
#define nssocket(srv, sf, state, side, domain, type, protocol) ((sf)->_socket((state), (domain), (type), (protocol)))
|
||||
#endif
|
||||
/* a function everywhere, never a macro: its callers have preprocessor
|
||||
lines among its arguments */
|
||||
SOCKET nssocket(struct srvparam *srv, struct sockfuncs *sf, void *state, int side, int domain, int type, int protocol);
|
||||
int socksend(struct clientparam *param, SOCKET sock, unsigned char * buf, int bufsize, int to);
|
||||
int socksendto(struct clientparam *param, SOCKET sock, struct sockaddr * sin, unsigned char * buf, int bufsize, int to);
|
||||
int sockrecvfrom(struct clientparam *param, SOCKET sock, struct sockaddr * sin, unsigned char * buf, int bufsize, int to);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user