Commit Graph

265 Commits

Author SHA1 Message Date
Dmitry Stogov
1dbaae2795 Added automatic module globals management 2006-06-15 18:33:09 +00:00
Pierre Joye
3511649498 - revert last commit, something else went wrong 2006-04-07 14:04:36 +00:00
Pierre Joye
670ed5d93f - fix leak when an error occured in socket_read, free tmpbuf 2006-04-07 13:33:55 +00:00
foobar
5bd93221a8 bump year and license version 2006-01-01 12:51:34 +00:00
foobar
3e669bc950 MFH: nuke php3 legacy 2005-12-06 02:28:41 +00:00
Ilia Alshanetsky
15afc78f85 Fixed bug #35062 (socket_read() produces warnings on non blocking sockets). 2005-12-04 17:30:43 +00:00
Antony Dovgal
d66e492c3d MFH: yet another compile warning 2005-12-03 23:24:29 +00:00
Antony Dovgal
7a652e397b fix #35490 (socket_sendto() unable to handle IPv6 addresses) 2005-12-01 14:02:54 +00:00
Michael Wallner
17d16cf2af - MFB44: #34851 (SO_RECVTIMEO and SO_SNDTIMEO socket options expect integer
parameter on Windows)
2005-11-03 15:00:51 +00:00
Anantha Kesari H Y
a3a2fe37af NetWare LibC don't have socketpair function. So enabling socket_create_pair functionality only if socketpair is available in the host LibC.
--Kamesh
2005-09-23 09:54:31 +00:00
foobar
23e671a51e - Bumber up year 2005-08-03 14:08:58 +00:00
Antony Dovgal
cee979d5a9 fix #33019 (socket errors cause memory leaks in php_strerror())
patch by jwozniak23 at poczta dot onet dot pl
2005-05-12 16:26:26 +00:00
foobar
b6b3659224 - More sock->error resets 2005-02-14 23:44:23 +00:00
foobar
a66b053ac9 - Removed duplicate error + reset error in new sockets 2005-02-14 22:16:06 +00:00
foobar
28f0397803 Nuke unused code 2005-02-14 08:21:34 +00:00
foobar
30deea4d30 Remove unused set_h_errno 2005-02-12 18:14:03 +00:00
Wez Furlong
99e290f882 Fix for Bug #24189: possibly unsafe select(2) usage.
We avoid the problem by using poll(2).

On systems without poll(2) (older bsd-ish systems, and win32), we emulate
poll(2) using select(2) and check for valid descriptors before attempting
to access them via the descriptor sets.

If an out-of-range descriptor is detected, an E_WARNING is raised suggesting
that PHP should be recompiled with a larger FD_SETSIZE (and also with a
suggested value).

Most uses of select(2) in the source are to poll a single descriptor, so
a couple of handy wrapper functions have been added to make this easier.

A configure option --enable-fd-setsize has been added to both the unix and
win32 builds; on unix we default to 16384 and on windows we default to 256.
Windows FD_SETSIZE imposes a limit on the maximum number of descriptors that
can be select()ed at once, whereas the unix FD_SETSIZE limit is based on the
highest numbered descriptor; 256 should be plenty for PHP scripts under windows
(the default OS setting is 64).

The win32 specific parts are untested; will do that now.
2004-09-17 12:44:56 +00:00
Sara Golemon
3838fb99de MFB: Missing length limit parameter. 2004-06-07 05:00:37 +00:00
Derick Rethans
17df3ec21b - Fixed bug #28523 (Typo in ext/sockets/sockets.c) 2004-05-26 06:53:04 +00:00
Edin Kadribasic
3b64493a3d No length parameter -> estrdup() 2004-05-18 10:49:06 +00:00
Ilia Alshanetsky
bb88a86240 Do not allocate error buffer at the start of every request. 2004-05-16 15:34:53 +00:00
Hartmut Holzgraefe
cc0894b788 more visa to sibira ;) 2004-03-24 18:43:23 +00:00
Jan Lehnardt
4ed1b9a193 - improve error message 2004-03-14 17:53:28 +00:00
Melvyn Sopacua
21ecfd57fd Fix a typo, dating back from 1.145. 2004-03-14 11:42:17 +00:00
Ilia Alshanetsky
337b23bd93 Fixed bug #21760 (Use of uninitialized pointer inside php_read()).
Fixed 3 possible crashes due to integer overflow or invalid user input
inside the sockets extension.
2004-02-25 22:10:09 +00:00
foobar
f4983c0d3f - Renamed all *php4* files to *php5*, changed all php4/PHP4 to php5/PHP5 2004-01-17 13:00:38 +00:00
foobar
ccfc46b0aa - Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
Andi Gutmans
dbeb4158d2 - A belated happy holidays and PHP 5 2004-01-08 08:18:22 +00:00
Wez Furlong
51c342efae Make these build with new win32 build system. 2003-12-19 17:00:14 +00:00
foobar
f0c110d4bf nuke unused code 2003-12-16 20:39:40 +00:00
Wez Furlong
dbb152b96a Detect and enable IPv6 support under win32.
The ws2tcpip.h header links to IPv6 functions dynamically
and the generated binary will run on win98 and later.
2003-12-06 00:00:31 +00:00
Marcus Boerger
eabcb173b1 Revert accidential commit 2003-10-24 18:44:40 +00:00
Marcus Boerger
071eaf8576 Zend/ZEND_CHANGES 2003-10-24 18:24:28 +00:00
Ilia Alshanetsky
9c82b1fa75 Fixed compiler warnings. 2003-08-31 20:45:51 +00:00
Zeev Suraski
8767205afa Fix Win32 linkage problems 2003-08-31 12:41:53 +00:00
Jason Greene
90289924c0 Remove all vector based functions for the following reasons:
- This solves alot of platform compatibility problems
- The possible security issue of allocating an incredibly large vector
pool is prevented
- They are of little to no benefit in a high level language
- 99% of all things done with these functions can be done using
sendto/recvfrom
2003-08-16 06:34:36 +00:00
Ilia Alshanetsky
93bcd55eaf emalloc -> safe_emalloc 2003-08-12 00:58:52 +00:00
Ilia Alshanetsky
3652ab6032 Fixed bugs in various tests. 2003-08-12 00:44:05 +00:00
Marcus Boerger
55f947aa13 Fix build 2003-08-03 18:55:51 +00:00
Zeev Suraski
538d58dd5f Use new infrastructure.
There are bound to be some messups, please report build/runtime bugs!
2003-08-03 17:44:39 +00:00
Jason Greene
7eea6525a7 Fix EINVAL errors for OS's (Solaris + BSD) that do not appreciate microseconds >= 1 second
Patch submitted from meebery@php.net
2003-07-22 07:20:55 +00:00
foobar
afdc3e9530 Missing headers 2003-07-20 10:53:22 +00:00
Andrey Hristov
66bcb6529b Id tags added 2003-07-19 18:32:04 +00:00
Sara Golemon
6cb8ce2880 gethostbyname2() not thread safe. Use getaddrinfo() or nothing at all. 2003-07-08 05:00:13 +00:00
Sara Golemon
010f5a12c7 Make php_set_inet6_addr happy with any environment. Use getaddrinfo() if available, gethostbyname2() if not, and simply fail if neither is present. 2003-07-08 03:38:00 +00:00
Sara Golemon
acc587fdfa Fix non-GNU build. Use getaddrinfo() rather than gethostbyname2() 2003-07-07 22:27:32 +00:00
Derick Rethans
05db82333d - Correct stray commit 2003-06-19 08:41:51 +00:00
Sterling Hughes
651854a6dd enable sockets by default. 2003-06-19 04:39:42 +00:00
Sterling Hughes
3de4afa454 rename SOCKET to PHP_SOCKET to avoid conflicts with Mono 2003-06-17 04:44:30 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Ilia Alshanetsky
4a240c6a50 Fixed compiler warnings. 2003-05-28 01:04:06 +00:00
foobar
93b154fea4 Some AIX version failed to compile if this was redefined. 2003-04-25 08:10:11 +00:00
foobar
1e3e1d5880 CS cleanup + NS protection for some functions (used only in sockets.c btw) 2003-04-17 23:18:58 +00:00
Sara Golemon
f2654df92c Basic IPv4 and IPv6 loopback tests for ext/sockets 2003-04-17 23:09:17 +00:00
Sara Golemon
d06232a871 Add IPv6 support to ext/sockets 2003-04-17 21:04:47 +00:00
Moriyoshi Koizumi
8e15c4daff compiler warning fix and possible 64bit fix 2003-04-16 19:18:35 +00:00
Moriyoshi Koizumi
ec91e86850 Fixed bug #23080 2003-04-16 17:31:31 +00:00
foobar
78365069f0 Better ifdef it out here too 2003-04-05 17:33:55 +00:00
foobar
392f3c2d7c - Checks specific to some extension belong in the extension's config.m4 2003-04-04 15:42:54 +00:00
Moriyoshi Koizumi
da4cf6f9d8 Fixed memleak in socket_select 2003-04-04 14:16:59 +00:00
Moriyoshi Koizumi
b78e3c5155 Added cmsghdr check. Now sockets extension can be built under cygwin. 2003-04-04 13:02:43 +00:00
David Hill
4f8ae7b111 fixing missed int to long with zend_parse_parameters 2003-03-10 15:52:10 +00:00
David Hill
5c90216d2c 64-bit correction to variables passed to zend_parse_parameters
@64-bit correction to variables passed to zend_parse_parameters (Dave)
2003-03-06 23:07:28 +00:00
Ilia Alshanetsky
72b356c1bc Removed pointless memory allocation checks. 2003-01-18 19:28:10 +00:00
Ilia Alshanetsky
6fb507b53e Changed php_error to php_error_docref().
Removed pointless checks around array_init().
2003-01-14 02:39:10 +00:00
Sebastian Bergmann
b506f5c8f8 Bump year. 2002-12-31 16:08:15 +00:00
Sterling Hughes
3cb16973ef silly error, will MFH 2002-12-20 15:44:51 +00:00
Edin Kadribasic
3994fbbc86 MFB: Fix for #20894. 2002-12-09 13:35:57 +00:00
Jason Greene
5e1741fd48 Revert patch that should have been reverted a long time ago.
There was a memory leak in the error handling system on win32, that this patch
circumvented (by preventing the errors (EAGAIN mesages) from being generated).
# I must have forgotten to remove this when I fixed the leak
2002-12-02 05:45:13 +00:00
Sterling Hughes
065104b8fe TODO: Cleanup elements that have happened, or most likely won't happen. There
is probably more that should be gone, but its still a move in the right
direction.

Other stuff is ws/formatting changes
2002-12-01 22:15:39 +00:00
Jason Greene
5d554c20d2 Sockets is no longer experimental 2002-11-29 23:44:06 +00:00
Sander Roobol
a207b641e5 Fix proto and #20137 2002-10-28 18:00:30 +00:00
Sterling Hughes
62d10bc969 make one-line read work on win32...
# The implementation of this function is brain-dead, but at least
# now its brain-dead on win32 too... ;-)
2002-10-28 03:05:04 +00:00
Rasmus Lerdorf
2ca6f26918 Kill warning 2002-10-04 18:01:52 +00:00
Jason Greene
06ad8620db Fix thread safety issue 2002-09-30 02:09:42 +00:00
Jason Greene
a8ca9932f4 Implement contstants on win32
@Implement platform independant socket error constants, which benefits error handling
2002-09-23 03:34:21 +00:00
Jason Greene
565492248a Fix crash bug and memory leak in vectors
#still need to revisit how these are done, i.e. they are not binary safe
2002-09-10 04:12:55 +00:00
foobar
f05db43a68 Fix bug: #19212 2002-09-04 14:30:36 +00:00
Jason Greene
b3a1998386 @socket_recvfrom is now binary safe (Jason)
Zero the structure so that when the tcp layer of the OS decides to ignore it,
we do not think we are getting a value
2002-08-28 06:15:13 +00:00
Jason Greene
1ce75e3a63 Implement socket errno values for UNIX based platforms.
They are all prefixed with SOCKET_ to preserve name space
Win32 will follow...
2002-08-25 23:28:42 +00:00
Jason Greene
980feb5e98 Nuke warnings on strict compilers 2002-08-16 14:23:27 +00:00
Jason Greene
0cd2d8bd38 Remove sleep workaround, and fix the actual win32 memory leak which
was occurring in the error reporting system. The reason why sleepex appeared
to be working was because it suppressed EWOULDBLOCK errors in the example
(which was non-blocking)
@Fix win32 memory leak in /ext/sockets that would occur on any error condition
@Fix host resolution error messages on win32
2002-07-07 07:01:17 +00:00
Markus Fischer
c15d83b9ed - Fix proto. 2002-06-25 06:24:45 +00:00
Harald Radi
a3c79eca49 workaround for a win32 memleak
# this definitely has to be revisited !
# maybe we should use winsock2 and overlapped IO
2002-06-15 16:04:59 +00:00
Harald Radi
f7bdde218e workaround for a win32 memleak
# this definitely has to be revisited !
# maybe we should use winsock2 and overlapped IO
2002-06-15 15:58:16 +00:00
Sascha Schumann
226e1ed246 As far as I can tell, the AC_CHECK_MEMBER could not succeed,
because it does not include <sys/socket.h> which is necessary
for the definition of struct msghdr.  This include file is not
part of ac_includes_default.

Regardless, AC_CHECK_MEMBER is a autoconf-2.5x macro and thus we
expand it here for 2.13 compatibility.
2002-05-12 17:28:12 +00:00
Jason Greene
969d7e5a82 Fix build on IRIX for both mips and gcc 2002-05-12 07:22:47 +00:00
Jason Greene
cfb285a391 Fix overflow 2002-05-08 15:30:04 +00:00
Jason Greene
d4b11fb33f Fix 10830, and 17074
FreeBSD requires the exact length of the socket type
2002-05-07 18:47:17 +00:00
Jason Greene
89c59569ba socket_write() should just use the standard socket error macro so that errors will be consistent if the macro ever changes 2002-05-02 16:45:22 +00:00
Markus Fischer
07efbff856 - Update protos for socket_read() and socket_write().
- Set last_error in socket_write().
2002-05-01 16:38:22 +00:00
Markus Fischer
ae5bc7c0f6 - Update protos for getpeer/getsock-name. 2002-05-01 16:08:50 +00:00
Jason Greene
38a6325178 Fix BYREF_FORCE that was not being read
Fix error message
2002-05-01 15:14:49 +00:00
Markus Fischer
1a5501ddfd - Rename setopt and getopt to set_option and get_option, provide alias. 2002-05-01 11:08:08 +00:00
Markus Fischer
a2fbdad20e - Fix couple of problems with socket_create_pair():
- Force fourth argument to be passed by reference
  - Since the argument is modified there is no need to force it to be an array
    since it's destroyed anyway
  - Only modify the argument if socketpair() was successfully
  - Fix string modified for error message message
  - Set global last_error when socketpair() fails
2002-05-01 10:41:10 +00:00
Markus Fischer
7ee9e9d9e5 - Add SOMAXCONN constant. 2002-05-01 09:25:26 +00:00
Markus Fischer
cc4ff9c3ac - WS fixes 2002-05-01 07:35:01 +00:00
Jason Greene
9a841d116b Changed socket_select to force reference copy, the older code would modify all references
@Fixed a bug in socket_select() that could cause unexpected behavior when using a statement
@ like $w=$e=array($sock);
@This change unfortunately prevents the use of constant values(NULL) for the socket array paramaters.
@Instead use a temporary variable or an expression with the leftmost member being a temporary variable.
@ ex. socket_select($w, $r, $e=NULL, 10);

Also fix small memory leak.
2002-05-01 04:46:59 +00:00
Markus Fischer
a369d06bea - Forgot to update proto 2002-04-30 22:03:51 +00:00
Markus Fischer
c1c1ee9f6e - Allow resetting the module global last_error too. 2002-04-30 22:01:06 +00:00