X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_misc.c;h=fa4bbbf2854add35e959331ea20fc48065acc843;hp=416e95d4f7727231c7ff28709c83d18dc24d4ad5;hb=4957436be59f65fae9cdbaec1dc865acc680862f;hpb=4062420a5e5d301db4a3d820be881e7675a242e1 diff --git a/php_http_misc.c b/php_http_misc.c index 416e95d..fa4bbbf 100644 --- a/php_http_misc.c +++ b/php_http_misc.c @@ -6,17 +6,14 @@ | modification, are permitted provided that the conditions mentioned | | in the accompanying LICENSE file are met. | +--------------------------------------------------------------------+ - | Copyright (c) 2004-2010, Michael Wallner | + | Copyright (c) 2004-2011, Michael Wallner | +--------------------------------------------------------------------+ */ -/* $Id $ */ - -#include "php_http.h" +#include "php_http_api.h" #include -#include -#include +#include /* SLEEP */ @@ -39,7 +36,7 @@ PHP_HTTP_API void php_http_sleep(double s) #else struct timeval timeout; - timeout.tv.sec = (time_t) s; + timeout.tv_sec = (time_t) s; timeout.tv_usec = PHP_HTTP_USEC(s) % PHP_HTTP_MCROSEC; select(0, NULL, NULL, NULL, &timeout); @@ -53,6 +50,10 @@ int php_http_match(const char *haystack_str, const char *needle_str, int flags) { int result = 0; + if (!haystack_str || !needle_str) { + return result; + } + if (flags & PHP_HTTP_MATCH_FULL) { if (flags & PHP_HTTP_MATCH_CASE) { result = !strcmp(haystack_str, needle_str); @@ -115,6 +116,30 @@ size_t php_http_boundary(char *buf, size_t buf_len TSRMLS_DC) return snprintf(buf, buf_len, "%15.15F", PHP_HTTP_G->env.request.time * php_combined_lcg(TSRMLS_C)); } +int php_http_select_str(const char *cmp, int argc, ...) +{ + va_list argv; + int match = -1; + + if (cmp && argc > 0) { + int i; + + va_start(argv, argc); + for (i = 0; i < argc; ++i) { + const char *test = va_arg(argv, const char *); + + if (!strcasecmp(cmp, test)) { + match = i; + break; + } + } + va_end(argv); + } + + return match; +} + + /* ARRAYS */ int php_http_array_apply_append_func(void *pDest TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)