summaryrefslogtreecommitdiffstats
path: root/Modules/socketmodule.c
Commit message (Collapse)AuthorAgeFilesLines
* gh-141817: Add IPV6_HDRINCL constant to the socket module (#141818)Chris Angelico2025-11-221-0/+3
| | | | Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* gh-100218: correctly set `errno` when `socket.if_{nametoindex,indextoname}` ↵Bénédikt Tran2025-11-091-2/+3
| | | | | | raise `OSError` (#140905) Previously, socket.if_nametoindex() and socket.if_indextoname() could raise an `OSError` with a `None` errno. Now, the errno from libc is propagated.
* gh-139748: fix leaks in AC error paths when using unicode FS-based ↵Bénédikt Tran2025-10-081-3/+2
| | | | converters (#139765)
* gh-138342: Move _PyObject_VisitType() to the internal C API (#139734)Victor Stinner2025-10-081-0/+1
|
* gh-67795: Accept any real numbers as timestamp and timeout (GH-139224)Serhiy Storchaka2025-09-231-1/+1
| | | | | | 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.
* gh-129813, PEP 782: Fix refleak in sock_recvfrom() (GH-139151)Victor Stinner2025-09-191-0/+1
|
* gh-129813, PEP 782: Use PyBytesWriter in socket recvmsg() (#139131)Victor Stinner2025-09-181-16/+16
| | | | Replace PyBytes_FromStringAndSize(NULL, size) and _PyBytes_Resize() with the new public PyBytesWriter API.
* gh-129813, PEP 782: Use PyBytesWriter in _socket (#139097)Victor Stinner2025-09-181-22/+14
| | | | Replace PyBytes_FromStringAndSize(NULL, size) and _PyBytes_Resize() with the new public PyBytesWriter API.
* gh-86819: Add ISO-TP CAN socket constants (#23794)Stefan Tatschner2025-09-171-0/+37
| | | | Co-authored-by: Stefan Tatschner <stefan@rumpelsepp.org> Co-authored-by: Patrick Menschel <menschel.p@posteo.de>
* gh-129813, PEP 782: Use PyBytesWriter in socket and mmap (#138831)Victor Stinner2025-09-131-7/+6
| | | | Replace PyBytes_FromStringAndSize(NULL, size) and _PyBytes_Resize() with the new public PyBytesWriter API.
* gh-138342: Use a common utility for visiting an object's type (GH-138343)Peter Bierma2025-09-011-8/+1
| | | Add `_PyObject_VisitType` in place of `tp_traverse` functions that only visit the object's type.
* GH-137623: Use an AC decorator for docstring line length enforcement (#137690)Adam Turner2025-08-181-2/+4
|
* gh-107545: Fix misleading setsockopt() error messages (GH-107546)naweiss2025-08-051-31/+62
|
* gh-135748: use argument clinic for more socket methods (#135749)Kumar Aditya2025-06-201-76/+72
|
* GH-131296: Suppress clang-cl warnings in socketmodule.c (GH-131821)Chris Eibl2025-06-091-11/+13
|
* gh-132886: use relaxed atomics for `sock_fd` in gil builds in socket module ↵Kumar Aditya2025-05-081-9/+0
| | | | (#133208)
* gh-133583: Add support for fixed size unsigned integers in argument parsing ↵Serhiy Storchaka2025-05-081-13/+2
| | | | | | | | (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().
* gh-132987: Support __index__() in the socket module (GH-133093)Serhiy Storchaka2025-04-291-142/+119
| | | | | | | | 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).
* gh-132991: Add socket.IP_FREEBIND constant (GH-132998)Alyssa Ross2025-04-261-0/+3
|
* gh-132734: Fix build on FreeBSD and old Linux (GH-132829)Serhiy Storchaka2025-04-231-1/+11
|
* gh-132734: Add new constants for Bluetooth sockets (GH-132735)Serhiy Storchaka2025-04-221-4/+133
|
* gh-129719: Restore missing `socket.CAN_RAW_ERR_FILTER` on Linux (#129721)Jeroen Bogers2025-04-181-1/+1
| | | | Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* gh-132099: Accept an integer as the address for BTPROTO_HCI on Linux (GH-132525)Serhiy Storchaka2025-04-161-1/+6
| | | | | | 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.
* gh-70145: Add support for channels in Bluetooth HCI protocol (GH-132481)Serhiy Storchaka2025-04-141-3/+19
|
* gh-132099: Harmonize Bluetooth address handling (GH-132486)Serhiy Storchaka2025-04-141-22/+21
| | | | | | | | | | 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.
* gh-132429: Fix support of Bluetooth sockets on NetBSD and DragonFly BSD ↵Serhiy Storchaka2025-04-121-68/+91
| | | | | | | (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.
* gh-85302: Add support for BTPROTO_SCO on FreeBSD (GH-131981)Serhiy Storchaka2025-04-111-8/+10
| | | | BTPROTO_SCO has been supported on FreeBSD since 2008.
* gh-132075: Fix possible use of sockaddr structures with uninitialized ↵Serhiy Storchaka2025-04-041-0/+13
| | | | | members (GH-132076) Now all structure members are initialized with zeroes by default.
* gh-111178: Fix getsockaddrarg() undefined behavior (#131668)Victor Stinner2025-04-011-14/+56
| | | | | | | | 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.
* gh-111178: Fix function signatures for test_socket (#131667)Victor Stinner2025-03-241-12/+16
| | | | Add unicode_fsdecode() wrapper for PyUnicode_DecodeFSDefault() to use the correct API for Py_BuildValue() converter API.
* gh-111178: Fix function signatures for test_os (#131227)Victor Stinner2025-03-141-1/+2
|
* gh-130099: Fix CAN socket fallthrough annotation for NetBSD compatibility ↵Furkan Onder2025-03-131-0/+2
| | | | (#131026)
* Remove vestigial code in socketmodule.c for Mac OS X 10.1 (#131090)Max Bachmann2025-03-131-15/+0
|
* gh-129288: Add optional l2_cid and l2_bdaddr_type in BTPROTO_L2CAP socket ↵Fredrik Ahlberg2025-02-271-5/+22
| | | | | | | | | | 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.
* gh-129354: Use PyErr_FormatUnraisable() function (#129656)Victor Stinner2025-02-041-1/+2
| | | Replace PyErr_WriteUnraisable() with PyErr_FormatUnraisable().
* gh-128452: fix warning in socketmodule.c (#129478)Kumar Aditya2025-01-311-0/+2
|
* gh-111178: fix UBSan failures in `Modules/socketmodule.c` (GH-128249)Bénédikt Tran2025-01-271-98/+154
|
* gh-128360: Add `_Py_AssertHoldsTstate` as assertion for holding a thread ↵Peter Bierma2025-01-201-4/+5
| | | | | state (#128361) Co-authored-by: Kumar Aditya <kumaraditya@python.org>
* gh-128277: remove unnecessary critical section from `socket.close` (#128305)Kumar Aditya2025-01-011-2/+1
| | | Remove unnecessary critical section from `socket.close` as it now uses relaxed atomics for `sock_fd`.
* gh-128277: make globals variables thread safe in socket module (#128286)Kumar Aditya2024-12-311-33/+23
|
* gh-128277: use relaxed atomics for `sock_fd` (#128304)Kumar Aditya2024-12-311-65/+102
|
* gh-124761: add `socket.SO_REUSEPORT_LB` (#124961)Thomas Grainger2024-12-261-0/+3
|
* gh-127072: Remove outdated `socket.NETLINK_*` constants. (GH-127256)RUANG (James Roy)2024-11-271-18/+2
| | | | | Remove seriously outdated netlink constants. Co-authored-by: Gregory P. Smith <greg@krypto.org>
* gh-126876: Fix socket internal_select() for large timeout (#126968)Victor Stinner2024-11-191-1/+4
| | | | | | If the timeout is larger than INT_MAX, replace it with INT_MAX, in the poll() code path. Add an unit test.
* gh-118986: expose `socket.IPV6_RECVERR` (#118987)chrysn2024-10-171-0/+3
|
* gh-124944: Add socket.SO_ORIGINAL_DST (#124945)Steven Jin2024-10-141-0/+3
|
* gh-115754: Use Py_GetConstant(Py_CONSTANT_EMPTY_STR) (#125194)Victor Stinner2024-10-091-1/+1
| | | | | Replace PyUnicode_New(0, 0), PyUnicode_FromString("") and PyUnicode_FromStringAndSize("", 0) with Py_GetConstant(Py_CONSTANT_EMPTY_STR).
* gh-84808: socket.connect_ex: Handle negative errno (GH-122304)Jérôme Duval2024-09-091-2/+17
| | | | | 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.
* gh-123476: Add support for TCP_QUICKACK socket setting to Windows (#123478)nkinnan2024-09-051-0/+22
| | | | | 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>
* gh-117657: Use critical section to make _socket.socket.close thread safe ↵AN Long2024-07-011-8/+13
| | | | (GH-120490)