Re: [PHP-DEV] Re: [PHP-CVS] cvs: php4 / TODO-4.1.txt From: Wez Furlong (wez <email protected>)
Date: 04/17/01

On 2001-04-17 17:20:34, "Zeev Suraski" <zeev <email protected>> wrote:
> How did you implement it? The main problem with doing this until now was
> that under Windows, it's pretty much impossible to get a FILE* from a
> socket. The right way to implement it would most probably be implementing
> something similar to C++'s virtual classes, so I'm wondering whether you
> did it that way...

It's in CVS now - take a look at main/php_streams.h.

It's a bit like implementing our own set of stdio functions and using those rather than the ANSI ones; these call down into the ANSI stdio or fds/sockets (or SSL sockets eventually) as appropriate.

Casting into a FILE* just makes use of fdopen for sockets, or returns the underlying FILE* if there is one.

We can only pass back a FILE* for something really alien if we have fopencookie.

There's no real magic in it :-)

If you can spot problems with this let me know!

--Wez.

-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: php-dev-unsubscribe <email protected>
For additional commands, e-mail: php-dev-help <email protected>
To contact the list administrators, e-mail: php-list-admin <email protected>