summaryrefslogtreecommitdiff
path: root/main/streams/plain_wrapper.c
Commit message (Collapse)AuthorAgeFilesLines
* Fixed condition checkXinchen Hui2017-04-101-3/+3
|
* add 'e' flag for fopen() to enable CLOEXECEvgeniy Makhrov2017-01-071-0/+6
|
* Update copyright headers to 2017Sammy Kaye Powers2017-01-041-1/+1
|
* Merge branch 'PHP-5.6' into PHP-7.0Xinchen Hui2016-08-171-0/+12
|\ | | | | | | | | | | | | | | * PHP-5.6: Fixed bug #72853 (stream_set_blocking doesn't work) Conflicts: main/streams/plain_wrapper.c
| * Fixed bug #72853 (stream_set_blocking doesn't work)Xinchen Hui2016-08-171-1/+13
| | | | | | | | Implemented PHP_STREAM_OPTION_META_DATA_API for plain_wrappers
* | simplify expressionJoe Watkins2016-04-281-1/+1
| |
* | Merge branch 'PHP-5.6' into PHP-7.0Lior Kaplan2016-01-011-1/+1
|\ \ | |/ | | | | | | * PHP-5.6: Happy new year (Update copyright to 2016)
| * Happy new year (Update copyright to 2016)Lior Kaplan2016-01-011-1/+1
| |
| * Fixed bug #69900 Too long timeout on pipesAnatol Belski2015-07-281-3/+3
| |
* | add overflow checkAnatol Belski2015-09-021-1/+5
| |
* | fix pipe peek timeoutAnatol Belski2015-07-021-3/+3
| |
* | Fix alignment on 32-bitChristoph M. Becker2015-07-021-1/+2
| |
* | fix c/p issueAnatol Belski2015-07-021-6/+6
| |
* | initial stuff to make allow blocking pipes on windowsAnatol Belski2015-07-021-2/+22
| |
* | Use ZSTR_ API to access zend_string elements (this is just renaming without ↵Dmitry Stogov2015-06-301-4/+4
| | | | | | | | semantick changes).
* | no more winxp, but reallyAnatol Belski2015-04-041-4/+2
| |
* | fix conditionAnatol Belski2015-03-191-1/+1
| |
* | use portable fseekAnatol Belski2015-03-111-1/+1
| |
* | Avoid repeatable strlen() callsDmitry Stogov2015-03-051-10/+9
| |
* | Use zend_string* instead of char* for opened_patch handling. Avoid ↵Dmitry Stogov2015-03-041-31/+23
| | | | | | | | reallocations and improve string reuse.
* | Merge branch 'pull-request/1032'Stanislav Malyshev2015-02-011-3/+6
|\ \ | | | | | | | | | | | | * pull-request/1032: do_fstat changes
| * | do_fstat changesJoshua Rogers2015-02-011-3/+6
| | | | | | | | | | | | Check return values of 'do_fstat' function in all places.
* | | Merge branch 'PHP-5.6'Stanislav Malyshev2015-01-311-1/+1
|\ \ \ | | |/ | |/| | | | | | | | | | | | | | | | * PHP-5.6: fix group name handling Conflicts: main/streams/plain_wrapper.c
| * | Merge branch 'PHP-5.5' into PHP-5.6Stanislav Malyshev2015-01-311-1/+1
| |\ \ | | | | | | | | | | | | | | | | * PHP-5.5: fix group name handling
| | * | fix group name handlingStanislav Malyshev2015-01-311-1/+1
| | | |
| | * | Bump yearXinchen Hui2015-01-151-1/+1
| | | |
| * | | bump yearXinchen Hui2015-01-151-1/+1
| | | |
* | | | fix warningsMichael Wallner2015-01-301-0/+3
| |_|/ |/| |
* | | bump yearXinchen Hui2015-01-151-1/+1
| | |
* | | trailing whitespace removalStanislav Malyshev2015-01-101-35/+35
| | |
* | | first shot remove TSRMLS_* thingsAnatol Belski2014-12-131-89/+89
| | |
* | | Merge branch 'PHP-5.6'Anatol Belski2014-12-011-4/+1
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * PHP-5.6: add include for missing usleep proto C89 compat Added more useful warning messages Changed based on comments and make its behaviour equal to the Windows version Fix #53092 - dns_get_record does not return false on dns server failure Fix php cli (-S option) inconsistent port parsing Conflicts: main/streams/plain_wrapper.c
| * | Merge branch 'PHP-5.5' into PHP-5.6Anatol Belski2014-12-011-4/+2
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | * PHP-5.5: add include for missing usleep proto C89 compat Added more useful warning messages Changed based on comments and make its behaviour equal to the Windows version Fix #53092 - dns_get_record does not return false on dns server failure Fix php cli (-S option) inconsistent port parsing
| | * add include for missing usleep protoAnatol Belski2014-12-011-0/+1
| | |
| | * C89 compatAnatol Belski2014-12-011-4/+1
| | |
* | | Merge branch 'PHP-5.6'Stanislav Malyshev2014-11-301-29/+16
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | * PHP-5.6: Update NEWS fix typo Added test and review suggestion Fix bug #68335: rmdir doesnt work with file:// stream wrapper
| * | Merge branch 'PHP-5.5' into PHP-5.6Stanislav Malyshev2014-11-301-29/+16
| |\ \ | | |/ | | | | | | | | | | | | * PHP-5.5: Added test and review suggestion Fix bug #68335: rmdir doesnt work with file:// stream wrapper
| | * Added test and review suggestionmcq82014-11-301-34/+14
| | |
| | * Fix bug #68335: rmdir doesnt work with file:// stream wrappermcq82014-11-301-0/+7
| | |
* | | proper dllexportAnatol Belski2014-11-181-1/+1
| | |
* | | fix datatype mismatchesAnatol Belski2014-10-271-10/+14
| | |
* | | add include for usleep() protoAnatol Belski2014-10-231-0/+1
| | |
* | | Merge branch 'PHP-5.6'Anatol Belski2014-09-291-1/+1
|\ \ \ | |/ / | | | | | | | | | * PHP-5.6: increase the polling period to not to break existing behaviours
| * | Merge branch 'PHP-5.5' into PHP-5.6Anatol Belski2014-09-291-1/+1
| |\ \ | | |/ | | | | | | | | | * PHP-5.5: increase the polling period to not to break existing behaviours
| | * increase the polling period to not to break existing behavioursAnatol Belski2014-09-291-1/+1
| | |
* | | Merge branch 'PHP-5.6'Anatol Belski2014-09-291-0/+28
|\ \ \ | |/ / | | | | | | | | | | | | | | | | | | | | | * PHP-5.6: updated NEWS Fixed bug #51800 proc_open on Windows hangs forever Conflicts: main/streams/plain_wrapper.c
| * | Merge branch 'PHP-5.5' into PHP-5.6Anatol Belski2014-09-291-0/+28
| |\ \ | | |/ | | | | | | | | | * PHP-5.5: Fixed bug #51800 proc_open on Windows hangs forever
| | * Fixed bug #51800 proc_open on Windows hangs foreverAnatol Belski2014-09-291-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This loop can block for some minutes, theoretically. Practially however, this is a 99% non issue for a normal use case. This is required because read() is synchronous. The PHP streams API wants to fill its internal buffers, therefore it might try to read some more data than user has demanded. Also, for a case where we want to read X bytes, but neither enough data nor EOF arrives, read() will block until it could fill the buffer. If a counterpart station runs slowly or delivers not all the data at once, read() would still be waiting. If we quit too early, we possibly could loose some data from the pipe. Thus it has to emulate the read() behaviour, but obviously not completely, just to some grade. Reading big data amount is for sure an issue on any platforms, it depends on the pipe buffer size, which is controlled by the system. On Windows, the buffer size seems to be way too small, which causes buffer congestion and a dead lock. It is essential to read the pipe descriptors simultaneously and possibly in the same order as the opposite writes them. Thus, this will work with smaller buffer data sizes passed through pipes. As MSDN states, anonymous pipes don't support asynchronous operations. Neither anonymous pipes do support select() as they are not SOCKETs but file descriptors. Consequently - bigger data sizes will need a better solution based on threads. However it is much more expencive. Maybe a better solution could be exporting a part of the internal doing as a userspace function which could perform some kind of lookahead operation on the pipe descriptor. This is just the first stone, depending on the user feedback we might go for further improvements in this area.
| | * Bump yearXinchen Hui2014-01-031-1/+1
| | |
* | | s/PHP 5/PHP 7/Johannes Schlüter2014-09-191-1/+1
| | |