add temporary debug printlns
parent
cf04cc0c23
commit
0d50532c9f
|
@ -1330,6 +1330,7 @@ static int parse_peers(const struct nlattr *attr, void *data)
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return ret;
|
return ret;
|
||||||
if (!(new_peer->flags & WGPEER_HAS_PUBLIC_KEY)) {
|
if (!(new_peer->flags & WGPEER_HAS_PUBLIC_KEY)) {
|
||||||
|
printf("netlink validity error: peer doesn't have public key (required)");
|
||||||
errno = ENXIO;
|
errno = ENXIO;
|
||||||
return MNL_CB_ERROR;
|
return MNL_CB_ERROR;
|
||||||
}
|
}
|
||||||
|
@ -1415,11 +1416,14 @@ int wg_get_device(wg_device **device, const char *device_name)
|
||||||
|
|
||||||
try_again:
|
try_again:
|
||||||
*device = calloc(1, sizeof(wg_device));
|
*device = calloc(1, sizeof(wg_device));
|
||||||
if (!*device)
|
if (!*device) {
|
||||||
|
printf("failed to calloc device struct");
|
||||||
return -errno;
|
return -errno;
|
||||||
|
}
|
||||||
|
|
||||||
nlg = mnlg_socket_open(WG_GENL_NAME, WG_GENL_VERSION);
|
nlg = mnlg_socket_open(WG_GENL_NAME, WG_GENL_VERSION);
|
||||||
if (!nlg) {
|
if (!nlg) {
|
||||||
|
printf("failed to open netlink socket");
|
||||||
wg_free_device(*device);
|
wg_free_device(*device);
|
||||||
*device = NULL;
|
*device = NULL;
|
||||||
return -errno;
|
return -errno;
|
||||||
|
@ -1428,11 +1432,13 @@ try_again:
|
||||||
nlh = mnlg_msg_prepare(nlg, WG_CMD_GET_DEVICE, NLM_F_REQUEST | NLM_F_ACK | NLM_F_DUMP);
|
nlh = mnlg_msg_prepare(nlg, WG_CMD_GET_DEVICE, NLM_F_REQUEST | NLM_F_ACK | NLM_F_DUMP);
|
||||||
mnl_attr_put_strz(nlh, WGDEVICE_A_IFNAME, device_name);
|
mnl_attr_put_strz(nlh, WGDEVICE_A_IFNAME, device_name);
|
||||||
if (mnlg_socket_send(nlg, nlh) < 0) {
|
if (mnlg_socket_send(nlg, nlh) < 0) {
|
||||||
|
printf("failed to send netlink request");
|
||||||
ret = -errno;
|
ret = -errno;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
errno = 0;
|
errno = 0;
|
||||||
if (mnlg_socket_recv_run(nlg, read_device_cb, *device) < 0) {
|
if (mnlg_socket_recv_run(nlg, read_device_cb, *device) < 0) {
|
||||||
|
printf("failed to receive netlink response");
|
||||||
ret = errno ? -errno : -EINVAL;
|
ret = errno ? -errno : -EINVAL;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -1442,9 +1448,12 @@ out:
|
||||||
if (nlg)
|
if (nlg)
|
||||||
mnlg_socket_close(nlg);
|
mnlg_socket_close(nlg);
|
||||||
if (ret) {
|
if (ret) {
|
||||||
|
printf("out: ret was non-zero (%d)", ret);
|
||||||
wg_free_device(*device);
|
wg_free_device(*device);
|
||||||
if (ret == -EINTR)
|
if (ret == -EINTR) {
|
||||||
|
printf("out: trying again");
|
||||||
goto try_again;
|
goto try_again;
|
||||||
|
}
|
||||||
*device = NULL;
|
*device = NULL;
|
||||||
}
|
}
|
||||||
errno = -ret;
|
errno = -ret;
|
||||||
|
|
|
@ -243,6 +243,7 @@ fn encode_peers(
|
||||||
*mut wireguard_control_sys::wg_peer,
|
*mut wireguard_control_sys::wg_peer,
|
||||||
*mut wireguard_control_sys::wg_peer,
|
*mut wireguard_control_sys::wg_peer,
|
||||||
) {
|
) {
|
||||||
|
println!("encoding {} peers", peers.len());
|
||||||
let mut first_peer = ptr::null_mut();
|
let mut first_peer = ptr::null_mut();
|
||||||
let mut last_peer: *mut wireguard_control_sys::wg_peer = ptr::null_mut();
|
let mut last_peer: *mut wireguard_control_sys::wg_peer = ptr::null_mut();
|
||||||
|
|
||||||
|
@ -253,10 +254,7 @@ fn encode_peers(
|
||||||
public_key: peer.public_key.0,
|
public_key: peer.public_key.0,
|
||||||
preshared_key: wireguard_control_sys::wg_key::default(),
|
preshared_key: wireguard_control_sys::wg_key::default(),
|
||||||
endpoint: encode_endpoint(peer.endpoint),
|
endpoint: encode_endpoint(peer.endpoint),
|
||||||
last_handshake_time: timespec64 {
|
last_handshake_time: timespec64::default(),
|
||||||
tv_sec: 0,
|
|
||||||
tv_nsec: 0,
|
|
||||||
},
|
|
||||||
tx_bytes: 0,
|
tx_bytes: 0,
|
||||||
rx_bytes: 0,
|
rx_bytes: 0,
|
||||||
persistent_keepalive_interval: 0,
|
persistent_keepalive_interval: 0,
|
||||||
|
@ -396,7 +394,9 @@ pub fn get_by_name(name: &InterfaceName) -> Result<Device, io::Error> {
|
||||||
let result = if ret == 0 && !device.is_null() {
|
let result = if ret == 0 && !device.is_null() {
|
||||||
Ok(Device::from(unsafe { &*device }))
|
Ok(Device::from(unsafe { &*device }))
|
||||||
} else {
|
} else {
|
||||||
Err(io::Error::last_os_error())
|
let last_error = io::Error::last_os_error();
|
||||||
|
println!("FFI ret code was {}, &device is {:p}, last OS error: {:?}", ret, device, last_error.raw_os_error());
|
||||||
|
Err(last_error)
|
||||||
};
|
};
|
||||||
|
|
||||||
unsafe { wireguard_control_sys::wg_free_device(device) };
|
unsafe { wireguard_control_sys::wg_free_device(device) };
|
||||||
|
|
Loading…
Reference in New Issue