Christian Heimes
d0e31b980f
bpo-32454: socket closefd ( #5048 )
...
Add close(fd) function to the socket module
Signed-off-by: Christian Heimes <christian@python.org>
2018-01-27 09:54:13 +01:00
Max Bélanger
af11a15c58
bpo-32282: Remove unnecessary check for `VersionHelpers.h` in `socketmodule.c` on Windows
2018-01-07 13:05:18 +11:00
Yury Selivanov
9818142b1b
bpo-32331: Fix socket.type when SOCK_NONBLOCK is available ( #4877 )
2017-12-18 20:02:54 -05:00
Serhiy Storchaka
d3187158c0
bpo-31927: Fix bugs in socketmodule.c on NetBSD and other issues. ( #4235 )
...
* Fix compilation of the socket module on NetBSD 8.
* Fix the assertion failure or reading arbitrary data when parse
a AF_BLUETOOTH address on NetBSD and DragonFly BSD.
* Fix other potential errors and make the code more reliable.
2017-11-09 18:00:38 +02:00
luzpaz
a5293b4ff2
Fix miscellaneous typos ( #4275 )
2017-11-05 15:37:50 +02:00
Erik Bray
03eb11f0b3
bpo-16135: Cleanup: Code rot left over from OS/2 support (GH-4147)
...
Remove dangling references to PYCC_VACPP that are not relelvant
since removal of OS/2 support.
2017-10-27 05:27:06 -07:00
Erik Bray
63ae04461f
Fix _socket module compilation on Cygwin. ( #4137 )
2017-10-27 13:01:17 +03:00
Pablo Galindo
59af94fa61
bpo-31806: Use _PyTime_ROUND_TIMEOUT for the timeout argument parsing in more functions ( #4026 )
...
Fix timeout rounding in time.sleep(), threading.Lock.acquire() and
socket.socket.settimeout() to round correctly negative timeouts between -1.0 and
0.0. The functions now block waiting for events as expected. Previously, the
call was incorrectly non-blocking.
2017-10-18 10:13:09 +03:00
Zackery Spytz
834a5cecac
Remove a null statement that was necessary for --without-threads ( #3478 )
2017-09-11 12:37:10 +02:00
Serhiy Storchaka
e3b2b4b8d9
bpo-31393: Fix the use of PyUnicode_READY(). ( #3451 )
2017-09-08 09:58:51 +03:00
Antoine Pitrou
a6a4dc816d
bpo-31370: Remove support for threads-less builds ( #3385 )
...
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
caavery
effc12f8e9
bpo-27584: New addition of vSockets to the python socket module ( #2489 )
...
* bpo-27584: New addition of vSockets to the python socket module
Support for AF_VSOCK on Linux only
* bpo-27584: Fixes for V2
Fixed syntax and naming problems.
Fixed #ifdef AF_VSOCK checking
Restored original aclocal.m4
* bpo-27584: Fixes for V3
Added checking for fcntl and thread modules.
* bpo-27584: Fixes for V4
Fixed white space error
* bpo-27584: Fixes for V5
Added back comma in (CID, port).
* bpo-27584: Fixes for V6
Added news file.
socket.rst now reflects first Linux introduction of AF_VSOCK.
Fixed get_cid in test_socket.py.
Replaced PyLong_FromLong with PyLong_FromUnsignedLong in socketmodule.c
Got rid of extra AF_VSOCK #define.
Added sockaddr_vm to sock_addr.
* bpo-27584: Fixes for V7
Minor cleanup.
* bpo-27584: Fixes for V8
Put back #undef AF_VSOCK as it is necessary when vm_sockets.h is not installed.
2017-09-06 15:18:10 -07:00
Benjamin Peterson
069306312a
remove IRIX support (closes bpo-31341) ( #3310 )
...
See PEP 11.
2017-09-04 16:36:05 -07:00
Pier-Yves Lessard
a30f6d45ac
bpo-30987 - Support for ISO-TP protocol in SocketCAN ( #2956 )
...
* Added support for CAN_ISOTP protocol
* Added unit tests for CAN ISOTP
* Updated documentation for ISO-TP protocol
* Removed trailing whitespace in documentation
* Added blurb NEWS.d file
* updated Misc/ACKS
* Fixed broken unit test that was using isotp const outside of skippable section
* Removed dependecy over third party project
* Added implementation for getsockname + unit tests
* Missing newline at end of ACKS file
* Accidentally inserted a type in ACKS file
* Followed tiran changes review #1 recommendations
* Added spaces after comma
2017-08-28 10:32:44 +02:00
Oren Milman
1d1d3e9db8
bpo-28261: Fixed err msgs where PyArg_ParseTuple is used to parse normal tuples. ( #3119 )
2017-08-20 18:35:36 +03:00
Victor Stinner
67e1478dba
bpo-30319: socket.close() now ignores ECONNRESET ( #2565 )
...
socket.close() was modified in Python 3.6 to raise OSError on
failure: see bpo-26685.
2017-07-04 16:20:06 +02:00
Segev Finer
9f3bdcb643
bpo-23451: Fix socket deprecation warnings in socketmodule.c ( #2318 )
...
* bpo-23451: Fix WSASocket and WSADuplicateSocket deprecation warnings
* bpo-23451: Add backwards compatibility note about socket share/fromshare
* bpo-23451: Fixed `WSAAddressToString`/`WSAStringToAddress` deprecation warnings
* bpo-23451: Use `inet_pton`/`inet_ntop` instead of `WSAAddressToString`/`WSAStringToAddress`
* bpo-23451: Move `HAVE_INET_PTON` from _socket.vcxproj to pyconfig.h
* bpo-23451: Add SUPPRESS_DEPRECATED_CALL to socketmodule.c
* bpo-23451: Add a NEWS.d entry
* bpo-23451: Corrected NEWS.d entry
2017-06-28 13:51:00 -07:00
Antoine Pitrou
495b5021e7
bpo-30205: Fix getsockname() for unbound AF_UNIX sockets on Linux ( #1370 )
...
* bpo-30205: Fix getsockname() for unbound AF_UNIX sockets on Linux
* Add NEWS entry
2017-05-02 17:20:00 +02:00
Nathaniel J. Smith
1e2147b9d7
bpo-29728: Provide socket.TCP_NOTSENT_LOWAT ( #477 )
...
* Provide socket.TCP_NOTSENT_LOWAT
* New TCP option available on recent MacOS and Linux.
* Document addition of TCP_NOTSENT_LOWAT
2017-03-22 20:56:55 -07:00
Christian Heimes
d37c068e69
Add sockaddr_alg to sock_addr_t ( #234 )
...
sock_addr_t is used to define the minimum size of any socket address on
the stack. Let's make sure that an AF_ALG address always fits. Coverity
complains because in theory, AF_ALG might be larger than any of the other
structs. In practice it already fits.
Closes Coverity CID 1398948, 1398949, 1398950
Signed-off-by: Christian Heimes <christian@python.org>
2017-02-22 12:12:00 +01:00
Maximilian Hils
5ec08cea95
Remove double definition of IPPROTO_IPV6 ( #100 )
...
IPPROTO_IPV6 is already defined further above in the same way.
2017-02-15 01:46:08 +03:00
Serhiy Storchaka
228b12edcc
Issue #28999 : Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE wherever
...
possible. Patch is writen with Coccinelle.
2017-01-23 09:47:21 +02:00
Gregory P. Smith
8128d5a491
Address a minor Coverity warning re: unchecked PyArg_ParseTuple calls
...
in socket.sendto(). A PyErr_Occurred() check was happening later, but
it is better to just use the return value and not call PyErr_Occurred().
2017-01-17 16:54:56 -08:00
Victor Stinner
4f8dc3d15c
Add TCP_CONGESTION and TCP_USER_TIMEOUT
...
Issue #26273 : Add new socket.TCP_CONGESTION (Linux 2.6.13) and
socket.TCP_USER_TIMEOUT (Linux 2.6.37) constants.
Patch written by Omar Sandoval.
2016-11-29 16:55:04 +01:00
Serhiy Storchaka
85b0f5beb1
Added the const qualifier to char* variables that refer to readonly internal
...
UTF-8 represenatation of Unicode objects.
2016-11-20 10:16:47 +02:00
Serhiy Storchaka
a98c4a984b
Replaced outdated macros _PyUnicode_AsString and _PyUnicode_AsStringAndSize
...
with PyUnicode_AsUTF8 and PyUnicode_AsUTF8AndSize.
2016-11-20 09:13:40 +02:00
Serhiy Storchaka
06515833fe
Replaced outdated macros _PyUnicode_AsString and _PyUnicode_AsStringAndSize
...
with PyUnicode_AsUTF8 and PyUnicode_AsUTF8AndSize.
2016-11-20 09:13:07 +02:00
Martin Panter
5e17ad9716
Merge AIX fixes from 3.6
2016-11-14 05:04:36 +00:00
Martin Panter
f8cebad290
Merge AIX fixes from 3.5 into 3.6
2016-11-14 05:04:12 +00:00
Martin Panter
c9e08d8cb5
Issue #28000 : Fix gethostbyname_r() usage on AIX with _LINUX_SOURCE_COMPAT
...
Patch by Matthieu S.
2016-11-14 04:26:36 +00:00
Martin Panter
812f6e1f23
Issue #28480 : Merge multithreading fixes from 3.6
2016-10-20 05:25:14 +00:00
Martin Panter
fa27d5f229
Issue #28480 : Avoid label at end of compound statement --without-threads
...
Based on patch by Masayuki Yamamoto.
2016-10-20 00:48:23 +00:00
Yury Selivanov
193a360570
Merge 3.6 (issue #28471 )
2016-10-18 16:04:40 -04:00
Yury Selivanov
fa22b29960
Issue #28471 : Fix crash (GIL state related) in socket.setblocking
2016-10-18 16:03:52 -04:00
Serhiy Storchaka
6a7d3480fc
Issue #28332 : Deprecated silent truncations in socket.htons and socket.ntohs.
...
Original patch by Oren Milman.
2016-10-02 12:34:40 +03:00
Martin Panter
d508d00919
Issue #28139 : Merge indentation fixes from 3.5 into 3.6
2016-09-17 07:59:14 +00:00
Martin Panter
6d57fe1c23
Issue #28139 : Fix messed up indentation
...
Also update the classmethod and staticmethod doc strings and comments to
match the RST documentation.
2016-09-17 03:26:16 +00:00
Christian Heimes
faf2cea1fd
Fix NULL check in sock_sendmsg_iovec. CID 1372885
2016-09-13 10:07:16 +02:00
Victor Stinner
52d61e485e
socket: Fix memory leak in sendmsg() and sendmsg_afalg()
...
Issue #27744 :
* Release msg.msg_iov memory block.
* Release memory on PyMem_Malloc(controllen) failure
2016-09-12 11:41:58 +02:00
Victor Stinner
288b5bf624
Cleanup socketmodule.c
...
Issue #27744 :
* PEP 7: add {...} around if blocks
* assign variables and then check their value in if() to make the code easier
to read and to debug.
2016-09-12 11:45:59 +02:00
Christian Heimes
0b9d64ebfe
Issue 18550: Check return value of ioctl() / fnctl() in internal_setblocking
...
The function internal_setblocking() of the socket module did not check
the return values of ioctl() and fnctl().
CID 1294328
2016-09-09 00:28:57 +02:00
Martin Panter
0be894b2f6
Issue #27895 : Spelling fixes (Contributed by Ville Skyttä).
2016-09-07 12:03:06 +00:00
Benjamin Peterson
b6c345878a
use the '__linux__' instead 'linux' preprocessor define
2016-09-07 14:08:34 -07:00
Christian Heimes
8c21ab0ab9
Issue #27744 : correct comment and markup
2016-09-06 00:07:02 +02:00
Christian Heimes
dffa3949c7
Issue #27744 : Add AF_ALG (Linux Kernel crypto) to socket module.
2016-09-05 23:54:41 +02:00
Raymond Hettinger
15f44ab043
Issue #27895 : Spelling fixes (Contributed by Ville Skyttä).
2016-08-30 10:47:49 -07:00
R David Murray
bdfa0ebff7
#26907 : add some missing getsockopt constants.
...
Patch by Christian Heimes, reviewed by Martin Panter.
2016-08-23 21:12:40 -04:00
Berker Peksag
95e0df8389
Issue #27702 : Only expose SOCK_RAW when defined
...
SOCK_RAW is marked as optional in the POSIX specification:
http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html
Patch by Ed Schouten.
2016-08-08 14:07:05 +03:00
Victor Stinner
d3afb62b8f
Merge 3.5 (INVALID_SOCKET)
2016-07-22 17:47:09 +02:00
Victor Stinner
524714eeda
socket: use INVALID_SOCKET
...
* Replace "fd = -1" with "fd = INVALID_SOCKET"
* Replace "fd < 0" with "fd == INVALID_SOCKET": SOCKET_T is unsigned on Windows
Bug found by Pavel Belikov ("Fragment N1"):
http://www.viva64.com/en/b/0414/#ID0ECDAE
2016-07-22 17:43:59 +02:00
Victor Stinner
5e1989ce89
Merge 3.5 (fix internal_select)
2016-07-22 17:28:55 +02:00
Victor Stinner
0cec877230
socket: Fix internal_select()
...
Bug found by Pavel Belikov ("Fragment N1"):
http://www.viva64.com/en/b/0414/#ID0ECDAE
2016-07-22 17:26:53 +02:00
Martin Panter
b466f8facf
Remove duplicate AF_INET6 addition
2016-06-25 03:06:58 +00:00
Berker Peksag
3583c3bd1d
Issue #26536 : Use spaces instead of tabs
2016-06-18 16:43:25 +03:00
Steve Dower
ea93ac013d
Issue #26536 : socket.ioctl now supports SIO_LOOPBACK_FAST_PATH. Patch by Daniel Stokes.
2016-06-17 12:52:18 -07:00
doko@ubuntu.com
fcff437de3
- Comment out socket (SO_REUSEPORT) and posix (O_SHLOCK, O_EXLOCK) constants
...
exposed on the API which are not implemented on GNU/Hurd. They would not
work at runtime anyway.
2016-06-13 16:33:04 +02:00
Stefan Krah
1f9eb879d5
Issue #26857 : The gethostbyaddr_r() workaround is no longer needed with
...
api-level >= 23. Patch by Xavier de Gaye.
2016-05-22 17:35:34 +02:00
Stefan Krah
432dfcf3bc
Issue #26857 : Workaround for missing symbol "gethostbyaddr_r" on Android.
2016-04-26 16:20:17 +02:00
Serhiy Storchaka
21a663ea28
Issue #26057 : Got rid of nonneeded use of PyUnicode_FromObject().
2016-04-13 15:37:23 +03:00
Martin Panter
50ab1a3694
Issue #26685 : Raise OSError if closing a socket fails
2016-04-11 00:38:12 +00:00
Victor Stinner
cc73932125
socketmodule.c: error if option larger than INT_MAX
...
On Windows, socket.setsockopt() raises an OverflowError if the socket option is
larger than INT_MAX bytes.
2016-03-23 21:35:29 +01:00
Victor Stinner
19a8e844e4
Add socket finalizer
...
Issue #26590 : Implement a safe finalizer for the _socket.socket type. It now
releases the GIL to close the socket. Use PyErr_ResourceWarning() to raise the
ResourceWarning to pass the socket object to the warning logger, to get the
traceback where the socket was created (allocated).
2016-03-21 16:36:48 +01:00
Victor Stinner
f664dc5834
ResourceWarning: Revert change on socket and scandir
...
io.FileIO has a safe implementation of destructor, but not socket nor scandir.
2016-03-19 02:01:48 +01:00
Victor Stinner
914cde89d4
On ResourceWarning, log traceback where the object was allocated
...
Issue #26567 :
* Add a new function PyErr_ResourceWarning() function to pass the destroyed
object
* Add a source attribute to warnings.WarningMessage
* Add warnings._showwarnmsg() which uses tracemalloc to get the traceback where
source object was allocated.
2016-03-19 01:03:51 +01:00
Ned Deily
3d2778c8da
Issue #26406 : merge from 3.5
2016-02-23 22:10:06 +11:00
Ned Deily
e1d4e58777
Issue #26406 : Avoid unnecessary serialization of getaddrinfo(3) calls on
...
current versions of OpenBSD and NetBSD. Patch by A. Jesse Jiryu Davis.
2016-02-23 22:05:29 +11:00
Ned Deily
00538ffe3a
Issue #25924 : merge with 3.5
2016-02-15 16:57:04 +11:00
Ned Deily
47299fd39c
Issue #25924 : Avoid unnecessary serialization of getaddrinfo(3) calls on OS X
...
versions 10.5 or higher. Original patch by A. Jesse Jiryu Davis.
2016-02-15 16:54:08 +11:00
Victor Stinner
c8d2fb4112
Merge 3.5: Issue #26227
2016-01-28 15:44:10 +01:00
Victor Stinner
7240030c52
Windows: Decode hostname from ANSI code page
...
Issue #26227 : On Windows, getnameinfo(), gethostbyaddr() and gethostbyname_ex()
functions of the socket module now decode the hostname from the ANSI code page
rather than UTF-8.
2016-01-28 15:41:01 +01:00
Raymond Hettinger
1ce6885f8a
Fix compiler warning about obviously unreachable code.
2016-01-24 22:15:20 -08:00
Serhiy Storchaka
ef1585eb9a
Issue #25923 : Added more const qualifiers to signatures of static and private functions.
2015-12-25 20:01:53 +02:00
Victor Stinner
bc5b80bac1
Close #24784 : Fix compilation without thread support
...
Add "#ifdef WITH_THREAD" around cals to:
* PyGILState_Check()
* _PyImport_AcquireLock()
* _PyImport_ReleaseLock()
2015-10-11 09:54:42 +02:00
Victor Stinner
92f0113701
Close #24784 : Fix compilation without thread support
...
Add "#ifdef WITH_THREAD" around cals to:
* PyGILState_Check()
* _PyImport_AcquireLock()
* _PyImport_ReleaseLock()
2015-10-11 09:54:42 +02:00
Victor Stinner
f9fdfa7c4e
Merge 3.4
2015-09-11 12:38:17 +02:00
Victor Stinner
ec1a498a01
Issue #24684 : socket.socket.getaddrinfo() now calls
...
PyUnicode_AsEncodedString() instead of calling the encode() method of the
host, to handle correctly custom string with an encode() method which doesn't
return a byte string. The encoder of the IDNA codec is now called directly
instead of calling the encode() method of the string.
2015-09-11 12:37:30 +02:00
Victor Stinner
bea232a15f
Issue #24732 , #23834 : Fix sock_accept_impl() on Windows
...
accept() returns INVALID_SOCKET on error, it's not necessary a negative number.
2015-07-27 23:37:11 +02:00
Larry Hastings
a6cc551502
Issue #22631 : Added Linux-specific socket constant CAN_RAW_FD_FRAMES.
...
Patch courtesy of Joe Jevnik.
2015-04-13 17:48:40 -04:00
Victor Stinner
ced1174525
Issue #23618 : Fix internal_select() for negative timeout (blocking socket) when
...
poll() is not available.
select() doesn't accept negative timeout, the timeout parameter must be NULL to
block on select().
2015-04-09 10:27:25 +02:00
Victor Stinner
88ed640fc7
Issue #23834 : Fix the default socket timeout
...
Use -1 second by default, not -1 nanosecond.
2015-04-09 10:23:12 +02:00
Victor Stinner
222dfc7d94
Issue #22117 : Fix sock_call_ex() for non-blocking socket
...
Call internal_select() with a timeout of 0 second, not a timeout of -1 second
(blocking)!
2015-04-06 22:30:41 +02:00
Victor Stinner
8912d1418e
Issue #23853 : socket.socket.sendall() does no more reset the socket timeout
...
each time data is sent successfuly. The socket timeout is now the maximum total
duration to send all data.
2015-04-06 23:16:34 +02:00
Victor Stinner
9001d8089c
Issue #23834 : Fix initial value of the socket timeout
...
Use _PyTime_FromSeconds() to initialize the default socket timeout to -1
second, instead of -1 nanosecond which causes rounding issues in
internal_select().
2015-04-06 23:06:01 +02:00
Victor Stinner
10550cdb8a
Issue #23834 : Simplify timeout handling
...
* Use the new _PyTime_FromSeconds() function to set the timeout to -1 second
for socket.settimeout(None). It avoids a special case in internal_select()
because of a rounding issue: -1 nanosecond is rounded to 0 millisecond which
means non-blocking, instead of blocking.
* Check if the interval the negative in sock_call_ex() instead of doing the
check in internal_select(). sock_call_ex() remembers if the socket has a
timeout or not, which avoids a race condition if the timeout is modified in a
different thread.
2015-04-03 13:22:27 +02:00
Victor Stinner
a135cb8143
Issue #23618 : Ooops, remove abort() added for debug purpose
2015-04-02 15:17:12 +02:00
Victor Stinner
38aec7525e
Issue #23618 : Fix sock_connect_impl(), set the socket error code
...
sock_call_ex() gets the socket error code when the socket function fails.
sock_connect_impl() didn't set the error correctly.
2015-04-02 14:37:20 +02:00
Victor Stinner
81c41dbfcc
Issue #23618 : socket.socket.connect() now waits until the connection completes
...
instead of raising InterruptedError if the connection is interrupted by
signals, signal handlers don't raise an exception and the socket is blocking or
has a timeout.
socket.socket.connect() still raise InterruptedError for non-blocking sockets.
2015-04-02 11:50:57 +02:00
Victor Stinner
35bee932e4
Issue #23618 : Don't declare recvmsg/sendmsg helper functions on Windows
2015-04-02 12:28:07 +02:00
Victor Stinner
ff444e828e
Issue #23834 : Fix sock_call(), set deadline_initialized to recompute the timeout
2015-04-02 03:22:49 +02:00
Victor Stinner
02f32ab47e
Issue #23834 : Modify socket.sendall() to reuse sock_call() with
...
sock_send_impl()
2015-04-01 22:53:26 +02:00
Victor Stinner
31bf2d5073
Issue #23834 : Add sock_call() helper function
...
The BEGIN_SELECT_LOOP and END_SELECT_LOOP macros of socketmodule.c don't handle
EINTR. Functions using these macros use an inner loop to handle EINTR, but they
don't recompute the timeout.
This changes replaces the two macros with a new sock_call() function which
takes a function as a parameter. sock_call() recomputes the timeout, handle
false positive and handle EINTR.
2015-04-01 21:57:09 +02:00
Benjamin Peterson
81541f4480
merge 3.4
2015-04-01 12:37:34 -04:00
Benjamin Peterson
4fd929b431
remove assignment in conditional
2015-04-01 11:16:40 -04:00
Victor Stinner
a772662423
Issue #23618 : Fix EINTR handling on Windows
...
Windows uses WSAEINTR error code, not EINTR, for socket functions.
2015-04-01 11:09:43 +02:00
Victor Stinner
70a46f635f
Issue #23618 : Enhance EINTR handling in socket.connect()
...
Call PyErr_CheckSignals() immediatly if connect() or select() fails with EINTR
in internal_connect().
Refactor also the code to limit indentaton and make it more readable.
2015-03-31 22:03:59 +02:00
Victor Stinner
ee699e9d2b
Issue #23618 : Fix EINTR handling in socket.connect()
...
Call PyErr_CheckSignals() if connect(), select() or getsockopt() failed with
EINTR.
2015-03-31 21:28:42 +02:00
Victor Stinner
c4e819a54f
Issue #23618 : Cleanup internal_connect() in socketmodule.c
...
On Windows, it looks like using the C type socklen_t for getsockopt() (instead
of int) is fine, it was already used in socket.getsockopt().
2015-03-31 21:23:10 +02:00
Victor Stinner
b6c15bcad3
Issue #23618 : Refactor internal_connect()
...
On Windows, internal_connect() now reuses internal_connect_select() and always
calls getsockopt().
2015-03-31 16:35:35 +02:00
Victor Stinner
dd88d3db45
Issue #23618 : Refactor internal_connect()
...
The function now returns the error code instead of using the global errno
(POSIX) or WSAGetLastError() (Windows).
internal_connect() now returns errno if getsockopt() fails.
2015-03-31 16:08:22 +02:00
Victor Stinner
1bb0aef4d1
Issue #22117 : Fix integer overflow check in socket_parse_timeout() on Windows
2015-03-31 16:31:19 +02:00