More work on Win32 IPX support

This commit is contained in:
pagefault
2001-04-18 19:25:13 +00:00
parent a6f50c5c77
commit f21e38bfa7

View File

@@ -18,8 +18,49 @@
#include <windows.h>
#include <wsipx.h>
#include <wsnwlink.h>
void ipx_init() {
int iAdapters,iOpt=sizeof(iAdapters),iSize=sizeof(SOCKADDR_IPX);
SOCKET skNum;
SOCKADDR_IPX Addr;
WSADATA Wsa;
// Init Winsock and get IPX address
if (WSAStartup(0x0101,&Wsa)) return;
if ((skNum=socket(AF_IPX,SOCK_DGRAM,NSPROTO_IPX)) != INVALID_SOCKET)
{
memset(&Addr,0,sizeof(Addr));
Addr.sa_family=AF_IPX;
if (bind(skNum,(SOCKADDR *)&Addr,iSize)!=SOCKET_ERROR)
{
if (getsockopt(skNum,NSPROTO_IPX,IPX_MAX_ADAPTER_NUM,
(char *)&iAdapters,&iOpt)!=SOCKET_ERROR)
{
while(iAdapters)
{
IPX_ADDRESS_DATA Data;
memset(&Data,0,sizeof(Data));
Data.adapternum=iAdapters-1;
iOpt=sizeof(Data);
if (getsockopt(skNum,NSPROTO_IPX,IPX_ADDRESS, (char *) &Data,
&iOpt)!=SOCKET_ERROR)
{
// sprintf("Addr: %02X%02X%02X%02X:%02X%02X%02X%02X%02X%02X\n",
// (int)Data.netnum[0],(int)Data.netnum[1],(int)Data.netnum[2],
// (int)Data.netnum[3],(int)Data.netnum[4],(int)Data.netnum[5],
// (int)Data.netnum[6],(int)Data.netnum[7],(int)Data.netnum[8],
// (int)Data.netnum[9]);
}
iAdapters--;
}
}
}
closesocket(skNum);
}
WSACleanup();
}
void sendpacket() {