Fix invalid argument in setsockopt on 32-bit archs with 64-bit time_t

Fixes an OSError: [Errno 22] Invalid argument when setting socket timeouts on 32-bit architectures using 64-bit time_t.

The issue was using struct.pack("ll", ...) which produces only 8 bytes on 32-bit systems (where long is 4 bytes), mismatching the kernel's expected 16-byte struct timeval.

This change switches to struct.pack("qq", ...) (long long), enforcing a 16-byte structure. This is correct for 64-bit time_t on all architectures, including x86_64 where long and long long are identical.

Merge request reports

Loading