Commit Graph

3093 Commits

Author SHA1 Message Date
Ilia Alshanetsky
ea1f34e892 Fixed a bug that would cause filetype() to return "unknown" for
non-existent files on Win32.
2003-02-27 20:38:00 +00:00
Wez Furlong
cfd8150b30 Add a generic meta data api for streams. 2003-02-27 19:10:24 +00:00
Wez Furlong
76ebaa6ee7 - Move https:// and ftps:// wrapper registration into the openssl module.
- Expose the http:// and ftp:// wrappers as PHPAPI
- Remove unused variables
2003-02-27 18:16:35 +00:00
Wez Furlong
fd61f69077 Another big commit (tm).
Main Changes:
- Implement a socket transport layer for use by all code that needs to open
  some kind of "special" socket for network or IPC.
- Extensions can register (and override) transports.
- Implement ftruncate() on streams via the ioctl-alike option interface.
- Implement mmap() on streams via the ioctl-alike option interface.
- Implement generic crypto API via the ioctl-alike option interface.
  (currently only supports OpenSSL, but could support other SSL toolkits,
  and other crypto transport protocols).

Impact:
- tcp sockets can be overloaded by the openssl capable sockets at runtime,
  removing the link-time requirement for ssl:// and https:// sockets and
  streams.
- checking stream types using PHP_STREAM_IS_SOCKET is deprecated, since
  there are now a range of possible socket-type streams.

Working towards:
- socket servers using the new transport layer
- mmap support under win32
- Cleaner code.

# I will be updating the win32 build to add the new files shortly
# after this commit.
2003-02-27 17:43:38 +00:00
Ilia Alshanetsky
560e33968d Fixed bug #21410 (fixed handling of NULL or "" files on Win32) 2003-02-27 16:41:23 +00:00
Ilia Alshanetsky
695ae92c97 1) Make the output of system() binary safe
2) Solved a memory leak when the return_value variable passed by reference is
   not an integer in system()/exec()/passthru().
3) Solved a bug in exec(), which would make it append to the 2nd parameter
   (passed by reference) if the parameter is an array instead of overwriting it.
4) Changed the code to use the streams code, resulting in a smaller code base.
5) Various cleanups resulting in reduction of overall code base inside the file
   by ~ 1/3.
6) Speed improvements of ~2.5 times compared to previous performance (based on
   attached PHP script).
2003-02-26 22:11:12 +00:00
Derick Rethans
424c41a72e - Added an extra ini setting with which extra commands can be forced to
the sendmail deamon on a per-vhost base. The value in this ini setting
  will override all extra commands passed as the 5th parameter to mail()
  and will work in Safe Mode.
@- Added an extra ini setting (mail_force_extra_paramaters) which forces
@  the addition of the specified parameters to be passed as extra
@  parameters to the sendmail binary. These parameters will always replace
@  the value of the 5th parameter to mail(), even in safe mode. (Derick)
2003-02-26 20:04:16 +00:00
Derick Rethans
17acc55ad0 - Fix proto 2003-02-26 19:34:16 +00:00
Derick Rethans
bc11c47ce6 - Whitespace 2003-02-26 19:25:24 +00:00
Ilia Alshanetsky
aee0c18bde Made shell_exec() use streams, this simplifies the code and in some cases
makes it a little faster too.
2003-02-25 23:52:34 +00:00
Ilia Alshanetsky
bce8bfdae4 MFH (forgot to put this fix into the 5.X tree). 2003-02-25 23:39:57 +00:00
Moriyoshi Koizumi
991da29849 Set fgetss() free from the length parameter 2003-02-25 20:12:18 +00:00
Ilia Alshanetsky
503e49feae Fixed test. 2003-02-25 16:27:51 +00:00
Ilia Alshanetsky
f29964e2ba Fixed bug #22414 and added a test case for it. 2003-02-25 16:21:00 +00:00
Ilia Alshanetsky
e8823a205a Fixed bug #22402 (opening of ftp for read/write could fail due to invalid
return code handling).
Solution suggested by jan@jancm.org
2003-02-25 04:20:22 +00:00
Ilia Alshanetsky
862634ffa5 Added locking to streams.
Allow PHP to automatically release locks on files when terminating the
stream.
Fixed bugs in the handling of the 3rd optional parameter to flock().
2003-02-25 01:39:06 +00:00
Moriyoshi Koizumi
14db9ea88d Fixed string.strip_tags filter so it reflects the change on php_strip_tags 2003-02-24 22:41:55 +00:00
Moriyoshi Koizumi
b44b0b80e0 Made fgetss() binary safe too 2003-02-24 22:39:47 +00:00
Moriyoshi Koizumi
8f341f6a19 Fixed possible buffer overflow of php_strip_tags 2003-02-24 22:19:36 +00:00
Moriyoshi Koizumi
385a809694 Made strip_tags() binary safe 2003-02-24 22:01:12 +00:00
Sara Golemon
85a5ef3ec9 Initial re-implementation of userfilters after filterchain redesign by wez. More userspace API to come. 2003-02-24 21:56:19 +00:00
Wez Furlong
088e2692c3 MFB: Bunch of streams related fixes. 2003-02-24 21:40:23 +00:00
Ilia Alshanetsky
4474f9225a Fixed bug #22355 (PHP would remove folding from Subject & To fields). 2003-02-24 19:41:18 +00:00
Moriyoshi Koizumi
93b6d05bb8 Forgot to fix this part 2003-02-24 16:54:21 +00:00
Moriyoshi Koizumi
f73f94f258 Fixed a signed / unsigned issue.
# imagine the case like "\\\xfe" where walk[1] takes a value that is greater
# than 127 in integer...
2003-02-24 16:29:00 +00:00
Moriyoshi Koizumi
171fd93840 Style fix 2003-02-24 16:13:13 +00:00
Ilia Alshanetsky
a3cb589b71 Fixed bug #22382 (fgetcsv did not handle \" correctly). 2003-02-24 03:13:25 +00:00
foobar
c87c4c7bd7 Extra paranoia checks if dn_skipname/dn_expand exist or not 2003-02-24 00:09:18 +00:00
Ilia Alshanetsky
8908faa47f Revent previous patch, adding of file_write_content() was premature. 2003-02-22 20:35:22 +00:00
Ilia Alshanetsky
d2e2fbcc5b int/long change. 2003-02-22 20:33:11 +00:00
Andrey Hristov
8c2dbd5f0f additional speedup for array_shift(). No need to rehash if the removed element's
key is not scalar and elements with scalar keys are already well numbered
(sequentially from 0) for some reason. This is the case if the leading
elements have no scalar indexes.
2003-02-22 13:55:11 +00:00
Andrey Hristov
94040a28ce rehash only in case something is changed.
#lowers the execution time in half on my machine on array with 1000 elements
#with nonscalar keys. Maybe it can be optimized further.
2003-02-22 10:54:26 +00:00
foobar
b420beba61 - Fixed bug: #22339
# No NEWS, this was bug introduced by Marcus a while ago..
# Not present in php4.3.x branch
2003-02-21 08:45:58 +00:00
Sara Golemon
2002ca0203 Reduce unnecessary filter applications when stream is (read|write) only 2003-02-20 20:05:31 +00:00
Derick Rethans
2bff9cae27 - Fixed testcase... you can never trust on RFCs it seems 2003-02-20 16:15:41 +00:00
Derick Rethans
91766d4b9a - Fixed copy and paste bug 2003-02-20 10:33:55 +00:00
Derick Rethans
b4b33b11ef - Also add the optional raw output parameter to md5_file and sha1_file. 2003-02-20 10:32:35 +00:00
Derick Rethans
ead7521e4d - No need to add the \0 ourselves, the estrndup in STRINGL takes care of
that for us.
2003-02-20 06:56:37 +00:00
foobar
6043ee22e8 - Fixed bug #22299 (gethostbyname() crash with non-existing domain on MacOSX) 2003-02-20 05:34:58 +00:00
Ilia Alshanetsky
69094da0e8 Revert accidental commit. 2003-02-20 00:34:03 +00:00
Ilia Alshanetsky
3bff5c0419 Fixed bug #22308 (optimized passthru, code is now ~40 times faster). 2003-02-20 00:32:51 +00:00
foobar
2b90480fa9 scandir -> php_scandir, alphasort -> php_alphasort 2003-02-19 09:27:29 +00:00
Ilia Alshanetsky
a6ef609a37 Fixed bug #22283 (possible crash when opening relative URLs). 2003-02-19 00:49:31 +00:00
Moriyoshi Koizumi
69113a3099 Added string.strip_tags filter. 2003-02-19 00:12:23 +00:00
Moriyoshi Koizumi
6389a79ea5 Fixed memory leaks on conversion failure. 2003-02-18 23:30:36 +00:00
Moriyoshi Koizumi
8793a78fee Revived convert filter codes 2003-02-18 23:22:49 +00:00
Derick Rethans
d95c41eddb - Added new parameter to sha1() and md5() which return the digest as
binary data. (Original patch by Michael Bretterklieber <mbretter@jawa.at>)
- Added test cases for sha1() and md5() based on the testvectors in RFC 1321
  and RFC 3174.
@- Added new parameter to sha1() and md5() which return the digest as
@  binary data. (Michael Bretterklieber <mbretter@jawa.at>, Derick)
2003-02-18 20:31:19 +00:00
Moriyoshi Koizumi
89caaeb87c Fixed bug #21708 (ucfirst() trouble again)
# this bug is related to bug #21689
2003-02-18 18:11:34 +00:00
Moriyoshi Koizumi
d4e9d48b18 Fixed bug #21689 (fgetcsv suppresses some characters before a separator)
The fix is suggested by Masahiro Nakayama <masa@sfc.wide.ad.jp>

# is* functions expect their argument to be an integer in range of 0-255
2003-02-18 15:15:22 +00:00
Wez Furlong
e52aac940f Implement simple stream support in the ZE scanners. 2003-02-18 09:37:54 +00:00
Sara Golemon
73c78270b6 Introduce //filter target to php: wrapper to allow inline application of filters during fopen() style opperations 2003-02-18 06:10:14 +00:00
foobar
28f4cb18ec nice() is part of libc, use AC_CHECK_FUNCS instead 2003-02-18 03:22:47 +00:00
Sara Golemon
6fe4ab41f0 Fix stream_filter_(ap|pre)pend to allow attaching on the read and/or write chains. Automagically decide what to do if noone tells us. 2003-02-18 02:53:24 +00:00
Wez Furlong
1e34a6bffc Add basic test of read filters and read filter chain. 2003-02-18 01:24:41 +00:00
Ilia Alshanetsky
0ad5cac954 By popular demand nice() is renamed to proc_nice().
A better error message for proc_nice() failure.
2003-02-18 01:23:51 +00:00
Wez Furlong
32165a5546 Implement new filter API, stage 1.
This breaks user-space filters (for the time being), and those
weird convert.* filters in ext/standard/filters.c

The filters stack has been separated into one chain for read and one chain
for write.

The user-space stream_filter_append() type functions currently only operate
on the read chain. They need extending to work with the write chain too.
2003-02-18 01:22:21 +00:00
Ilia Alshanetsky
0fd1009fcc Added nice() function, which allows changing of priority for the current
process.
2003-02-18 01:07:57 +00:00
Zeev Suraski
4934744b93 Win32 build improvements 2003-02-17 13:29:59 +00:00
Shane Caraveo
216d1d00a5 you know it's time to get away from the keyboard when you do this.
fix my last fix
2003-02-17 06:45:37 +00:00
Derick Rethans
738d4f401f - Style polizei 2003-02-17 06:35:13 +00:00
foobar
7e9fb9f21f - Cleaned this mess a bit:
. Centralized the functions sunrise/sunset to php_sunrise_sunset
    to lessen duplicate code.
  . Made wrapper function php_do_date_sunrise_sunset() to lessen
    duplicate code.
  . Coding style fixes.
  . renamed sunfuncs.h -> php_sunfuncs.h
2003-02-17 06:28:07 +00:00
foobar
d3e006eafd - These results were obviously got with TZ=GMT
# also prefixed the test results with the tested option
# so it's easier to see which one fails..
2003-02-17 06:23:22 +00:00
foobar
6b7a822cec Assuming the results were created in system with Asia/Jerusalem as TZ 2003-02-17 05:51:03 +00:00
Shane Caraveo
eb6b7e80be fix it the right way 2003-02-17 05:47:56 +00:00
foobar
1c89652590 override precision ini setting 2003-02-17 05:02:05 +00:00
Shane Caraveo
354a7d804b If you pass NULL, you do not get a NULL value, make sure it is. 2003-02-17 03:26:16 +00:00
foobar
4e3d4e4329 - Let's be consistent with these.. 2003-02-17 03:07:33 +00:00
Wez Furlong
f871a58783 Fix compile warning 2003-02-17 00:01:31 +00:00
Wez Furlong
63c95db648 Remove unused vars 2003-02-16 22:33:29 +00:00
Moshe Doron
ea8d11cc87 @ new idate() function.
@ new date_sunrise() function.
@ new date_sunset() function.
#since i have no premission updating the win32 project file, i'm sending patch on the list.
2003-02-16 22:28:01 +00:00
Wez Furlong
32c1eafe85 Remove bogus test.
Append mode always causes written data to go to the end of the file,
regardless of the current seek position.
2003-02-16 15:42:14 +00:00
Wez Furlong
7e92f636ef Integrate Shanes patch that allows specifying the cwd and environment
for the child process created by proc_open().
2003-02-16 15:38:54 +00:00
Wez Furlong
0a18a9d744 A add much more useful select(2) implementation than is provided by
windows sockets.  The winsock implementation will only work with sockets;
our implementation works with sockets and file descriptors.
By association, stream_select() will now operate correctly with files, pipes and sockets.

This change required linking against the winsock2 library.  In terms of
compatibility, only older versions of windows 95 do not have winsock2
installed by default.  It is available as a redistributable file, and is most likely installed by any OS patches (eg: Internet Explorer) applied by the user.

Also, add a win32 compatible pipe test when opening a stream from a pipe.  This test will only work on NT, win2k and XP platforms.  Without this test, interleaved fread() and select() calls would cause the read buffer to be clobbered.  I will be working on a fix for this issue for win9x.
2003-02-16 03:48:49 +00:00
Wez Furlong
27e3d6477f Add optional signal parameter to proc_terminate. 2003-02-15 17:33:11 +00:00
Wez Furlong
c3c24054e8 Add proc_terminate() function to forcibly kill off a process created
with proc_open().
2003-02-15 17:18:57 +00:00
Moriyoshi Koizumi
b069f35022 Fixed bug #22227
Added test case for bug #22227
2003-02-15 15:57:31 +00:00
Marcus Boerger
c34fde086b a little bit slower but somewhat tricky and more flexible and it does not
allocate static buffers anymore
2003-02-14 19:43:06 +00:00
Moriyoshi Koizumi
9b49146dc1 Fixed a str_replace() bug similar to bug #22224 2003-02-14 18:59:50 +00:00
Moriyoshi Koizumi
b3a8349191 Fixed bug #22224 (implode changes object references in array)
Added test case for the bug
2003-02-14 18:42:36 +00:00
foobar
f9f4644a84 - Don't add libcrypt if the crypt() function is provided already.
(by libc, like in HP-UX)
2003-02-14 01:27:15 +00:00
Ilia Alshanetsky
2443adb8b5 Added test case for bug #22187. 2003-02-13 19:07:20 +00:00
foobar
e6841d6c35 Added test for those different crypt() methods. Hopefully I got the results right. 2003-02-13 18:49:57 +00:00
Ilia Alshanetsky
7fffe4338a Fixed bug #22207 (e notation in *printf would be missing a 0 when there is
no exponent).
Added a test case for the bug.
2003-02-13 17:25:31 +00:00
Ilia Alshanetsky
f8eba6ded2 Added 'x' mode for fopen() used on local files. This mode will create a new
file only if a file does not already exist (O_CREAT|O_EXCL).
2003-02-13 14:40:17 +00:00
Wez Furlong
95e7c2e9ed Use FILE*-less implementation for php://(stdin|stdout|stderr) 2003-02-13 13:43:37 +00:00
Wez Furlong
1c3de808b9 Avoid problems with chunk_size and auto_detect_line_endings. 2003-02-13 13:38:20 +00:00
Wez Furlong
b81ea669a0 cli should be allowed to have the chroot() function. 2003-02-13 13:35:55 +00:00
foobar
a91a14ab16 ws fix 2003-02-13 07:02:53 +00:00
Ilia Alshanetsky
e1802d7228 Fixed bug #22048 (incorrect insertion of session id when tabs are used to
separate tag elements).
2003-02-12 14:56:13 +00:00
Ilia Alshanetsky
53f96c8b02 Added strpbrk(), which is essentially a wrapper around C's strpbrk function
that allows searching through a string for a character list.
2003-02-11 22:47:26 +00:00
Ilia Alshanetsky
53b7b0eb8c Merged the flags for the file() function into a single flag. 2003-02-10 22:26:53 +00:00
Wez Furlong
eefe0f1bb0 ZTS fix 2003-02-09 23:11:23 +00:00
Kai Schroeder
eb8bccee56 fix for #17928 2003-02-09 21:44:51 +00:00
Ilia Alshanetsky
f98ea4c46d Added feature request #9173 (added stream_get_line(), this function will
read either the specified number of bytes or until the ending string is
found).
2003-02-09 20:43:05 +00:00
Ilia Alshanetsky
8b5bc3ecd3 Added feature request #17983 (optional parameter to mkdir() that makes
directory creation recursive).
Fixed prototype for file() function.
2003-02-09 20:35:54 +00:00
Ilia Alshanetsky
4eae41915f Added feature request #14097 (option allowing file() command not to include
line endings in it's output. As well as another option, which allows blank
lines to be excluded from the output).
2003-02-09 20:05:13 +00:00
foobar
a09e1397c7 Fixed compile failures when ZLIB / PCRE are compiled as shared
extensions in same build.
2003-02-09 19:09:52 +00:00
foobar
7d46becbb2 Let this compile even if PCRE is compiled as shared in same build. 2003-02-09 18:47:21 +00:00
Kai Schroeder
e42339a6b4 shane added is_executable() for windows last night 2003-02-09 13:54:01 +00:00
Kai Schroeder
d1338ff914 reverting to version 1.5; shane added is_executable() for windows last night 2003-02-09 13:52:46 +00:00