Software Release

PDF Convert
If the post is related to software release

jNetPcap Roadmap - feedback welcome

I would like to hear feedback on the current jnetpcap roadmap. Please let us know what you think. Notice there is a wishlist section, so may be a few items there?

http://jnetpcap.com/roadmap

Please leave feedback on this forum topic since comments are disabled on the roadmap page itself.

Verbosity in jUnits

I need to tone down the verbosity in all the jUnit test cases. They produce too much text output, which doesn't hurt anything, except it is hard to find any problems in the multitude of output produced.

I will be rearranging junit test cases into smaller and more logical test-suites. I already separated the test cases that require root privilege into its own separate group of tests. They can still be invoked using an ant target, when running under root. None the less with so many test cases, they still need to be broken down further. Possibly combined into bigger groups. Some test files only contain 1 or 2 test cases.

java.lang.UnsatisfiedLinkError: C:\Windows\System32\jnetpcap.dll: The specified procedure could not be found

Hi Mark

I downloaded and installed the latest 1.4 build but get the following error when trying to run my app.

run:
Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Windows\System32\jnetpcap.dll: The specified procedure could not be found
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
        at java.lang.Runtime.loadLibrary0(Runtime.java:823)
        at java.lang.System.loadLibrary(System.java:1030)
        at org.jnetpcap.Pcap.<clinit>(Pcap.java:469)
        at org.jnetpcap.PcapDLT.<init>(PcapDLT.java:180)
        at org.jnetpcap.PcapDLT.<clinit>(PcapDLT.java:72)
        at org.jnetpcap.protocol.JProtocol.<clinit>(JProtocol.java:56)
        at org.jnetpcap.packet.JRegistry.<clinit>(JRegistry.java:89)
        at diss.itb.jinterceptor.gui.MainFrame.<init>(MainFrame.java:71)
        at diss.itb.jinterceptor.gui.MainFrame$1.run(MainFrame.java:470)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

If I go back to a 1.3 (1.3b1-2) build then it runs. But I'm getting Nullpointer exceptions when reading from packets and getting the headers within a packet.

How to store captured packets on the fly?

Hej,

i recently stumbled upon this marvellous library and now i plan to build
an analysis tool which will be based on jNetPcap. This tool should
analyse and capture live traffic like Wireshark but with a slightly different focus.
(I don't want to build a second protocol dissector but focus more on the flow and session analysis.)
One requirement for this tool would be a relatively small memory footprint
but with the possibility to see the content of every captured packet on demand.
I.e. i don't want to store all the packets in the memory but nevertheless need fast access on every captured packet.
Now i wonder if there is any best practice how to achieve that.

The two possible solutions i encountered:

Receive, analyze every packet and then:

1. Store every packet immediately on the disc with the PcapDumper.dump() method and read this dump on demand (e.g. with the jNetStream-API) !?

or

2. Store the packets immediately on a DB and read on demand from the DB.
(-> this approach leads to further questions, like which DB to use, relational, OR, OO etc. )

Are there any other solutions? Has somebody tried something like this already?

I'm very happy for every feedback, hint, proposal, critique ...

Best regards

Philipp