take 4th parameter specifying whether to use the read() wrapper or the
system read() function, and modified the wrapper() so that it worked (mostly)
properly once again.
calling the read() system call.
# Some people were commenting about "oddities" in the wrapper that I hadn't
# noticed before, though I've used it in many places before now..
symbol on Solaris.. s_un isn't...), and corrected bugs with checking for a
string by checking if Z_STRVAL_PP(ptr) == NULL instead of
Z_STRLEN_PP == 0, causing segfaults when uninitialized values were passed
into certain functions.
@- Attempted to make compile fixes for Solaris in ext/sockets/sockets.c (Chris Vandomelen)
# OK, so I have a tendency to make lots and lots of bug fixes in big spurts..
on most varieties of Linux, and should hopefully fix at least 3 of the
compile errors that were discovered). Also modified read() slightly
to take an optional parameter as to whether the data was binary or
text so it wouldn't stop reading on a newline or null byte received.
@- Made read() binary-safe in sockets.c (Chris Vandomelen)
@- Attempted fixing some compile failures (Chris Vandomelen)
# Hopefully someone will attempt to compile this on other systems, I
# have no access to other platforms to compile it on ....
* Fixed a bug in zend_rsrc_list_get_rsrc_type()
* Switched register_list_destructors() to use
zend_register_list_destructors_ex() instead
* Updated all relevant modules to provide the resource type name
to register_list_destructors() call
* Updated var_dump() to output resource type name instead of number
@- Made resource type names visible, e.g. var_dump() and
@ get_resource_type() display "file" for file resources. (Andrei)
- Make constants case-sensitive, conforming with the rest of PHP &
the C API.
- Make module compatible with thread safety features.
- open_listen_sok() -> open_listen_sock()
- Remove ext_skel comments
- Get rid of the ZVAL macro and replace with the correct Z_*_*
macros
- declare all functions local to the file as static.
- Remove empty PHP_MSHUTDOWN() function.
- Removed confirm_sockets_compiled()
- Changed RETVAL_* macro's to RETURN_* macro's eliminating errors
with incorrect return values and a potential leak/crash or two.
- functions that return void, actually return void
- Replaced 'long' in the prototypes with 'int'
- Fixed fd_zero() function, it gave a WRONG_PARAM_COUNT when you
gave it the proper parameter count.
- Changed the way an arbitrary number of parameters were accessed
from build_iovec() to use the Zend API.
- Added socketpair() and shutdown() functions.
Numerous changes. Many prototypes changed to be more like the
appropriate *NIX counterparts. Many new prototypes defining many
more advanced socket routines. Better AF_UNIX socket support.
bind() now recognizes the socket type and acts appropriately,
instead of needing the AF_* for the socket passed in.
# Something I'd like to write yet is proper signal() support. Unfortunately,
# the last time I tried, doing anything with the signal except ignoring it
# caused PHP to segfault. And to have decent socket support.. at least, from
# my experience, having signals is a good thing. Only problem.. to implement
# it, some changes would have to be made to the parser - since that is where
# the problems lie on handling asynchronous signals.