[cffi-devel] getifaddrs loop
pepone.onrez
pepone.onrez at gmail.com
Mon Dec 13 22:49:29 UTC 2010
Seems that the duplicated are expected, and the crash seems related to how i
access the name slot
If i change the code to remove the mem-ref form it works fine, but i don't
know what is the different.
(cffi:with-foreign-object (p
:pointer)
(ice-cffi:getifaddrs
p)
(do
()
((cffi:null-pointer-p
p))
(format t "Interface: ~a~%" (cffi:foreign-slot-value p 'ifaddrs
'name))
(setf p (cffi:foreign-slot-value p 'ifaddrs 'next))))
On Mon, Dec 13, 2010 at 10:39 PM, pepone.onrez <pepone.onrez at gmail.com>wrote:
> Hi,
>
> I don't understand why my loop crashes,
>
> Here is my grovel definition for ifaddrs struct:
>
> (cstruct ifaddrs "struct ifaddrs"
> (next "ifa_next" :type :pointer)
> (name "ifa_name" :type :string)
> (flags "ifa_flags" :type :unsigned-int)
> (address "ifa_addr" :type :pointer)
> (netmask "ifa_netmask" :type :pointer)
> (broadcast "ifa_broadaddr" :type :pointer)
> (point-to-point-destination "ifa_dstaddr" :type :pointer)
> (data "ifa_data" :type :pointer))
>
> Here is my loop, i was expecting next to be a null pointer after the first
> vmnet8
>
> CL-USER> (cffi:with-foreign-object (p
> :pointer)
>
> (getifaddrs
> p)
>
> (do
> ()
>
> ((cffi:null-pointer-p
> p))
>
> (format t "Interface: ~a~%" (cffi:foreign-slot-value
> (cffi:mem-ref p :pointer) 'ifaddrs
> 'name))
> (setf p (cffi:foreign-slot-value p 'ifaddrs 'next))))
> Interface:
> lo
>
> Interface:
> sit0
>
> Interface:
> eth0
>
> Interface:
> wlan0
>
> Interface:
> vmnet1
>
> Interface:
> vmnet8
>
> Interface:
> lo
>
> Interface:
> wlan0
>
> Interface:
> vmnet1
>
> Interface:
> vmnet8
>
> Interface:
> lo
>
> Interface:
> wlan0
>
> Interface:
> vmnet1
>
> Interface:
> vmnet8
>
> ; Evaluation aborted on #<SB-SYS:MEMORY-FAULT-ERROR {BF604E1}>.
>
> Regards,
> Jose
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20101213/c853e486/attachment.html>
More information about the cffi-devel
mailing list