Re: Moving Socket extension to PECL
| From: | Maurice | Date: | Sat, 10 Feb 2007 19:59:10 +0000 |
| Subject: | Re: Moving Socket extension to PECL | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-27992@lists.php.net to get a copy of this message | ||
Hi Wez,
Normal (synchronous) connections are working just fine - no problem here. Have you really tried SSL with non-blocking streams? It works _sometimes_ (depends on the timing/server/etc.), but not always. I've checked the source code and openssl SSL_* calls are not used the way they should be in non-blocking mode. I'll prepare a test case later...In my first tests I also included support for streams (using stream_select) in order to support SSL/TLS enabled connections. However, the SSL transport layer in the Stream "extension" is totally screwed up if you use asynchronous socket streams.That's the first I've heard about this; I've been using it in this fashion successfully for some time.
Buggy? Well, it used to be really buggy some years ago, but I think it's rather stable now. Sockets are always a little bit problematic because they are not the same on all operating systems, but at least on Linux and Windows I don't have any problems. What if I would start maintaining the sockets extension? I think PHP should have some low-level connection stuff built-in. If you really think of moving ext/sockets to PECL I might as well concentrate on fixing the SSL/crypto problem in non-blocking streams. It's just that streams aren't so talkative regarding error messages...That's why I started extending the socket extension with socket_ssl_* functions that use the openssl extension (and thus are only available if PHP is compiled with openssl support). I will provide a patch for that once it's complete and out of beta status.The problem with ext/sockets is that it is old, unmaintained, buggy, and is not tied into the streams layer.
Yeah, I'm going to do that. I started with a bug (crashes PHP on Windows XP) regarding the streams extension in November. It's assigned, but no action has been taken yet: http://bugs.php.net/bug.php?id=39396 I see, it's not a "major" bug, but it crashes PHP and might (_might_) be used to inject code (haven't checked that). Maurice.Anyway, the Stream-SSL part has to be fixed _before_ moving the socket extension to PECL.The first step is opening a bug report with details on how to reproduce the problems that you've hinted at: