mirror of
https://github.com/solemnwarning/ipxwrapper
synced 2024-12-30 16:45:37 +01:00
Implemented getpeername function.
This commit is contained in:
parent
3924db36b8
commit
412a4c3932
@ -17,3 +17,4 @@ EXPORTS
|
||||
WSHEnumProtocols
|
||||
connect
|
||||
send
|
||||
getpeername
|
||||
|
@ -131,5 +131,6 @@ SOCKET WSAAPI r_socket(int,int,int);
|
||||
int PASCAL r_ioctlsocket(SOCKET fd, long cmd, u_long *argp);
|
||||
int PASCAL r_connect(SOCKET fd, const struct sockaddr *addr, int addrlen);
|
||||
int PASCAL r_send(SOCKET fd, const char *buf, int len, int flags);
|
||||
int PASCAL r_getpeername(SOCKET fd, struct sockaddr *addr, int *addrlen);
|
||||
|
||||
#endif /* !IPXWRAPPER_H */
|
||||
|
@ -33,3 +33,4 @@ r_socket:4
|
||||
r_ioctlsocket:4
|
||||
r_connect:4
|
||||
r_send:4
|
||||
r_getpeername:4
|
||||
|
@ -817,3 +817,24 @@ int PASCAL send(SOCKET fd, const char *buf, int len, int flags) {
|
||||
return r_send(fd, buf, len, flags);
|
||||
}
|
||||
}
|
||||
|
||||
int PASCAL getpeername(SOCKET fd, struct sockaddr *addr, int *addrlen) {
|
||||
ipx_socket *sockptr = get_socket(fd);
|
||||
|
||||
if(sockptr) {
|
||||
if(!(sockptr->flags & IPX_CONNECTED)) {
|
||||
RETURN_WSA(WSAENOTCONN, -1);
|
||||
}
|
||||
|
||||
if(*addrlen < sizeof(struct sockaddr_ipx)) {
|
||||
RETURN_WSA(WSAEFAULT, -1);
|
||||
}
|
||||
|
||||
memcpy(addr, &(sockptr->remote_addr), sizeof(struct sockaddr_ipx));
|
||||
*addrlen = sizeof(struct sockaddr_ipx);
|
||||
|
||||
RETURN(0);
|
||||
}else{
|
||||
return r_getpeername(fd, addr, addrlen);
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ accept
|
||||
bind:0
|
||||
closesocket:0
|
||||
connect:0
|
||||
getpeername
|
||||
getpeername:0
|
||||
getsockname:0
|
||||
getsockopt:0
|
||||
htonl
|
||||
|
Loading…
x
Reference in New Issue
Block a user