1
0
mirror of https://github.com/solemnwarning/ipxwrapper synced 2024-12-30 16:45:37 +01:00

Updated getsockopt() and setsockopt() to return WSAENOPROTOOPT when given unimplemented NSPROTO_IPX options.

This commit is contained in:
Daniel Collins 2008-12-11 21:27:40 +00:00
parent b238bc000e
commit bf62ce71d6

View File

@ -444,16 +444,22 @@ int WSAAPI getsockopt(SOCKET fd, int level, int optname, char FAR *optval, int F
if(optname == IPX_PTYPE) {
CHECK_OPTLEN(sizeof(int));
*intval = ptr->s_ptype;
RETURN(0);
}
if(optname == IPX_FILTERPTYPE) {
CHECK_OPTLEN(sizeof(int));
*intval = ptr->f_ptype;
RETURN(0);
}
if(optname == IPX_MAXSIZE) {
CHECK_OPTLEN(sizeof(int));
*intval = MAX_PACKET_SIZE;
RETURN(0);
}
if(optname == IPX_ADDRESS) {
@ -482,6 +488,8 @@ int WSAAPI getsockopt(SOCKET fd, int level, int optname, char FAR *optval, int F
ipxdata->status = FALSE;
ipxdata->maxpkt = MAX_PACKET_SIZE;
ipxdata->linkspeed = 100000; /* 10MBps */
RETURN(0);
}
if(optname == IPX_MAX_ADAPTER_NUM) {
@ -494,9 +502,11 @@ int WSAAPI getsockopt(SOCKET fd, int level, int optname, char FAR *optval, int F
(*intval)++;
nic = nic->next;
}
RETURN(0);
}
RETURN(0);
RETURN_WSA(WSAENOPROTOOPT, -1);
}
}
@ -513,18 +523,22 @@ int WSAAPI setsockopt(SOCKET fd, int level, int optname, const char FAR *optval,
if(level == NSPROTO_IPX) {
if(optname == IPX_PTYPE) {
sockptr->s_ptype = *intval;
RETURN(0);
}
if(optname == IPX_FILTERPTYPE) {
sockptr->f_ptype = *intval;
sockptr->flags |= IPX_FILTER;
RETURN(0);
}
if(optname == IPX_STOPFILTERPTYPE) {
sockptr->flags &= ~IPX_FILTER;
RETURN(0);
}
RETURN(0);
RETURN_WSA(WSAENOPROTOOPT, -1);
}
if(level == SOL_SOCKET) {