- 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
- Set the global 'last_error' explicitely for functions which can't return an
error withing a single socket context (socket_create and socket_select)
- Modified socket_last_error() to return global modules last
error if no socket resource is given
- Added a couple of more E_WARNING messages in case something
goes foobar so the user isn't left alone in the dark.
Redesigned socket_recv() as outlined on php-dev
Modified socket_last_error() to no longer clear the error
Added socket_clear_error()
Fixed socket_set_nonblock()
Added socket_set_block()
Fixed a proto
Saved 1 byte of RAM : )
- nuke first parameter to socket_select (detemine it ourself)
- swap parameters for socket_fd_set, socket_fd_clear & socket_fd_isset
- allow to pass an array of sockets to socket_fd_set + socket_fd_clear
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..
- 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.