I'm trying to call setsockopt
but can't figure out the cast to c_void
. IP_HDRINCL
isn't in nix
or socket
crates, so I have to use libc
. I'm following the example of How to set the socket option SO_REUSEPORT in Rust?
let trueval: c_int = 1;
let ret = setsockopt(mysocket, IPPROTO_IP, IP_HDRINCL, &trueval as *const _ as *const c_void, mem::size_of_val(&trueval) as socklen_t);
error: expected expression, found keyword `const`
--> src/igmp.rs:30:97
|
30 | let ret = setsockopt(mysocket, IPPROTO_IP, IP_HDRINCL, &trueval as *const _ *const c_void, mem::size_of_val(&trueval) as socklen_t);
| ^^^^^ expected expression
Changing
trueval
to typeu8
allows the code to work.