[pypy-dev] Errors running pypy with ctype library

Greg Bowyer gbowyer at fastmail.co.uk
Fri Sep 9 00:24:32 CEST 2011


Humm interesting, I wonder why it works in Cpython, when I get the 
chance I will try making those changes and see if pypy works.
On 06/09/11 23:57, Amaury Forgeot d'Arc wrote:
> 2011/9/7 Greg Bowyer <gbowyer at fastmail.co.uk 
> <mailto:gbowyer at fastmail.co.uk>>
>
>     Hi all, I have a rather interesting in house networking tool that
>     uses pcap to sniff packets, take them into twisted and replay them
>     against a target.
>
>     Internally the tight loop for packet reassembly is currently run
>     via twisted and some custom parsing and packet reconstruction
>     code, I have been investigating if I can make this code faster
>     _without_ reimplementing the capture part in C, as such I think I
>     have two options:
>
>     * Pypy (which I would prefer as it means that I hopefully will
>     gain performance improvements over time, as well as JIT
>     acceleration throughout the code)
>     * Cython (which will let me change the main loop to be mostly C
>     without having to write a lot of C)
>
>     The tool currently uses an old style cPython c extension to bind
>     python to pcap, since this will be slow in pypy I found the first
>     semi implemented ctype pcap binding from google code here
>     (http://code.google.com/p/pcap/) (I didnt write it so it may be
>     broken)
>
>     The following test code works fine on cPython2.7
>
>
> The pcap module has an important issue; pcap_open_live() contains this 
> code:
>     error=c_char_p()
>     handle=pcap_c_funcs.pcap_open_live(source,snaplen,promisc,to_ms,error)
> Which is wrong: according to the man page, the "error" parameter
> "is assumed to be able to hold at least PCAP_ERRBUF_SIZE chars"
> which is not the case here, NULL is passed instead and bad things will 
> happen at runtime.
>
> pcap should be modified, probably with something like "error = 
> create_string_buffer(256)"
>
> -- 
> Amaury Forgeot d'Arc

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pypy-dev/attachments/20110908/44b0c864/attachment.html>


More information about the pypy-dev mailing list