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.