Commit Graph

234 Commits

Author SHA1 Message Date
Wez Furlong
90c478664a A Simple fix for Bug #12360 (fsockopen timeout doesn't work).
Analysis:
On systems with HAVE_GETADDRINFO and IPV6 support, php_hostconnect would
attempt to connect to each possible address that matched the requested IP.

If the remote host:port combination are dropping packets this would cause the
first connection to timeout (after waiting for the full timeout duration).

PHP would then attempt the second address and wait the full duration again.

Solution:
If the first connection attempt times out, abort the connection loop.
2002-12-22 13:55:45 +00:00
Wez Furlong
f8486bc344 Fix for #19508 by poleson@verio.net. 2002-10-29 14:57:12 +00:00
Ilia Alshanetsky
ec400b8d16 Silence compile warning, when compiling --with-openssl. 2002-10-19 17:05:08 +00:00
Ilia Alshanetsky
8ca0b28b6a Fixed a typo. 2002-10-19 16:50:07 +00:00
Wez Furlong
7de1f45aaa Revert my last bogus commit.
Change the comparison to something that is less likely to inspire me to
make the same mistake again...
2002-10-18 17:14:32 +00:00
Wez Furlong
e0c0264935 Improve EOF detection. Fixes #19970. 2002-10-18 12:15:04 +00:00
Wez Furlong
be5606504c Implement better SSL error handling. 2002-10-14 01:27:43 +00:00
Wez Furlong
0bcd2ccb2c A much better probable fix for #16114. 2002-10-13 23:43:21 +00:00
Wez Furlong
bc0948bbda Probable fix for #16114 2002-10-13 23:21:05 +00:00
Wez Furlong
70b796b143 (php_socket_errno) win32 errno compatible macro.
(php_socket_strerror) win32 compatible strerror replacement.
Add an E_NOTICE when a socket write fails.
2002-10-13 22:01:40 +00:00
Wez Furlong
077fe52d8b This seems to resolve the issues with fgets.
I've moved EOF detection into the streams layer; a stream reader
implementation should set stream->eof when it detects EOF.
Fixed test for user streams - it still fails but that is due to an output
buffering bug.
2002-10-05 10:35:13 +00:00
Sascha Schumann
a4ec211e9e Add a few notes 2002-10-04 19:08:43 +00:00
Wez Furlong
9c5883bdf6 replace dont_block with a flag. 2002-10-04 18:59:34 +00:00
Sascha Schumann
4f7e6dadd8 Improve the general behaviour of stream_gets and fix its semantics
with regard to sockets. The behaviour should be aligned with PHP 4.2 now.
This has been verified to some degree.

If the underlying stream operations block when no new data is readable,
we need to take extra precautions.

If there is buffered data available, we check for a EOL. If it exists,
we pass the data immediately back to the caller. This saves a call
to the read implementation and will not block where blocking
is not necessary at all.

If the stream buffer contains more data than the caller requested,
we can also avoid that costly step and simply return that data.
2002-10-04 18:21:40 +00:00
Wez Furlong
9509c20941 remove chunk size setting code (it's now in streams.c).
Move timeout setting code.
2002-09-28 22:12:23 +00:00
Wez Furlong
696e0a2301 Implement persistent streams. (for pfsockopen).
Juggle some includes/definitions.
Tidy up streams use in ext/standard/file.c
2002-09-25 15:25:12 +00:00
Wez Furlong
c74b9faca5 Implement a default_socket_timeout and auto_detect_line_endings ini options.
Also move user_agent from BG to FG.
2002-09-23 18:12:39 +00:00
Wez Furlong
4d8a07d529 Implement read buffering in streams.
Eliminate similar code from network.c.
Implement fgets equivalent at the streams level, which can detect
the mac, dos and unix line endings and handle them appropriately.
The default behaviour is unix (and dos) line endings.
An ini option to control this behaviour will follow.
# Don't forget to make clean!
# I've done some testing but would appreciate feedback from
# people with scripts/extensions that seek around a lot.
2002-09-23 01:47:04 +00:00
Stefan Esser
714eb8069a made new ssl activate function the default. 2002-09-12 21:52:09 +00:00
Anantha Kesari H Y
1e09610f45 NetWare related changes/modifications 2002-09-09 11:23:11 +00:00
Stefan Esser
cbf5e3ca06 Added possibility to reuse an old SSL session id.
Ugly but needed for f.e.: debians ftpd-ssl
2002-09-08 22:26:11 +00:00
Sebastian Bergmann
e8b50bc834 Fix ZTS build. 2002-08-25 22:17:56 +00:00
Marcus Boerger
a1f7bb12f1 use php_error_docref() 2002-08-25 18:45:02 +00:00
Wez Furlong
5f9a5a7c8e Remove php_stream_sock_set_blocking and replace with
php_stream_set_option which can be used in a similar way as ioctl()
to set options for streams.

Current options include buffering and blocking support.

o Buffer control is support for stdio based streams.
o Blocking/non-blocking is supported for stdio and socket based streams.
2002-08-19 22:59:10 +00:00
Stig Venaas
fcc0380588 Added --enable-ipv6 and only look up AAAA in DNS when enabled 2002-08-17 13:56:39 +00:00
Dan Kalowsky
4feff54879 Correcting as per discussion with Iliaa and Edin on efnet://#php.bugs 2002-08-13 14:56:50 +00:00
Dan Kalowsky
1027dfcdd1 Bug Fix #16113, as reflective of a php-dev convo between wez and iliaa 2002-08-13 14:39:03 +00:00
Wez Furlong
94be838dc1 More verbosity when activating SSL on a socket fails. 2002-08-11 11:25:24 +00:00
Sebastian Bergmann
7c08781d50 Fix ZTS builds. 2002-08-10 03:03:03 +00:00
Wez Furlong
ccb5c84b6c Centralize some blocking socket related code.
# It's been a while since I wrote this!
2002-08-09 21:02:36 +00:00
Jason Greene
a64eceef59 Switch streams socket abstraction to use a timeval structure instead of an
integer to allow subsecond timeouts.

This supports the previous behavior of fsockopen()
Fixes bug #16261
2002-07-22 18:46:26 +00:00
Jason Greene
217ef0d115 Fix feof() on win32
Bug #18436
2002-07-19 20:34:35 +00:00
foobar
887e1ffe57 ws fix 2002-07-19 16:22:36 +00:00
Jason Greene
c6a36d585b @Impelemented timeout functionality, and fixed error handling of fsockopen() on win32
Also fixed error handling on unix (micropatch)

Closes Bug #14740
2002-06-11 03:55:28 +00:00
Wez Furlong
0989e7bb41 Remove this; it should not have been commited 2002-04-30 00:20:34 +00:00
Wez Furlong
37411dd674 Implement context option setting API.
Add/amend debugging code for sockets.
Add a flag that will help the http wrapper optimize itself when
it is not being used for include/require.
2002-04-30 00:16:00 +00:00
Wez Furlong
928bae9cf8 Make scheme part decoding rfc2396 compliant.
Change zlib:// and bzip2:// to compress.zlib:// and compress.bzip2://
Tidy up old socket/network code/comments.
2002-04-19 10:06:41 +00:00
Wez Furlong
ca6b88ef46 should not be there 2002-04-15 20:12:29 +00:00
Wez Furlong
50cf12ce4c Some minor tweaks and debugging for sockets. 2002-04-15 20:11:12 +00:00
Wez Furlong
e1d0a14790 Implement stream context and status notification system.
Bump the BC for zlib notice to a warning
# See my RFC to php-dev a few days ago
2002-04-10 22:42:32 +00:00
Wez Furlong
2539cbc74c Phase 3 of OO wrapper cleanup
# What was phase 2?
2002-03-28 00:49:00 +00:00
Wez Furlong
14a3911866 fix for bug #16168 2002-03-19 17:49:02 +00:00
Wez Furlong
67231e25e4 make feof more useful on network streams 2002-03-19 03:49:03 +00:00
Wez Furlong
33906e934a Fix for bug #10001: a timeout event prevents further reads.
The Bug DB has a patch that should be applied to fsock.c on the
4.2 branch.
2002-03-18 20:13:50 +00:00
Wez Furlong
48e902bacd Fix for bugs #16148, #11199, #10092:
fread from socket will never free memory.
This patch should also be applied to php_sockread_internal in
fsock.c in the 4.2 branch.
2002-03-18 19:42:19 +00:00
Wez Furlong
c9d5e13738 TSRMLS related work on streams, as discussed with Zeev.
# Should be the last "broad" commit for a while
# Don't forget to make clean ; make
2002-03-18 18:54:32 +00:00
Wez Furlong
d2d8762267 Streams now make more use of the memory manager, so tracking down
leaking streams should be easier.
# I hate these big commits
2002-03-17 22:50:59 +00:00
Wez Furlong
436e339bc7 Fix for Bug #16121: make unix socket names binary safe.
# Could be applied to 4.2 branch, but I don't have a working copy, and
# I don't think it's amazingly critical.
2002-03-17 13:19:27 +00:00
Wez Furlong
bed04279c3 Hopefully fix resource usage so that we have no leaks and don't segfault. 2002-03-16 14:39:51 +00:00
Wez Furlong
12f893d142 fsock.c did it this way, so it must be OK... 2002-03-16 12:07:27 +00:00
Wez Furlong
a411b0e97b bring back ptrdiff_t 2002-03-16 11:58:38 +00:00
Yasuo Ohgaki
31fe5e46cb Quick fix build error when ptrdiff_t is not defined in types.h or sys/types.h 2002-03-16 03:37:11 +00:00
Wez Furlong
28d6981152 more *'s 2002-03-16 01:58:13 +00:00
Wez Furlong
0f65280cb5 New PHP streams... 2002-03-15 21:03:08 +00:00
Sebastian Bergmann
90613d2282 Maintain headers. 2002-02-28 08:29:35 +00:00
Sascha Schumann
1288783667 Irix defines AF_INET6, but lacks IPv6 support, including
struct sockaddr_in6.
2002-02-12 11:00:15 +00:00
Stig Venaas
9e420659ad Added php_sockaddr_size() in network.c (and the header file). This is used
in ftp.c to make sure connect() and bind() is called with size argument
which is exactly the size of the relevant sockaddr_xx structure
2002-02-10 12:35:29 +00:00
Derick Rethans
580a4701ba - Fix for bug #15057: getimagesize() crashes when offline (on MacOSX) 2002-01-21 07:54:56 +00:00
Stig Venaas
a6ec8d37e6 hostconnect now divides the timeout with no. of addresses. If a connection
attempt times out, it goes on to the next. Unless each timeout would be
<5s. Added php_any_addr() that fills out the any address for IPv6 and IPv4.
2002-01-06 22:45:43 +00:00
Stig Venaas
6e1878b0fc Added some consts for arguments in network.c declarations. Moved
php_sockaddr_storage to php_network.h and added check for struct
sockaddr_storage
2002-01-06 11:54:19 +00:00
Alex Waugh
e320de1e2e Undefine AF_UNIX under RISC OS 2001-12-23 00:46:13 +00:00
Sebastian Bergmann
38933514e1 Update headers. 2001-12-11 15:32:16 +00:00
Alex Waugh
bc26250413 Included header files needed by RISC OS 2001-11-04 12:35:49 +00:00
Derick Rethans
78747bd2df - Don't wrap lines... this is annoying while coding. 2001-09-09 13:29:31 +00:00
Jeroen van Wolffelaar
6da0268c2a Possible fix 12360. If it doesn't help, it doesn't hurt, AFAIK... 2001-08-10 20:18:42 +00:00
Rasmus Lerdorf
81e2cf03ac Fix folding and clean up some extensions 2001-06-06 13:06:12 +00:00
Rasmus Lerdorf
25c3a3a39d vim-6 does folding - clean up a bunch of missing folding tags plus
some misguided RINIT and RSHUTDOWN calls in a few fringe extensions
2001-06-05 13:12:10 +00:00
Wez Furlong
3ffb8e3800 Nuke buffering from php_streams, move connect_nonb() from fsock.c to network.c
and rename to php_connect_nonb().
Use php_connect_nonb() instead of connect() in php_hostconnect() -> timeouts
should now work in php_hostconnect().
sock streams abstraction now uses php_sockbuf as the "abstract" pointer.
2001-05-05 18:36:22 +00:00
Andi Gutmans
eb6ba01d1c - Fix copyright notices with 2001 2001-02-26 06:11:02 +00:00
Sascha Schumann
cb1a89cb64 Declare inet_aton properly, if the system lacks support for it.
PR: #9382
2001-02-24 21:14:18 +00:00
Rasmus Lerdorf
83cf6629ec @BeOS patch from svanegmond@bang.dhs.org modified somewhat by Rasmus
BeOS patch from svanegmond@bang.dhs.org modified somewhat by Rasmus
2001-01-21 17:29:15 +00:00
Rasmus Lerdorf
f74998a783 Kill a couple of warnings 2001-01-17 06:40:48 +00:00
Zeev Suraski
6562e98afa Fix Windows & thread-safe build 2001-01-13 13:02:19 +00:00
Stig Venaas
30441cda5b Simplified code a bit, added detailed error reporting, and fixed a bug
when getaddrinfo returned a non-IP family before IP families
2001-01-13 11:48:47 +00:00
Stig Venaas
5fc85205d9 Check that AF_INET6 is defined before using IPv6 2000-10-19 12:18:02 +00:00
Stanislav Malyshev
1fbc3945a2 Fix crash 2000-09-18 15:15:27 +00:00
Stig Venaas
f68fb8fad2 Better IPv6 checking 2000-09-07 17:56:12 +00:00
Zeev Suraski
eb32144902 - Remove track_vars - it is now always on
- Make the various $HTTP_*_VARS[] arrays be defined always,
  even if they're empty
- Fix Win32 build and warnings
2000-09-05 19:06:29 +00:00
Stig Venaas
d57e56ab4c using emalloc and efree, instead of malloc and free 2000-09-05 17:37:44 +00:00
Stig Venaas
24633f5987 renamed hostconnect() to php_hostconnect() 2000-09-05 16:36:56 +00:00
Stig Venaas
4a7f22123f hostconnect now supports IPv6 if getaddrinfo exists, and also tries to
connect to all addresses of a host before giving up. It should also be
thread safe when using getaddrinfo.
2000-09-05 13:56:11 +00:00
Sascha Schumann
96128460b7 Include "php.h", otherwise we don't have access to the PHP and autoconf
macros.
2000-09-04 12:58:08 +00:00
Stig Venaas
f0962c33a1 Added timeout argument, but not used yet 2000-09-03 19:12:28 +00:00
Stig Venaas
c94933b2fa Network related functions, only for internal use by other PHP code. Tries
to hide the details of address families/protocols, and to reduce duplication
of code.
2000-09-03 09:30:41 +00:00