diff options
Diffstat (limited to 'src/libsystemd/sd-device/device-monitor.c')
-rw-r--r-- | src/libsystemd/sd-device/device-monitor.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c index b86932663e..27d0af5918 100644 --- a/src/libsystemd/sd-device/device-monitor.c +++ b/src/libsystemd/sd-device/device-monitor.c @@ -93,14 +93,8 @@ _public_ int sd_device_monitor_set_receive_buffer_size(sd_device_monitor *m, siz assert_return(m, -EINVAL); assert_return((size_t) n == size, -EINVAL); - if (m->bound) - return log_debug_errno(SYNTHETIC_ERRNO(EOPNOTSUPP), - "sd-device-monitor: Socket fd is already bound. " - "It may be dangerous to change buffer size. " - "Refusing to change buffer size."); - - if (setsockopt_int(m->sock, SOL_SOCKET, SO_RCVBUF, n) < 0) { - r = setsockopt_int(m->sock, SOL_SOCKET, SO_RCVBUFFORCE, n); + if (setsockopt_int(m->sock, SOL_SOCKET, SO_RCVBUFFORCE, n) < 0) { + r = setsockopt_int(m->sock, SOL_SOCKET, SO_RCVBUF, n); if (r < 0) return r; } @@ -754,7 +748,7 @@ _public_ int sd_device_monitor_filter_remove(sd_device_monitor *m) { m->subsystem_filter = hashmap_free_free_free(m->subsystem_filter); m->tag_filter = set_free_free(m->tag_filter); - if (setsockopt(m->sock, SOL_SOCKET, SO_ATTACH_FILTER, &filter, sizeof(filter)) < 0) + if (setsockopt(m->sock, SOL_SOCKET, SO_DETACH_FILTER, &filter, sizeof(filter)) < 0) return -errno; m->filter_uptodate = true; |