Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^4: Net::Pcap installation help (and not with the library)

by taapm (Initiate)
on Apr 26, 2013 at 01:00 UTC ( #1030748=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Net::Pcap installation help (and not with the library)
in thread Net::Pcap installation help (and not with the library)

Thanks for the prompt reply. Here's what happens when I try to run the test script:

D:\strawberry\Net-Pcap-0.17>perl -Mblib test.pl Undefined subroutine &main::pcap_findalldevs called at test.pl line 3


Comment on Re^4: Net::Pcap installation help (and not with the library)
Download Code
Replies are listed 'Best First'.
Re^5: Net::Pcap installation help (and not with the library)
by VinsWorldcom (Vicar) on Apr 26, 2013 at 12:38 UTC

    I don't know if it matters, but I have different versions:

    Win7 x64

    Strawberry Perl 5.16.1

    Net::Pcap = 0.16

    WinPcap = 4.1.2

    The patches mentioned were written against Net::Pcap 0.16, not sure how the update to 0.17 will effect them?

    Also, not sure how using WinPcap 4.1.3 with the headers / libraries (WpdPack) for 4.1.2 will effect compile and run?

    UPDATE: The patches definitely don't work by just running 'patch' on the Net::Pcap 0.17 version as the Makefile.PL has some additional lines throwing off the patch files. However, looking at the patches and manually adding them worked fine for me.

    I did get a compilation error at first about "undefined reference to `pcap_..." but that was resolved by simply recreating the x64 libraries according to step 4 of the process above.

    The test.pl file also didn't work - gave an "Undefined subroutine &main::pcap_findalldevs called at test.pl line 3". It seems the 0.17 version of Net::Pcap handles the ':functions' export tag differently. This is resolved with a new test.pl as follows:

    use Net::Pcap; @devs = Net::Pcap::pcap_findalldevs(\%devinfo, \$err); for my $dev (@devs) { print "$dev : $devinfo{$dev}\n" }
      Thanks VERY much, Vin, for your help! In addition to your modified test.pl, for the benefit of others here are the minor patches to apply to Net-Pcap-0.17 to get it to compile correctly. Strangely, I did not have to redo step 4 like you had to.

      Apply these patches with the same command line option '-p1' as in Vin's original post:

      patch -p1 < net-pcap-0.17-makefile.patch patch -p1 < net-pcap-0.17-stubs.patch
      Here is net-pcap-0.17-makefile.patch:
      --- a/Makefile.PL Wed Apr 24 21:16:02 2013 +++ b/Makefile.PL Fri Apr 26 23:00:40 2013 @@ -296,7 +296,7 @@ $has_Win32 = !$@; $is_Win32 = ($^O eq 'MSWin32'); if ($is_Win32) { - $DEVNULL = 'DEVNULL'; + $DEVNULL = 'NUL:'; } else { $DEVNULL = eval { File::Spec->devnull }; if ($@) { $DEVNULL = '/dev/null' }
      And net-pcap-0.17-stubs.patch:
      --- a/stubs.inc Sun Oct 15 15:00:58 2006 +++ b/stubs.inc Fri Apr 26 23:09:52 2013 @@ -516,10 +516,13 @@ #ifdef _MSC_VER #pragma message( "Warning: the function pcap_setsampling() is not ava +ilable" ) #endif + +#ifndef HAVE_REMOTE struct pcap_samp { int method; int value; }; +#endif struct pcap_samp *pcap_setsampling(pcap_t *p); struct pcap_samp *pcap_setsampling(pcap_t *p) {

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1030748]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2015-07-08 05:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (94 votes), past polls