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
Victor Stinner
dd83bd2f9c
Issue #23618 : Fix internal_connect_select()
2015-03-31 14:24:47 +02:00
Victor Stinner
416f2e66ca
Issue #23618 : internal_connect_select() now waits also for error events
2015-03-31 13:56:29 +02:00
Victor Stinner
e6951c6c8a
Issue #23618 : Refactor internal_select() to prepare socket.connect() for EINTR
2015-03-31 13:50:44 +02:00
Victor Stinner
391fa713f7
Issue #23618 : Refactor the _socket module
...
* Inline internal_select() function
* Rename internal_select_ex() internal_select()
2015-03-31 13:15:31 +02:00
Victor Stinner
869e1778c0
Issue #22117 : Replace usage of _PyTime_ROUND_UP with _PyTime_ROUND_CEILING
...
All these functions only accept positive timeouts, so this change has no effect
in practice.
2015-03-30 03:49:14 +02:00
Victor Stinner
ea9c0dd2c2
Issue #22117 : Fix usage of _PyTime_AsTimeval()
...
Add _PyTime_AsTimeval_noraise() function. Call it when it's not possible (or
not useful) to raise a Python exception on overflow.
2015-03-30 02:51:13 +02:00
Victor Stinner
71694d5c8c
Issue #22117 : The socket module uses _PyTime_t timestamp for timeouts
2015-03-28 01:18:54 +01:00
Victor Stinner
b7df3144ef
Issue #23618 , #22117 : refactor socketmodule.c
...
Move Py_BEGIN_ALLOW_THREADS/Py_END_ALLOW_THREADS inside internal_select_ex() to
prepare a switch to the _PyTime_t type and retry syscall on EINTR.
2015-03-27 22:59:32 +01:00
Victor Stinner
f50e187724
Fix compiler warnings: comparison between signed and unsigned numbers
2015-03-20 11:32:24 +01:00
Serhiy Storchaka
8490f5acfe
Issue #23001 : Few functions in modules mmap, ossaudiodev, socket, ssl, and
...
codecs, that accepted only read-only bytes-like object now accept writable
bytes-like object too.
2015-03-20 09:00:36 +02:00
Victor Stinner
9a8089b32a
Issue #23646 : Enhance precision of time.sleep() and socket timeout when
...
interrupted by a signal
Add a new _PyTime_AddDouble() function and remove _PyTime_ADD_SECONDS() macro.
The _PyTime_ADD_SECONDS only supported an integer number of seconds, the
_PyTime_AddDouble() has subsecond resolution.
2015-03-20 01:42:20 +01:00
Serhiy Storchaka
caa01f861c
Fixed GCC version testing.
2015-03-05 23:42:24 +02:00
Victor Stinner
a4c727131e
Fix "GCC diagnostic" in socketmodule.c
...
Fix regression of changeset 7c6e3358221a on GCC < 4.4. The _socket module
cannot be compiled on "x86 FreeBSD 7.2 3.x" buildbot anymore.
2015-03-05 14:04:03 +01:00
Serhiy Storchaka
b48af340b9
Silenced minor GCC warnings.
2015-02-26 15:27:57 +02:00
Serhiy Storchaka
4d0d982985
Issue #23446 : Use PyMem_New instead of PyMem_Malloc to avoid possible integer
...
overflows. Added few missed PyErr_NoMemory().
2015-02-16 13:33:32 +02:00
Serhiy Storchaka
1a1ff29659
Issue #23446 : Use PyMem_New instead of PyMem_Malloc to avoid possible integer
...
overflows. Added few missed PyErr_NoMemory().
2015-02-16 13:28:22 +02:00
Charles-François Natali
6e6c59b508
Issue #23285 : PEP 475 -- Retry system calls failing with EINTR.
2015-02-07 13:27:50 +00:00
Serhiy Storchaka
b757c83ec6
Issue #22581 : Use more "bytes-like object" throughout the docs and comments.
2014-12-05 22:25:22 +02:00