aboutsummaryrefslogtreecommitdiffstats
path: root/capture_wpcap_packet.c
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2005-05-21 09:41:57 +0000
committerUlf Lamping <ulf.lamping@web.de>2005-05-21 09:41:57 +0000
commitb5d1f77046792e88db90094a156e4722e34ad381 (patch)
tree161bfeb9ffb93a16f6208fcab9bff94c7e33ad0e /capture_wpcap_packet.c
parentb91e9cb311364ffb563f6e89e3ae4119aa9e4d1f (diff)
as suggested by Loris: add wpcap_packet_get_version() and check the packet.dll version before using it (very restrictive for now, will check for exact DLL version strings). If version is unknown, ask user to continue or not.
svn path=/trunk/; revision=14411
Diffstat (limited to 'capture_wpcap_packet.c')
-rw-r--r--capture_wpcap_packet.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/capture_wpcap_packet.c b/capture_wpcap_packet.c
index c208f9962b..d1ffcf25b1 100644
--- a/capture_wpcap_packet.c
+++ b/capture_wpcap_packet.c
@@ -79,6 +79,7 @@ gboolean has_wpacket = FALSE;
/******************************************************************************************************************************/
/* stuff to load WinPcap's packet.dll and the functions required from it */
+static PCHAR (*p_PacketGetVersion) (void);
static LPADAPTER (*p_PacketOpenAdapter) (char *adaptername);
static void (*p_PacketCloseAdapter) (LPADAPTER);
static int (*p_PacketRequest) (LPADAPTER, int, void *);
@@ -97,9 +98,10 @@ wpcap_packet_load(void)
/* These are the symbols I need or want from packet.dll */
static const symbol_table_t symbols[] = {
+ SYM(PacketGetVersion, FALSE),
SYM(PacketOpenAdapter, FALSE),
SYM(PacketCloseAdapter, FALSE),
- SYM(PacketRequest, TRUE),
+ SYM(PacketRequest, FALSE),
{ NULL, NULL, FALSE }
};
@@ -131,7 +133,6 @@ wpcap_packet_load(void)
sym++;
}
-
has_wpacket = TRUE;
}
@@ -141,12 +142,22 @@ wpcap_packet_load(void)
/* functions to access the NDIS driver values */
+/* get dll version */
+char *
+wpcap_packet_get_version(void)
+{
+ g_assert(has_wpacket);
+ return p_PacketGetVersion();
+}
+
+
/* open the interface */
void *
wpcap_packet_open(char *if_name)
{
- LPADAPTER adapter;
+ LPADAPTER adapter;
+ g_assert(has_wpacket);
adapter = p_PacketOpenAdapter(if_name);
return adapter;
@@ -158,6 +169,7 @@ void
wpcap_packet_close(void *adapter)
{
+ g_assert(has_wpacket);
p_PacketCloseAdapter(adapter);
}