CVS: winex/dlls/netapi32 netapi32.c,1.5,1.6
[email protected] 31 Jul 2007 17:31:33 -0000
| Newsgroups | gmane.comp.emulators.winex.cvs |
|---|---|
| Message-ID | <[email protected]> |
Subject: winex/dlls/netapi32 netapi32.c,1.5,1.6Update of /var/lib/cvsd/cvsroot/winex/dlls/netapi32
In directory agravaine:/tmp/cvs-serv20174/dlls/netapi32
Modified Files:
netapi32.c
Log Message:
- handle testing for ethernet adapters w/o enumerating beforehand
- ignore adapters without MAC addresses
Index: netapi32.c
===================================================================
RCS file: /var/lib/cvsd/cvsroot/winex/dlls/netapi32/netapi32.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- netapi32.c 30 Mar 2007 20:16:21 -0000 1.5
+++ netapi32.c 31 Jul 2007 17:31:31 -0000 1.6
@@ -49,6 +49,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(netbios);
HMODULE NETAPI32_hModule = 0;
+static BOOL EnumDone = FALSE;
struct NetBiosAdapter
{
@@ -92,11 +93,15 @@
unsigned char buf[1024];
int i, ofs;
#endif
- LANA_ENUM *lanas = (PLANA_ENUM) ncb->ncb_buffer;
+ LANA_ENUM *lanas = NULL;
- TRACE("NCBENUM\n");
+ if (ncb)
+ {
+ lanas = (PLANA_ENUM) ncb->ncb_buffer;
+ lanas->length = 0;
+ }
- lanas->length = 0;
+ TRACE("NCBENUM\n");
#ifdef HAVE_NET_IF_H
/* BSD 4.4 defines the size of an ifreq to be
@@ -139,14 +144,20 @@
TRACE("Found valid adapter %d at %02x:%02x:%02x:%02x:%02x:%02x\n", i,
a[0],a[1],a[2],a[3],a[4],a[5]);
- NETBIOS_Adapter[i].valid = TRUE;
- lanas->lana[lanas->length] = i;
- lanas->length++;
+ if (a[0] || a[1] || a[2] || a[3] || a[4] || a[5])
+ NETBIOS_Adapter[i].valid = TRUE;
+
+ if (lanas)
+ {
+ lanas->lana[lanas->length] = i;
+ lanas->length++;
+ }
}
ofs += ifreq_size(ifr);
}
close(sd);
#endif /* HAVE_NET_IF_H */
+ EnumDone = TRUE;
return NRC_GOODRET;
}
@@ -195,7 +206,10 @@
switch(pncb->ncb_command&0x7f)
{
case NCBRESET:
- FIXME("NCBRESET adapter %d\n",pncb->ncb_lana_num);
+ if (!EnumDone)
+ NETBIOS_Enum (NULL);
+
+ TRACE("NCBRESET adapter %d\n",pncb->ncb_lana_num);
if( (pncb->ncb_lana_num < MAX_LANA ) &&
NETBIOS_Adapter[pncb->ncb_lana_num].valid)
ret = NRC_GOODRET;