From: Michael Wallner Date: Tue, 19 Jul 2005 20:33:50 +0000 (+0000) Subject: - flush X-Git-Tag: RELEASE_0_10_0~36 X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=commitdiff_plain;h=020d5b055921392c0dfb25043962a40867d8b033;ds=sidebyside - flush --- diff --git a/http_api.c b/http_api.c index 1773ce7..3dcaff0 100644 --- a/http_api.c +++ b/http_api.c @@ -91,8 +91,8 @@ STATUS _http_parse_key_list(const char *list, HashTable *items, char separator, if (decode) { \ decode(str, len, &decoded, &decoded_len TSRMLS_CC); \ } else { \ - decoded = estrdup(str); \ decoded_len = len; \ + decoded = estrndup(str, decoded_len); \ } \ add_assoc_stringl(array, k, decoded, decoded_len, 0); \ } @@ -120,7 +120,7 @@ STATUS _http_parse_key_list(const char *list, HashTable *items, char separator, key = val + strlen(val); HTTP_KEYLIST_FIXVAL(); HTTP_KEYLIST_VAL(&array, "value", val, vallen); - goto list_done; + return SUCCESS; } /* additional info appended */ else { @@ -152,7 +152,6 @@ STATUS _http_parse_key_list(const char *list, HashTable *items, char separator, efree(keydup); } while (!done); -list_done: return SUCCESS; } diff --git a/http_send_api.c b/http_send_api.c index 764d2ac..023c6ec 100644 --- a/http_send_api.c +++ b/http_send_api.c @@ -48,18 +48,24 @@ static inline void _http_flush(TSRMLS_D) /* {{{ static inline void http_sleep() */ static inline void _http_sleep(TSRMLS_D) { - if (HTTP_G(send).throttle_delay >= 0.001) { +#define HTTP_MSEC(s) (s * 1000) +#define HTTP_USEC(s) (HTTP_MSEC(s) * 1000) +#define HTTP_NSEC(s) (HTTP_USEC(s) * 1000) +#define HTTP_NANOSEC (1000 * 1000 * 1000) +#define HTTP_DIFFSEC (0.001) + + if (HTTP_G(send).throttle_delay >= HTTP_DIFFSEC) { #if defined(PHP_WIN32) - Sleep((DWORD) (HTTP_G(send).throttle_delay * 1000)); + Sleep((DWORD) HTTP_MSEC(HTTP_G(send).throttle_delay)); #elif defined(HAVE_USLEEP) - usleep(HTTP_G(send).throttle_delay * 1000000); + usleep(HTTP_USEC(HTTP_G(send).throttle_delay)); #elif defined(HAVE_NANOSLEEP) struct timespec req, rem; req.tv_sec = (time_t) HTTP_G(send).throttle_delay; - req.tv_nsec = (HTTP_G(send).throttle_delay * 1000000000) % 1000000000; + req.tv_nsec = HTTP_NSEC(HTTP_G(send).throttle_delay) % HTTP_NANOSEC; - while (nanosleep(&req, &rem) && (errno == EINTR) && (rem.tv_nsec > 1000000)) { + while (nanosleep(&req, &rem) && (errno == EINTR) && (HTTP_NSEC(rem.tv_sec) + rem.tv_nsec) > HTTP_NSEC(HTTP_DIFFSEC))) { req.tv_sec = rem.tv_sec; req.tv_nsec = rem.tv_nsec; } diff --git a/phpstr/phpstr.h b/phpstr/phpstr.h index 9ef71ef..40c59ed 100644 --- a/phpstr/phpstr.h +++ b/phpstr/phpstr.h @@ -6,8 +6,14 @@ #include "php.h" -#ifdef PHP_WIN32 -# define PHPSTR_API __declspec(dllexport) +#if defined(PHP_WIN32) +# if defined(PHPSTR_EXPORTS) +# define PHPSTR_API __declspec(dllexport) +# elif defined(COMPILE_DL_PHPSTR) +# define PHPSTR_API __declspec(dllimport) +# else +# define PHPSTR_API +# endif #else # define PHPSTR_API #endif @@ -143,4 +149,3 @@ PHPSTR_API void phpstr_free(phpstr *buf); * vim600: sw=4 ts=4 fdm=marker * vim<600: sw=4 ts=4 */ -