]> granicus.if.org Git - php/commitdiff
Simplify code per Anatol.
authorAdam Harvey <aharvey@php.net>
Sun, 8 Nov 2015 15:35:49 +0000 (16:35 +0100)
committerAnatol Belski <ab@php.net>
Mon, 11 Jan 2016 20:36:55 +0000 (21:36 +0100)
sapi/apache2handler/config.m4
sapi/apache2handler/sapi_apache2.c

index cbb0a2162f4ee2c9ab72ac89b4f920fac7f3710a..02f8a0b3ad86e70a5296737985197a7dc3fa8e56 100644 (file)
@@ -129,8 +129,6 @@ if test "$PHP_APXS2" != "no"; then
   fi
   AC_MSG_RESULT(yes)
   PHP_SUBST(APXS)
-
-  AC_CHECK_FUNCS(strtoll)
 else
   AC_MSG_RESULT(no)
 fi
index d25fe3f265f71e2c29e1e3cbd1b2b08d850da820..6fa2521c3847a10c32428d2de92f1a20b5190b94 100644 (file)
@@ -88,44 +88,6 @@ php_apache_sapi_ub_write(const char *str, uint str_length TSRMLS_DC)
        return str_length; /* we always consume all the data passed to us. */
 }
 
-/* Code shamelessly nicked from timelib. This should probably be in a common
- * header eventually. */
-#if defined(_MSC_VER)
-# define strtoll(s, f, b) _atoi64(s)
-#elif !defined(HAVE_STRTOLL)
-# if defined(HAVE_ATOLL)
-#  define strtoll(s, f, b) atoll(s)
-# else
-#  define strtoll(s, f, b) strtol(s, f, b)
-# endif
-#endif
-
-static apr_off_t
-php_apache_sapi_header_content_length(const char *val)
-{
-#if defined(PHP_WIN32) && defined(APR_HAS_LARGE_FILES)
-       return (apr_off_t) _strtoui64(val, (char **) NULL, 10);
-#else
-    /* Although apr_off_t started life as a simpler typedef for off_t, APR has
-     * long had the ability to use off64_t on platforms that support it, even
-     * if the platform itself is 32 bit. We need to check for the 64 bit case
-     * to ensure that we don't try to convert to a 32 bit integer
-     * unconditionally and therefore lose the ability to set a content length
-     * over 2G. */
-       if (sizeof(apr_off_t) >= 8) {
-               /* We're going to assume that long long is always 64 bits. If it's
-                * smaller, we're not doing any worse than we would have before bug
-                * #70879 was fixed anyway, since we'll just truncate to 32 bits. */
-               return (apr_off_t) strtoll(val, (char **) NULL, 10);
-       }
-
-       /* There's no real guarantee that sizeof(off_t) >= sizeof(long) in the
-        * POSIX standard, but we've done this for years and nobody's complained
-        * yet, so I think we'll consider this safe. */
-       return (apr_off_t) strtol(val, (char **) NULL, 10);
-#endif
-}
-
 static int
 php_apache_sapi_header_handler(sapi_header_struct *sapi_header, sapi_header_op_enum op, sapi_headers_struct *sapi_headers TSRMLS_DC)
 {
@@ -164,7 +126,14 @@ php_apache_sapi_header_handler(sapi_header_struct *sapi_header, sapi_header_op_e
                                }
                                ctx->content_type = estrdup(val);
                        } else if (!strcasecmp(sapi_header->header, "content-length")) {
-                               apr_off_t clen = php_apache_sapi_header_content_length(val);
+                               apr_off_t clen = 0;
+
+                               if (APR_SUCCESS != apr_strtoff(&clen, val, (char **) NULL, 10)) {
+                                       /* We'll fall back to strtol, since that's what we used to
+                                        * do anyway. */
+                                       clen = (apr_off_t) strtol(val, (char **) NULL, 10);
+                               }
+
                                ap_set_content_length(ctx->r, clen);
                        } else if (op == SAPI_HEADER_REPLACE) {
                                apr_table_set(ctx->r->headers_out, sapi_header->header, val);