From: Marcus Boerger Date: Fri, 20 Dec 2002 16:37:44 +0000 (+0000) Subject: MFH X-Git-Tag: php-4.3.0RC4~9 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=95b4b3ea3e2ef9d626dc82faf84320e689d58bef;p=php MFH --- diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 154af12f62..76d0e0279f 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -523,7 +523,10 @@ function_entry basic_functions[] = { PHP_FE(getrusage, NULL) #endif +#ifdef HAVE_GETTIMEOFDAY PHP_FE(uniqid, NULL) +#endif + PHP_FE(quoted_printable_decode, NULL) PHP_FE(convert_cyr_string, NULL) PHP_FE(get_current_user, NULL) diff --git a/ext/standard/uniqid.c b/ext/standard/uniqid.c index feff29949c..7ab0ece36e 100644 --- a/ext/standard/uniqid.c +++ b/ext/standard/uniqid.c @@ -40,11 +40,15 @@ /* {{{ proto string uniqid(string prefix [, bool more_entropy]) Generates a unique ID */ +#ifdef HAVE_GETTIMEOFDAY PHP_FUNCTION(uniqid) { -#ifdef HAVE_GETTIMEOFDAY char *prefix; +#if defined(__CYGWIN__) + zend_bool more_entropy = 1; +#else zend_bool more_entropy = 0; +#endif char uniqid[138]; int sec, usec, argc, prefix_len; struct timeval tv; @@ -57,17 +61,21 @@ PHP_FUNCTION(uniqid) /* Do some bounds checking since we are using a char array. */ if (prefix_len > 114) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "The prefix to uniqid should not be more than 114 characters."); + php_error_docref(NULL TSRMLS_CC, E_ERROR, "The prefix to uniqid should not be more than 114 characters."); return; } #if HAVE_USLEEP && !defined(PHP_WIN32) if (!more_entropy) { +#if defined(__CYGWIN__) + php_error_docref(NULL TSRMLS_CC, E_ERROR, "You must use 'more entropy' under CYGWIN."); + return; +#endif usleep(1); } #endif gettimeofday((struct timeval *) &tv, (struct timezone *) NULL); sec = (int) tv.tv_sec; - usec = (int) (tv.tv_usec % 1000000); + usec = (int) (tv.tv_usec % 0x100000); /* The max value usec can have is 0xF423F, so we use only five hex * digits for usecs. @@ -79,16 +87,10 @@ PHP_FUNCTION(uniqid) } RETURN_STRING(uniqid, 1); -#endif } +#endif /* }}} */ -function_entry uniqid_functions[] = { - PHP_FE(uniqid, NULL) - {NULL, NULL, NULL} -}; - - /* * Local variables: * tab-width: 4 diff --git a/ext/standard/uniqid.h b/ext/standard/uniqid.h index 352a75ff82..65e1f046c4 100644 --- a/ext/standard/uniqid.h +++ b/ext/standard/uniqid.h @@ -21,6 +21,8 @@ #ifndef UNIQID_H #define UNIQID_H +#ifdef HAVE_GETTIMEOFDAY PHP_FUNCTION(uniqid); +#endif #endif /* UNIQID_H */