On Jun 20, 2013, at 12:52 PM, Ben Greear <[email protected]> wrote:

> I'm trying to upgrade from an older (OEM) winpcap to winpcap OME 4.1.2.
> 
> I have been using code like this:
> 
>      oid->Oid = OID_GEN_MEDIA_CONNECT_STATUS;
>      oid->Length = 1024 - (sizeof(oid->Oid) - sizeof(oid->Length));
>      if (PacketRequest(np->adapter, false, oid)) {
> 
> But, it seems that the 'struct pcap' is no longer defined anywhere,
> and I cannot find anything equivalent to get the adapter.
> 
> Anyone have any ideas?

I would suggest writing a pcap_get_adapter() routine:

        /*
         * XXX - "struct pcap" is not guaranteed to look the same from
         * release to release, so use this only with current releases;
         * if it changes, the future release should include a pcap_get_adapter()
         * routine that will return the ADAPTER regardless of the layout of
         * the structure.
         */
        struct pcap_internal {
                ADAPTER *adapter;
        };

        ADAPTER *
        pcap_get_adapter(pcap_t *p)
        {
                struct pcap_internal *p_int = (struct pcap_internal *)(void *)p;

                return (p->adapter);
        }

and be prepared for a future release perhaps 1) having the "adapter" member at 
a different offset in the pcap_t structure (which is opaque outside 
libpcap/WinPcap, and subject to change from release to release) and 2) 
providing a pcap_get_adapter() routine.  (See libpcap checkins 
e9e96bbc3efd45ba6d1dbb097bc09845ba54c5d6 and 
2933fb0ae763f9463eb904ed6ddf0a033b6ba635; some future WinPcap release might 
pick up a newer libpcap version, but there's a fair bit of libpcap work needed 
to make that happen, so that remote capture is still available.)
_______________________________________________
Winpcap-users mailing list
[email protected]
https://www.winpcap.org/mailman/listinfo/winpcap-users

Reply via email to