#define PHP_STREAM_CAST_MASK (PHP_STREAM_CAST_TRY_HARD | PHP_STREAM_CAST_RELEASE | PHP_STREAM_CAST_INTERNAL)
BEGIN_EXTERN_C()
PHPAPI int _php_stream_cast(php_stream *stream, int castas, void **ret, int show_err TSRMLS_DC);
-/* This functions transforms the first char to 'w' if it's not 'r', 'a' or 'w'
- * and strips any subsequent chars except '+' and 'b'.
- * Use this to sanitize stream->mode if you call e.g. fdopen, fopencookie or
- * any other function that expects standard modes and you allow non-standard
- * ones. result should be a char[5]. */
-PHPAPI void php_stream_rep_nonstand_mode(php_stream *stream, char *result);
END_EXTERN_C()
/* use this to check if a stream can be cast into another form */
#define php_stream_can_cast(stream, as) _php_stream_cast((stream), (as), NULL, 0 TSRMLS_CC)
#endif
/* }}} */
-/* {{{ php_stream_rep_nonstand_mode
+/* {{{ php_stream_mode_sanitize_fdopen_fopencookie
* Result should have at least size 5, e.g. to write wbx+\0 */
-PHPAPI void php_stream_rep_nonstand_mode(php_stream *stream, char *result)
+void php_stream_mode_sanitize_fdopen_fopencookie(php_stream *stream, char *result)
{
/* replace modes not supported by fdopen and fopencookie, but supported
* by PHP's fread(), so that their calls won't fail */
{
char fixed_mode[5];
- php_stream_rep_nonstand_mode(stream, fixed_mode);
+ php_stream_mode_sanitize_fdopen_fopencookie(stream, fixed_mode);
*(FILE**)ret = fopencookie(stream, fixed_mode, PHP_STREAM_COOKIE_FUNCTIONS);
}
#define S_ISREG(mode) (((mode)&S_IFMT) == S_IFREG)
#endif
+/* This functions transforms the first char to 'w' if it's not 'r', 'a' or 'w'
+ * and strips any subsequent chars except '+' and 'b'.
+ * Use this to sanitize stream->mode if you call e.g. fdopen, fopencookie or
+ * any other function that expects standard modes and you allow non-standard
+ * ones. result should be a char[5]. */
+void php_stream_mode_sanitize_fdopen_fopencookie(php_stream *stream, char *result);
+
void php_stream_tidy_wrapper_error_log(php_stream_wrapper *wrapper TSRMLS_DC);
void php_stream_display_wrapper_errors(php_stream_wrapper *wrapper, const char *path, const char *caption TSRMLS_DC);
/* we were opened as a plain file descriptor, so we
* need fdopen now */
char fixed_mode[5];
- php_stream_rep_nonstand_mode(stream, fixed_mode);
+ php_stream_mode_sanitize_fdopen_fopencookie(stream, fixed_mode);
data->file = fdopen(data->fd, fixed_mode);
if (data->file == NULL) {
return FAILURE;