X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_response_object.c;h=37c45f8c65d1a379abc16d374f30fd435b313407;hp=dfc2476a8819259df634f5b2dbad0577cf9c3cf2;hb=47b6121fbba0b26ed778bc73d5d595ca47f9902d;hpb=afd561b680a07837192efbdb9ffe248def36f8e9 diff --git a/http_response_object.c b/http_response_object.c index dfc2476..37c45f8 100644 --- a/http_response_object.c +++ b/http_response_object.c @@ -41,6 +41,9 @@ #ifdef HTTP_HAVE_MHASH # include #endif +#ifdef HTTP_HAVE_MAGIC +# include +#endif ZEND_EXTERN_MODULE_GLOBALS(http); @@ -238,6 +241,11 @@ static inline void _http_response_object_declare_default_properties(TSRMLS_D) DCL_STATIC_PROP(PROTECTED, double, throttleDelay, 0.0); #ifndef WONKY + DCL_CONST(long, "REDIRECT", HTTP_REDIRECT); + DCL_CONST(long, "REDIRECT_PERM", HTTP_REDIRECT_PERM); + DCL_CONST(long, "REDIRECT_POST", HTTP_REDIRECT_POST); + DCL_CONST(long, "REDIRECT_TEMP", HTTP_REDIRECT_TEMP); + DCL_CONST(long, "ETAG_MD5", HTTP_ETAG_MD5); DCL_CONST(long, "ETAG_SHA1", HTTP_ETAG_SHA1); DCL_CONST(long, "ETAG_CRC32", HTTP_ETAG_CRC32); @@ -500,7 +508,7 @@ PHP_METHOD(HttpResponse, getContentType) } /* }}} */ -/* {{{ proto static string HttpResponse::guessContentType(string magic_file[, long magic_mode]) +/* {{{ proto static string HttpResponse::guessContentType(string magic_file[, long magic_mode = MAGIC_MIME]) * * Attempts to guess the content type of supplied payload through libmagic. */ @@ -512,6 +520,9 @@ PHP_METHOD(HttpResponse, guessContentType) RETVAL_NULL(); +#ifdef HTTP_HAVE_MAGIC + magic_mode = MAGIC_MIME; + SET_EH_THROW_HTTP(); if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &magic_file, &magic_file_len, &magic_mode)) { switch (Z_LVAL_P(GET_STATIC_PROP(mode))) { @@ -542,6 +553,9 @@ PHP_METHOD(HttpResponse, guessContentType) } } SET_EH_NORMAL(); +#else + http_error(HE_THROW, HTTP_E_RUNTIME, "Cannot guess Content-Type; libmagic not available"); +#endif } /* }}} */