Bénédikt Tran
b04a57deef
gh-139748: fix leaks in AC error paths when using unicode FS-based converters ( #139765 )
2025-10-08 20:52:44 +05:30
Victor Stinner
c4e7d245d6
gh-138342: Move _PyObject_VisitType() to the internal C API ( #139734 )
2025-10-08 12:10:58 +02:00
Serhiy Storchaka
1a2e00c97a
gh-67795: Accept any real numbers as timestamp and timeout (GH-139224)
...
Tests / (push) Blocked by required conditions
Tests / Windows MSI (push) Blocked by required conditions
Tests / Change detection (push) Waiting to run
Tests / Docs (push) Blocked by required conditions
Tests / Check if Autoconf files are up to date (push) Blocked by required conditions
Tests / Check if generated files are up to date (push) Blocked by required conditions
Tests / Ubuntu SSL tests with OpenSSL (push) Blocked by required conditions
Tests / Ubuntu SSL tests with AWS-LC (push) Blocked by required conditions
Tests / Android (aarch64) (push) Blocked by required conditions
Tests / Android (x86_64) (push) Blocked by required conditions
Tests / WASI (push) Blocked by required conditions
Tests / Hypothesis tests on Ubuntu (push) Blocked by required conditions
Tests / Address sanitizer (push) Blocked by required conditions
Tests / Sanitizers (push) Blocked by required conditions
Tests / Cross build Linux (push) Blocked by required conditions
Tests / CIFuzz (push) Blocked by required conditions
Tests / All required checks pass (push) Blocked by required conditions
Lint / lint (push) Waiting to run
mypy / Run mypy on Lib/_pyrepl (push) Waiting to run
mypy / Run mypy on Lib/test/libregrtest (push) Waiting to run
mypy / Run mypy on Lib/tomllib (push) Waiting to run
mypy / Run mypy on Tools/build (push) Waiting to run
mypy / Run mypy on Tools/cases_generator (push) Waiting to run
mypy / Run mypy on Tools/clinic (push) Waiting to run
mypy / Run mypy on Tools/jit (push) Waiting to run
mypy / Run mypy on Tools/peg_generator (push) Waiting to run
Functions that take timestamp or timeout arguments now accept any
real numbers (such as Decimal and Fraction), not only integers or floats,
although this does not improve precision.
2025-09-23 21:31:42 +03:00
Victor Stinner
47485c0384
gh-129813, PEP 782: Fix refleak in sock_recvfrom() (GH-139151)
2025-09-19 09:30:11 +00:00
Victor Stinner
d641c41c88
gh-129813, PEP 782: Use PyBytesWriter in socket recvmsg() ( #139131 )
...
Replace PyBytes_FromStringAndSize(NULL, size) and _PyBytes_Resize()
with the new public PyBytesWriter API.
2025-09-18 17:57:04 +02:00
Victor Stinner
4263bc3b3b
gh-129813, PEP 782: Use PyBytesWriter in _socket ( #139097 )
...
Replace PyBytes_FromStringAndSize(NULL, size) and _PyBytes_Resize()
with the new public PyBytesWriter API.
2025-09-18 11:20:56 +02:00
Stefan Tatschner
a9b6b09141
gh-86819: Add ISO-TP CAN socket constants ( #23794 )
...
Co-authored-by: Stefan Tatschner <stefan@rumpelsepp.org>
Co-authored-by: Patrick Menschel <menschel.p@posteo.de>
2025-09-17 17:18:04 +00:00
Victor Stinner
bb743b684b
gh-129813, PEP 782: Use PyBytesWriter in socket and mmap ( #138831 )
...
Replace PyBytes_FromStringAndSize(NULL, size) and _PyBytes_Resize()
with the new public PyBytesWriter API.
2025-09-13 18:31:26 +02:00
Peter Bierma
4f6ecd10c2
gh-138342: Use a common utility for visiting an object's type (GH-138343)
...
Add `_PyObject_VisitType` in place of `tp_traverse` functions that only visit the object's type.
2025-09-01 16:20:33 +00:00
Adam Turner
918e3ba6c0
GH-137623: Use an AC decorator for docstring line length enforcement ( #137690 )
2025-08-18 18:29:00 +01:00
naweiss
a50822ff94
gh-107545: Fix misleading setsockopt() error messages (GH-107546)
2025-08-05 10:16:14 +00:00
Kumar Aditya
c825b5d989
gh-135748: use argument clinic for more socket methods ( #135749 )
2025-06-20 12:02:37 +00:00
Chris Eibl
cc8e6d2703
GH-131296: Suppress clang-cl warnings in socketmodule.c (GH-131821)
2025-06-09 17:38:41 +01:00
Kumar Aditya
2d82ab761a
gh-132886: use relaxed atomics for sock_fd in gil builds in socket module ( #133208 )
2025-05-08 22:33:41 +05:30
Serhiy Storchaka
4c914e7a36
gh-133583: Add support for fixed size unsigned integers in argument parsing (GH-133584)
...
* Add Argument Clinic converters: uint8, uint16, uint32, uint64.
* Add private C API: _PyLong_UInt8_Converter(),
_PyLong_UInt16_Converter(), _PyLong_UInt32_Converter(),
_PyLong_UInt64_Converter().
2025-05-08 12:27:50 +03:00
Serhiy Storchaka
4265854d96
gh-132987: Support __index__() in the socket module (GH-133093)
...
ntohl(), htonl(), if_indextoname(), getaddrinfo() now use __index__() if
available.
Also fix the Argument Clinic names for module-level functions (although
this does not affect the user).
2025-04-29 19:27:07 +03:00
Alyssa Ross
314f4b9716
gh-132991: Add socket.IP_FREEBIND constant (GH-132998)
2025-04-26 20:54:12 +03:00
Serhiy Storchaka
d7be26a71e
gh-132734: Fix build on FreeBSD and old Linux (GH-132829)
2025-04-23 14:08:30 +03:00
Serhiy Storchaka
e84624450d
gh-132734: Add new constants for Bluetooth sockets (GH-132735)
2025-04-22 11:02:13 +00:00
Jeroen Bogers
ce31ae5209
gh-129719: Restore missing socket.CAN_RAW_ERR_FILTER on Linux ( #129721 )
...
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
2025-04-18 22:59:37 +03:00
Serhiy Storchaka
8cb177d09b
gh-132099: Accept an integer as the address for BTPROTO_HCI on Linux (GH-132525)
...
Previously only an integer packed in a tuple was accepted, while
getsockname() could return a raw integer.
Now the result of getsockname() is always acceptable as an address.
2025-04-16 13:02:51 +03:00
Serhiy Storchaka
61638418a7
gh-70145: Add support for channels in Bluetooth HCI protocol (GH-132481)
2025-04-14 20:09:16 +03:00
Serhiy Storchaka
1fc1df8dcc
gh-132099: Harmonize Bluetooth address handling (GH-132486)
...
Now all protocols always accept the Bluetooth address as string and
getsockname() always returns the Bluetooth address as string.
* BTPROTO_SCO now accepts not only bytes, but str.
* BTPROTO_SCO now checks address for embedded null.
* On *BSD, BTPROTO_HCI now accepts str instead of bytes.
* On FreeBSD, getsockname() for BTPROTO_HCI now returns str instead of bytes.
* On NetBSD and DragonFly BDS, BTPROTO_HCI now checks address for embedded null.
2025-04-14 08:58:56 +03:00
Serhiy Storchaka
f2f86d3f45
gh-132429: Fix support of Bluetooth sockets on NetBSD and DragonFly BSD (GH-132431)
...
* Also add support for cid and bdaddr_type in the BTPROTO_L2CAP address on FreeBSD.
* Return cid in getsockname() for BTPROTO_L2CAP if it is not zero.
* Fix a compiler warning on FreeBSD.
2025-04-12 23:57:34 +03:00
Serhiy Storchaka
e5f8b2c703
gh-85302: Add support for BTPROTO_SCO on FreeBSD (GH-131981)
...
BTPROTO_SCO has been supported on FreeBSD since 2008.
2025-04-11 19:38:17 +03:00
Serhiy Storchaka
345baa77ba
gh-132075: Fix possible use of sockaddr structures with uninitialized members (GH-132076)
...
Now all structure members are initialized with zeroes by default.
2025-04-04 17:09:58 +03:00
Victor Stinner
8cd29c2b53
gh-111178: Fix getsockaddrarg() undefined behavior ( #131668 )
...
Don't pass direct references to sockaddr members since their type may
not match PyArg_ParseTuple() types. Instead, use temporary 'int' and
'unsigned char' variables, and update sockaddr members afterwards.
On FreeBSD, treat BTPROTO_HCI node name as a bytes string,
not as an integer.
2025-04-01 13:54:27 +00:00
Victor Stinner
69e94e0a1b
gh-111178: Fix function signatures for test_socket ( #131667 )
...
Add unicode_fsdecode() wrapper for PyUnicode_DecodeFSDefault() to use
the correct API for Py_BuildValue() converter API.
2025-03-24 14:51:32 +00:00
Victor Stinner
db62557e3d
gh-111178: Fix function signatures for test_os ( #131227 )
2025-03-14 13:53:06 +00:00
Furkan Onder
e98d321bef
gh-130099: Fix CAN socket fallthrough annotation for NetBSD compatibility ( #131026 )
2025-03-13 11:25:43 +01:00
Max Bachmann
f7ac656c8e
Remove vestigial code in socketmodule.c for Mac OS X 10.1 ( #131090 )
2025-03-13 00:13:07 -04:00
Fredrik Ahlberg
45a24f54af
gh-129288: Add optional l2_cid and l2_bdaddr_type in BTPROTO_L2CAP socket address tuple ( #129293 )
...
Add two optional, traling elements in the AF_BLUETOOTH socket address tuple:
- l2_cid, to allow e.g raw LE ATT connections
- l2_bdaddr_type. To be able to connect L2CAP sockets to Bluetooth LE devices,
the l2_bdaddr_type must be set to BDADDR_LE_PUBLIC or BDADDR_LE_RANDOM.
2025-02-27 12:51:47 +00:00
Victor Stinner
14489c1bb4
gh-129354: Use PyErr_FormatUnraisable() function ( #129656 )
...
Replace PyErr_WriteUnraisable() with PyErr_FormatUnraisable().
2025-02-04 16:21:10 +01:00
Kumar Aditya
c07ac3c86a
gh-128452: fix warning in socketmodule.c ( #129478 )
2025-01-31 13:41:11 +05:30
Bénédikt Tran
6bb03c7490
gh-111178: fix UBSan failures in Modules/socketmodule.c (GH-128249)
2025-01-27 15:06:10 +01:00
Peter Bierma
4d0a6595a0
gh-128360: Add _Py_AssertHoldsTstate as assertion for holding a thread state ( #128361 )
...
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
2025-01-20 17:04:35 +05:30
Kumar Aditya
bb9d955e16
gh-128277: remove unnecessary critical section from socket.close ( #128305 )
...
Remove unnecessary critical section from `socket.close` as it now uses relaxed atomics for `sock_fd`.
2025-01-01 18:00:47 +05:30
Kumar Aditya
e389d6c650
gh-128277: make globals variables thread safe in socket module ( #128286 )
2024-12-31 19:10:06 +05:30
Kumar Aditya
7c72c1f0df
gh-128277: use relaxed atomics for sock_fd ( #128304 )
2024-12-31 11:50:35 +05:30
Thomas Grainger
9ddc388527
gh-124761: add socket.SO_REUSEPORT_LB ( #124961 )
2024-12-26 20:20:20 +05:30
RUANG (James Roy)
6d3b5206cf
gh-127072: Remove outdated socket.NETLINK_* constants. (GH-127256)
...
Remove seriously outdated netlink constants.
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2024-11-27 06:53:41 +00:00
Victor Stinner
b3687ad454
gh-126876: Fix socket internal_select() for large timeout ( #126968 )
...
If the timeout is larger than INT_MAX, replace it with INT_MAX, in
the poll() code path.
Add an unit test.
2024-11-19 09:08:42 +01:00
chrysn
b454662921
gh-118986: expose socket.IPV6_RECVERR ( #118987 )
2024-10-17 20:49:12 +03:00
Steven Jin
1bffd7a2a7
gh-124944: Add socket.SO_ORIGINAL_DST ( #124945 )
2024-10-15 00:36:38 +02:00
Victor Stinner
b9a8ca0a6a
gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) ( #125194 )
...
Replace PyUnicode_New(0, 0), PyUnicode_FromString("")
and PyUnicode_FromStringAndSize("", 0)
with Py_GetConstant(Py_CONSTANT_EMPTY_STR).
2024-10-09 17:15:23 +02:00
Jérôme Duval
65fcaa38ad
gh-84808: socket.connect_ex: Handle negative errno (GH-122304)
...
POSIX allows errno to be negative.
Even though all currently supported platforms have non-negative errno,
relying on a quirk like that would make Python less portable.
2024-09-09 14:59:13 +00:00
nkinnan
b5aa271f86
gh-123476: Add support for TCP_QUICKACK socket setting to Windows ( #123478 )
...
Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Steve Dower <steve.dower@microsoft.com>
2024-09-05 22:59:48 +02:00
AN Long
8a5176772c
gh-117657: Use critical section to make _socket.socket.close thread safe (GH-120490)
2024-07-01 16:38:30 +02:00
Victor Stinner
12af8ec864
gh-121040: Use __attribute__((fallthrough)) ( #121044 )
...
Fix warnings when using -Wimplicit-fallthrough compiler flag.
Annotate explicitly "fall through" switch cases with a new
_Py_FALLTHROUGH macro which uses __attribute__((fallthrough)) if
available. Replace "fall through" comments with _Py_FALLTHROUGH.
Add _Py__has_attribute() macro. No longer define __has_attribute()
macro if it's not defined. Move also _Py__has_builtin() at the top
of pyport.h.
Co-Authored-By: Nikita Sobolev <mail@sobolevn.me>
2024-06-27 09:58:44 +00:00
Nikita Sobolev
f5a9c34f38
gh-120056: Add IP_RECVERR, IP_RECVORIGDSTADDR, IP_RECVTTL to socket module ( #120058 )
...
* gh-120056: Add `IP_RECVERR` and `IP_RECVTTL` to `socket` module
* Fix news
* Address review
* Update NEWS
2024-06-11 21:00:56 -04:00