Skip to content

Commit

Permalink
Implemented FR #62702 (Make baseuri case-insensitive)
Browse files Browse the repository at this point in the history
  • Loading branch information
laruence committed Jul 31, 2012
1 parent 0067a32 commit f8bbe99
Show file tree
Hide file tree
Showing 7 changed files with 64 additions and 10 deletions.
4 changes: 2 additions & 2 deletions routes/map.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/

/* $Id: map.c 324890 2012-04-06 05:46:43Z laruence $*/
/* $Id: map.c 326904 2012-07-31 15:00:05Z laruence $*/

zend_class_entry *yaf_route_map_ce;

Expand Down Expand Up @@ -72,7 +72,7 @@ int yaf_route_map_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC) {
delimer = zend_read_property(yaf_route_map_ce, route, ZEND_STRL(YAF_ROUTE_MAP_VAR_NAME_DELIMETER), 1 TSRMLS_CC);

if (base_uri && IS_STRING == Z_TYPE_P(base_uri)
&& strstr(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri)) == Z_STRVAL_P(zuri)) {
&& !strncasecmp(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri), Z_STRLEN_P(base_uri))) {
req_uri = estrdup(Z_STRVAL_P(zuri) + Z_STRLEN_P(base_uri));
} else {
req_uri = estrdup(Z_STRVAL_P(zuri));
Expand Down
4 changes: 2 additions & 2 deletions routes/regex.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/

/* $Id: regex.c 321289 2011-12-21 02:53:29Z laruence $ */
/* $Id: regex.c 326904 2012-07-31 15:00:05Z laruence $ */

zend_class_entry *yaf_route_regex_ce;

Expand Down Expand Up @@ -134,7 +134,7 @@ int yaf_route_regex_route(yaf_route_t *router, yaf_request_t *request TSRMLS_DC)
base_uri = zend_read_property(yaf_request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), 1 TSRMLS_CC);

if (base_uri && IS_STRING == Z_TYPE_P(base_uri)
&& strstr(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri)) == Z_STRVAL_P(zuri)) {
&& !strncasecmp(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri), Z_STRLEN_P(base_uri))) {
request_uri = estrdup(Z_STRVAL_P(zuri) + Z_STRLEN_P(base_uri));
} else {
request_uri = estrdup(Z_STRVAL_P(zuri));
Expand Down
4 changes: 2 additions & 2 deletions routes/rewrite.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/

/* $Id: rewrite.c 321289 2011-12-21 02:53:29Z laruence $ */
/* $Id: rewrite.c 326904 2012-07-31 15:00:05Z laruence $ */

zend_class_entry *yaf_route_rewrite_ce;

Expand Down Expand Up @@ -175,7 +175,7 @@ int yaf_route_rewrite_route(yaf_route_t *router, yaf_request_t *request TSRMLS_D
base_uri = zend_read_property(yaf_request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), 1 TSRMLS_CC);

if (base_uri && IS_STRING == Z_TYPE_P(base_uri)
&& strstr(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri)) == Z_STRVAL_P(zuri)) {
&& !strncasecmp(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri), Z_STRLEN_P(base_uri))) {
request_uri = estrdup(Z_STRVAL_P(zuri) + Z_STRLEN_P(base_uri));
} else {
request_uri = estrdup(Z_STRVAL_P(zuri));
Expand Down
4 changes: 2 additions & 2 deletions routes/static.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/

/* $Id: static.c 326042 2012-06-08 10:49:59Z laruence $ */
/* $Id: static.c 326904 2012-07-31 15:00:05Z laruence $ */

zend_class_entry * yaf_route_static_ce;

Expand Down Expand Up @@ -148,7 +148,7 @@ int yaf_route_static_route(yaf_route_t *route, yaf_request_t *request TSRMLS_DC)
base_uri = zend_read_property(yaf_request_ce, request, ZEND_STRL(YAF_REQUEST_PROPERTY_NAME_BASE), 1 TSRMLS_CC);

if (base_uri && IS_STRING == Z_TYPE_P(base_uri)
&& strstr(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri)) == Z_STRVAL_P(zuri)) {
&& !strncasecmp(Z_STRVAL_P(zuri), Z_STRVAL_P(base_uri), Z_STRLEN_P(base_uri))) {
req_uri = estrdup(Z_STRVAL_P(zuri) + Z_STRLEN_P(base_uri));
req_uri_len = Z_STRLEN_P(zuri) - Z_STRLEN_P(base_uri);
} else {
Expand Down
2 changes: 1 addition & 1 deletion routes/supervar.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/

/* $Id: supervar.c 325541 2012-05-05 03:54:56Z laruence $ */
/* $Id: supervar.c 326905 2012-07-31 15:18:27Z laruence $ */

#define YAF_ROUTE_SUPERVAR_PROPETY_NAME_VAR "_var_name"

Expand Down
53 changes: 53 additions & 0 deletions tests/bug62702.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
--TEST--
FR #62702 (Make baseuri case-insensitive)
--SKIPIF--
<?php if (!extension_loaded("yaf")) print "skip"; ?>
--FILE--
<?php

$router = new Yaf_Route_Static();
$request = new Yaf_Request_Http("/sample", "/sample");
$router->route($request);
var_dump($request->getControllerName());

$request = new Yaf_Request_Http("/Sample/ABC", "/sample");
$router->route($request);
var_dump($request->getControllerName());


$router = new Yaf_Route_Map(true);
$request = new Yaf_Request_Http("/sample/A/B/C", "/sample");
$router->route($request);
var_dump($request->getControllerName());

$request = new Yaf_Request_Http("/sample", "/sAmplE");
$router->route($request);
var_dump($request->getControllerName());

$router = new Yaf_Route_Regex("#^/test#", array("controller" => "info"), array());
$request = new Yaf_Request_Http("/test/", "/Test");
$router->route($request);
var_dump($request->getControllerName());

$request = new Yaf_Request_Http("/sample/test", "/sAmplE");
$router->route($request);
var_dump($request->getControllerName());

$router = new Yaf_Route_Rewrite("/test", array("controller" => "info"), array());
$request = new Yaf_Request_Http("/test/", "/Test");
$router->route($request);
var_dump($request->getControllerName());

$request = new Yaf_Request_Http("/sample/test", "/sAmplE");
$router->route($request);
var_dump($request->getControllerName());
?>
--EXPECTF--
NULL
string(3) "ABC"
string(5) "A_B_C"
NULL
NULL
string(4) "info"
NULL
string(4) "info"
3 changes: 2 additions & 1 deletion yaf_loader.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/

/* $Id: yaf_loader.c 326050 2012-06-09 08:58:50Z laruence $ */
/* $Id: yaf_loader.c 326906 2012-07-31 15:22:47Z laruence $ */

#ifdef HAVE_CONFIG_H
#include "config.h"
Expand Down Expand Up @@ -417,6 +417,7 @@ int yaf_loader_import(char *path, int len, int use_path TSRMLS_DC) {
YAF_RESTORE_EG_ENVIRON();
}
} else {
/* return failed only on the file can not be found */
return 0;
}

Expand Down

0 comments on commit f8bbe99

Please sign in to comment.