lldp_rx->fd = safe_close(lldp_rx->fd);
}
+int sd_lldp_rx_is_running(sd_lldp_rx *lldp_rx) {
+ if (!lldp_rx)
+ return false;
+
+ return lldp_rx->fd >= 0;
+}
+
_public_ int sd_lldp_rx_start(sd_lldp_rx *lldp_rx) {
int r;
assert_return(lldp_rx->event, -EINVAL);
assert_return(lldp_rx->ifindex > 0, -EINVAL);
- if (lldp_rx->fd >= 0)
+ if (sd_lldp_rx_is_running(lldp_rx))
return 0;
assert(!lldp_rx->io_event_source);
}
_public_ int sd_lldp_rx_stop(sd_lldp_rx *lldp_rx) {
- if (!lldp_rx)
- return 0;
-
- if (lldp_rx->fd < 0)
+ if (!sd_lldp_rx_is_running(lldp_rx))
return 0;
log_lldp_rx(lldp_rx, "Stopping LLDP client");
int r;
assert_return(lldp_rx, -EINVAL);
- assert_return(lldp_rx->fd < 0, -EBUSY);
+ assert_return(!sd_lldp_rx_is_running(lldp_rx), -EBUSY);
assert_return(!lldp_rx->event, -EBUSY);
if (event)
}
_public_ int sd_lldp_rx_detach_event(sd_lldp_rx *lldp_rx) {
-
assert_return(lldp_rx, -EINVAL);
- assert_return(lldp_rx->fd < 0, -EBUSY);
+ assert_return(!sd_lldp_rx_is_running(lldp_rx), -EBUSY);
lldp_rx->event = sd_event_unref(lldp_rx->event);
return 0;
_public_ int sd_lldp_rx_set_ifindex(sd_lldp_rx *lldp_rx, int ifindex) {
assert_return(lldp_rx, -EINVAL);
assert_return(ifindex > 0, -EINVAL);
- assert_return(lldp_rx->fd < 0, -EBUSY);
+ assert_return(!sd_lldp_rx_is_running(lldp_rx), -EBUSY);
lldp_rx->ifindex = ifindex;
return 0;
int sd_lldp_rx_start(sd_lldp_rx *lldp_rx);
int sd_lldp_rx_stop(sd_lldp_rx *lldp_rx);
+int sd_lldp_rx_is_running(sd_lldp_rx *lldp_rx);
int sd_lldp_rx_attach_event(sd_lldp_rx *lldp_rx, sd_event *event, int64_t priority);
int sd_lldp_rx_detach_event(sd_lldp_rx *lldp_rx);