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 )
mypy / Run mypy on ${{ matrix.target }} (Tools/build) (push) Successful in 11s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/cases_generator) (push) Successful in 11s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/clinic) (push) Successful in 11s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/jit) (push) Failing after 1m12s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/peg_generator) (push) Failing after 31s
Details
mypy / Run mypy on ${{ matrix.target }} (Tools/wasm) (push) Failing after 32s
Details
Tests / Change detection (push) Successful in 27m38s
Details
Tests / Docs (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (Win32, false, windows-latest) (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (arm64, false, windows-latest) (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (arm64, true, windows-latest) (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (x64, false, windows-latest) (push) Has been skipped
Details
Tests / Windows ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (x64, true, windows-latest) (push) Has been skipped
Details
Tests / Windows MSI${{ '' }} (arm64) (push) Has been skipped
Details
Tests / Windows MSI${{ '' }} (x64) (push) Has been skipped
Details
Tests / Windows MSI${{ '' }} (x86) (push) Has been skipped
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (false, ${{ github.repository_owner != 'python' }}, ghcr.io/cirruslabs/macos-runner:sonoma) (push) Failing after 33m6s
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (false, ${{ github.repository_owner != 'python' }}, macos-13) (push) Failing after 33m5s
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (true, ${{ github.repository_owner != 'python' }}, ghcr.io/cirruslabs/macos-runner:sonoma) (push) Failing after 28m22s
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (false, ${{ github.repository_owner != 'python' }}, macos-14) (push) Failing after 39m39s
Details
Tests / macOS ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (true, ${{ github.repository_owner != 'python' }}, macos-14) (push) Failing after 25m4s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (false, false, ubuntu-24.04) (push) Failing after 28m47s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (false, false, ubuntu-24.04-arm) (push) Failing after 28m45s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (false, true, ubuntu-24.04) (push) Failing after 28m23s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (true, false, ubuntu-24.04) (push) Failing after 26m42s
Details
Tests / Cross build Linux (push) Successful in 3m6s
Details
Tests / CIFuzz (address) (push) Has been skipped
Details
Tests / CIFuzz (memory) (push) Has been skipped
Details
Tests / CIFuzz (undefined) (push) Has been skipped
Details
Tests / WASI (push) Failing after 28m30s
Details
Tests / Ubuntu ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} ${{ fromJSON(matrix.bolt) && '(bolt)' || '' }} (false, true, ubuntu-24.04-arm) (push) Failing after 38m36s
Details
Tests / Thread sanitizer ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (false) (push) Failing after 27m52s
Details
Tests / Thread sanitizer ${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }} (true) (push) Successful in 50m36s
Details
Mark stale pull requests / stale (push) Has been skipped
Details
JIT / Interpreter (Debug) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (ARM64, false, 19, windows-latest, aarch64-pc-windows-msvc/msvc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (ARM64, true, 19, windows-latest, aarch64-pc-windows-msvc/msvc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (Win32, false, 19, windows-latest, i686-pc-windows-msvc/msvc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (Win32, true, 19, windows-latest, i686-pc-windows-msvc/msvc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (aarch64, false, 19, macos-14, aarch64-apple-darwin/clang) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (aarch64, false, 19, ubuntu-24.04-arm, aarch64-unknown-linux-gnu/gcc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (aarch64, true, 19, macos-14, aarch64-apple-darwin/clang) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (aarch64, true, 19, ubuntu-24.04-arm, aarch64-unknown-linux-gnu/gcc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (x64, false, 19, windows-latest, x86_64-pc-windows-msvc/msvc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (x64, true, 19, windows-latest, x86_64-pc-windows-msvc/msvc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (x86_64, false, 19, macos-13, x86_64-apple-darwin/clang) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (x86_64, false, 19, ubuntu-24.04, x86_64-unknown-linux-gnu/gcc) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (x86_64, true, 19, macos-13, x86_64-apple-darwin/clang) (push) Has been cancelled
Details
JIT / ${{ matrix.target }} (${{ matrix.debug && 'Debug' || 'Release' }}) (x86_64, true, 19, ubuntu-24.04, x86_64-unknown-linux-gnu/gcc) (push) Has been cancelled
Details
JIT / Free-Threaded (Debug) (19) (push) Has been cancelled
Details
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
Victor Stinner
e94dbe4ed8
gh-119461: Fix ThreadedVSOCKSocketStreamTest ( #119465 )
...
Add socket.VMADDR_CID_LOCAL constant.
Fix ThreadedVSOCKSocketStreamTest: if get_cid() returns the host
address or the "any" address, use the local communication address
(loopback): VMADDR_CID_LOCAL.
On Linux 6.9, apparently, the /dev/vsock device is now available but
get_cid() returns VMADDR_CID_ANY (-1).
2024-05-23 23:26:09 +02:00
Brett Simmers
c2627d6eea
gh-116322: Add Py_mod_gil module slot ( #116882 )
...
This PR adds the ability to enable the GIL if it was disabled at
interpreter startup, and modifies the multi-phase module initialization
path to enable the GIL when loading a module, unless that module's spec
includes a slot indicating it can run safely without the GIL.
PEP 703 called the constant for the slot `Py_mod_gil_not_used`; I went
with `Py_MOD_GIL_NOT_USED` for consistency with gh-104148.
A warning will be issued up to once per interpreter for the first
GIL-using module that is loaded. If `-v` is given, a shorter message
will be printed to stderr every time a GIL-using module is loaded
(including the first one that issues a warning).
2024-05-03 11:30:55 -04:00
Erlend E. Aasland
3b7fe117fa
gh-116616: Use relaxed atomic ops to access socket module defaulttimeout ( #116623 )
...
Co-authored-by: Sam Gross <colesbury@gmail.com>
2024-03-12 14:44:39 +01:00
Victor Stinner
145bc2d638
gh-110850: Use public PyTime functions ( #115746 )
...
Replace private _PyTime functions with public PyTime functions.
random_seed_time_pid() now reports errors to its caller.
2024-02-20 23:31:30 +00:00
Victor Westerhuis
e1fdc3c323
gh-104061: Add socket.SO_BINDTOIFINDEX constant (GH-104062)
...
Add socket.SO_BINDTOIFINDEX constant
This socket option avoids a race condition between SO_BINDTODEVICE and network interface renaming.
2024-02-20 23:08:15 +02:00
Victor Stinner
d207c7cd5a
gh-110850: Cleanup pycore_time.h includes ( #115724 )
...
<pycore_time.h> include is no longer needed to get the PyTime_t type
in internal header files. This type is now provided by <Python.h>
include. Add <pycore_time.h> includes to C files instead.
2024-02-20 16:50:43 +00:00
Victor Stinner
9af80ec83d
gh-110850: Replace _PyTime_t with PyTime_t ( #115719 )
...
Run command:
sed -i -e 's!\<_PyTime_t\>!PyTime_t!g' $(find -name "*.c" -o -name "*.h")
2024-02-20 15:02:27 +00:00
Zackery Spytz
0daf555c6f
bpo-37013: Fix the error handling in socket.if_indextoname() (GH-13503)
...
* Fix a crash when pass UINT_MAX.
* Fix an integer overflow on 64-bit non-Windows platforms.
2023-12-01 15:16:49 +00:00
adder32
fe9db901b2
gh-111995: Add getnameinfo extension flag ( #111994 )
...
Add getnameinfo extension NI_IDN flag.
2023-11-15 01:00:24 +00:00
Victor Stinner
4f04172c92
gh-111262: Add PyDict_Pop() function ( #112028 )
...
_PyDict_Pop_KnownHash(): remove the default value and the return type
becomes an int.
Co-authored-by: Stefan Behnel <stefan_ml@behnel.de>
Co-authored-by: Antoine Pitrou <pitrou@free.fr>
2023-11-14 12:51:00 +00:00
Bogdan Romanyuk
8fbe5314cd
gh-111662: Update socket module to use AC for optimizing performance (gh-111661)
2023-11-08 23:03:52 +09:00
scoder
a8a89fcd1f
gh-106320: Re-add some PyLong/PyDict C-API functions (GH-#111162)
...
* gh-106320: Re-add _PyLong_FromByteArray(), _PyLong_AsByteArray() and _PyLong_GCD() to the public header files since they are used by third-party packages and there is no efficient replacement.
See https://github.com/python/cpython/issues/111140
See https://github.com/python/cpython/issues/111139
* gh-111262: Re-add _PyDict_Pop() to have a C-API until a new public one is designed.
2023-10-25 11:33:48 +02:00
Nikita Sobolev
3052c098ca
gh-111253: Fix error checking in _socket module init ( #111254 )
2023-10-25 07:11:04 +00:00
Serhiy Storchaka
cb4f7462d1
gh-110093: Partially revert previous change in socketmodule.c (GH-111120)
2023-10-20 19:39:45 +03:00
Serhiy Storchaka
59ea0f523e
gh-110093: Replace trivial Py_BuildValue() with direct C API call (GH-110094)
2023-10-20 18:08:41 +03:00
Jakub Kulík
3b1580af07
gh-78469: Declare missing sethostname for Solaris 10 ( #109447 )
...
Add OS version specific macro for Solaris: Py_SUNOS_VERSION.
2023-10-09 21:18:05 +00:00
Victor Stinner
0e6d582b3b
gh-63760: Don't declare gethostname() on Solaris ( #108817 )
...
Since 2005, Solaris defines gethostname(). socketmodule.c no longer
has to define gethostname() for Solaris.
Oracle Solaris and OpenSolaris have patches to remove the
gethostname() definition in Python:
* https://github.com/oracle/solaris-userland/blob/master/components/python/python37/patches/15-gethostname.patch
* https://github.com/OpenIndiana/oi-userland/blob/oi/hipster/components/python/python37/patches/15-gethostname.patch
* https://github.com/omniosorg/omnios-build/blob/master/build/python27/patches/24-gethostname.patch
Co-authored-by: Jakub Kulík <Kulikjak@gmail.com>
2023-09-02 17:54:59 +00:00
Victor Stinner
594b00057e
gh-108765: Python.h no longer includes <unistd.h> ( #108783 )
2023-09-02 16:50:18 +02:00
Victor Stinner
1f3e797dc0
gh-108765: Remove old prototypes from pyport.h ( #108782 )
...
Move prototypes of gethostname(), _getpty() and struct termios from
pyport.h to the C code using them: posixmodule.c, socketmodule.c and
termios.c.
Replace "#ifdef SOLARIS" with "#ifdef __sun".
2023-09-02 15:46:43 +02:00
Victor Stinner
39506ee565
gh-108240: Add pycore_capsule.h internal header file ( #108596 )
...
Move _PyCapsule_SetTraverse() definition to a new internal header
file: pycore_capsule.h.
2023-08-29 01:20:02 +00:00
Serhiy Storchaka
2b15536fa9
gh-107913: Fix possible losses of OSError error codes (GH-107930)
...
Functions like PyErr_SetFromErrno() and SetFromWindowsErr() should be
called immediately after using the C API which sets errno or the Windows
error code.
2023-08-27 00:35:06 +03:00
Victor Stinner
b32d4cad15
gh-108444: Replace _PyLong_AsInt() with PyLong_AsInt() ( #108459 )
...
Change generated by the command:
sed -i -e 's!_PyLong_AsInt!PyLong_AsInt!g' \
$(find -name "*.c" -o -name "*.h")
2023-08-25 01:01:30 +02:00
Victor Stinner
26893016a7
gh-106320: Remove private _PyDict functions ( #108449 )
...
Move private functions to the internal C API (pycore_dict.h):
* _PyDictView_Intersect()
* _PyDictView_New()
* _PyDict_ContainsId()
* _PyDict_DelItemId()
* _PyDict_DelItem_KnownHash()
* _PyDict_GetItemIdWithError()
* _PyDict_GetItem_KnownHash()
* _PyDict_HasSplitTable()
* _PyDict_NewPresized()
* _PyDict_Next()
* _PyDict_Pop()
* _PyDict_SetItemId()
* _PyDict_SetItem_KnownHash()
* _PyDict_SizeOf()
No longer export most of these functions.
Move also the _PyDictViewObject structure to the internal C API.
Move dict_getitem_knownhash() function from _testcapi to the
_testinternalcapi extension. Update test_capi.test_dict for this
change.
2023-08-24 20:01:50 +00:00
Victor Stinner
513c89d012
gh-108240: Add _PyCapsule_SetTraverse() internal function ( #108339 )
...
The _socket extension uses _PyCapsule_SetTraverse() to visit and clear
the socket type in the garbage collector. So the _socket.socket type
can be cleared in some corner cases when it wasn't possible before.
2023-08-24 00:19:11 +02:00
Christopher Chavez
f01e4cedba
gh-104432: Use `memcpy()` to avoid misaligned loads ( #104433 )
...
Fix potential unaligned memory access on C APIs involving returned sequences
of `char *` pointers within the :mod:`grp` and :mod:`socket` modules. These
were revealed using a ``-fsaniziter=alignment`` build on ARM macOS.
2023-07-27 19:20:25 +00:00
Victor Stinner
1a3faba9f1
gh-106869: Use new PyMemberDef constant names ( #106871 )
...
* Remove '#include "structmember.h"'.
* If needed, add <stddef.h> to get offsetof() function.
* Update Parser/asdl_c.py to regenerate Python/Python-ast.c.
* Replace:
* T_SHORT => Py_T_SHORT
* T_INT => Py_T_INT
* T_LONG => Py_T_LONG
* T_FLOAT => Py_T_FLOAT
* T_DOUBLE => Py_T_DOUBLE
* T_STRING => Py_T_STRING
* T_OBJECT => _Py_T_OBJECT
* T_CHAR => Py_T_CHAR
* T_BYTE => Py_T_BYTE
* T_UBYTE => Py_T_UBYTE
* T_USHORT => Py_T_USHORT
* T_UINT => Py_T_UINT
* T_ULONG => Py_T_ULONG
* T_STRING_INPLACE => Py_T_STRING_INPLACE
* T_BOOL => Py_T_BOOL
* T_OBJECT_EX => Py_T_OBJECT_EX
* T_LONGLONG => Py_T_LONGLONG
* T_ULONGLONG => Py_T_ULONGLONG
* T_PYSSIZET => Py_T_PYSSIZET
* T_NONE => _Py_T_NONE
* READONLY => Py_READONLY
* PY_AUDIT_READ => Py_AUDIT_READ
* READ_RESTRICTED => Py_AUDIT_READ
* PY_WRITE_RESTRICTED => _Py_WRITE_RESTRICTED
* RESTRICTED => (READ_RESTRICTED | _Py_WRITE_RESTRICTED)
2023-07-25 15:28:30 +02:00
Serhiy Storchaka
a293fa5915
gh-86493: Use PyModule_Add() instead of PyModule_AddObjectRef() (GH-106860)
2023-07-18 23:59:53 +03:00
Inada Naoki
d5bd32fb48
gh-104922: remove PY_SSIZE_T_CLEAN ( #106315 )
2023-07-02 15:07:46 +09:00