| modification, are permitted provided that the conditions mentioned |
| in the accompanying LICENSE file are met. |
+--------------------------------------------------------------------+
- | Copyright (c) 2004-2010, Michael Wallner <mike@php.net> |
+ | Copyright (c) 2004-2011, Michael Wallner <mike@php.net> |
+--------------------------------------------------------------------+
*/
-/* $Id: php_http_api.h 298891 2010-05-03 08:26:38Z mike $ */
-
#ifndef PHP_HTTP_MISC_H
#define PHP_HTTP_MISC_H
#define PHP_HTTP_MATCH_CASE 0x01
#define PHP_HTTP_MATCH_WORD 0x10
#define PHP_HTTP_MATCH_FULL 0x20
-#define PHP_HTTP_MATCH_STRICT (PHP_HTTP_ENV_MATCH_CASE|PHP_HTTP_ENV_MATCH_FULL)
+#define PHP_HTTP_MATCH_STRICT (PHP_HTTP_MATCH_CASE|PHP_HTTP_MATCH_FULL)
extern int php_http_match(const char *haystack, const char *needle, int flags);
-
extern char *php_http_pretty_key(char *key, size_t key_len, zend_bool uctitle, zend_bool xhyphen);
extern size_t php_http_boundary(char *buf, size_t len TSRMLS_DC);
+extern int php_http_select_str(const char *cmp, int argc, ...);
static inline const char *php_http_locate_str(const char *h, size_t h_len, const char *n, size_t n_len)
{
for (eol = bin; eol - bin < len; ++eol) {
if (*eol == '\r' || *eol == '\n') {
- *eol_len = eol ? ((eol[0] == '\r' && eol[1] == '\n') ? 2 : 1) : 0;
+ if (eol_len) {
+ *eol_len = eol ? ((eol[0] == '\r' && eol[1] == '\n') ? 2 : 1) : 0;
+ }
return eol;
}
}
#define PHP_HTTP_ARGS(class, method) args_for_ ##class## _ ##method
#define PHP_HTTP_ARG_VAL(name, pass_ref) ZEND_ARG_INFO(pass_ref, name)
#define PHP_HTTP_ARG_OBJ(class, name, allow_null) ZEND_ARG_OBJ_INFO(0, name, class, allow_null)
+#define PHP_HTTP_ARG_ARR(name, allow_null, pass_ref) ZEND_ARG_ARRAY_INFO(pass_ref, name, allow_null)
#define EMPTY_FUNCTION_ENTRY {NULL, NULL, NULL, 0, 0}
PHP_HTTP_API size_t php_http_pass_wrapper(php_http_pass_callback_arg_t *cb_arg, const char *str, size_t len);
+typedef struct php_http_pass_fcall_arg {
+ zval *fcz;
+ zend_fcall_info fci;
+ zend_fcall_info_cache fcc;
+#ifdef ZTS
+ void ***ts;
+#endif
+} php_http_pass_fcall_arg_t;
+
+PHP_HTTP_API size_t php_http_pass_fcall_callback(void *cb_arg, const char *str, size_t len);
+
/* ERROR */
extern void php_http_error(long type TSRMLS_DC, long code, const char *format, ...);