dmitry Wed, 01 Feb 2012 11:26:57 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=322992
Log: Fixed basic HTTP authentication for WSDL sub requests Changed paths: U php/php-src/branches/PHP_5_3/NEWS U php/php-src/branches/PHP_5_3/ext/soap/php_sdl.c U php/php-src/branches/PHP_5_4/NEWS U php/php-src/branches/PHP_5_4/ext/soap/php_sdl.c U php/php-src/trunk/ext/soap/php_sdl.c Modified: php/php-src/branches/PHP_5_3/NEWS =================================================================== --- php/php-src/branches/PHP_5_3/NEWS 2012-02-01 11:07:56 UTC (rev 322991) +++ php/php-src/branches/PHP_5_3/NEWS 2012-02-01 11:26:57 UTC (rev 322992) @@ -33,6 +33,9 @@ - PDO_Sqlite extension: . Add createCollation support. (Damien) +- SOAP: + . Fixed basic HTTP authentication for WSDL sub requests. (Dmitry) + 10 Jan 2012, PHP 5.3.9 - Core: Modified: php/php-src/branches/PHP_5_3/ext/soap/php_sdl.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/soap/php_sdl.c 2012-02-01 11:07:56 UTC (rev 322991) +++ php/php-src/branches/PHP_5_3/ext/soap/php_sdl.c 2012-02-01 11:26:57 UTC (rev 322992) @@ -242,6 +242,40 @@ if (!s) return; s = strchr(s+3, '/'); l2 = s - (char*)uri; + if (l1 != l2) { + /* check for http://...:80/ */ + if (l1 > 11 && + ctx->sdl->source[4] == ':' && + ctx->sdl->source[l1-3] == ':' && + ctx->sdl->source[l1-2] == '8' && + ctx->sdl->source[l1-1] == '0') { + l1 -= 3; + } + if (l2 > 11 && + uri[4] == ':' && + uri[l2-3] == ':' && + uri[l2-2] == '8' && + uri[l2-1] == '0') { + l2 -= 3; + } + /* check for https://...:443/ */ + if (l1 > 13 && + ctx->sdl->source[4] == 's' && + ctx->sdl->source[l1-4] == ':' && + ctx->sdl->source[l1-3] == '4' && + ctx->sdl->source[l1-2] == '4' && + ctx->sdl->source[l1-1] == '3') { + l1 -= 4; + } + if (l2 > 13 && + uri[4] == 's' && + uri[l2-4] == ':' && + uri[l2-3] == '4' && + uri[l2-2] == '4' && + uri[l2-1] == '3') { + l2 -= 4; + } + } if (l1 != l2 || memcmp(ctx->sdl->source, uri, l1) != 0) { /* another server. clear authentication credentals */ context = php_libxml_switch_context(NULL TSRMLS_CC); Modified: php/php-src/branches/PHP_5_4/NEWS =================================================================== --- php/php-src/branches/PHP_5_4/NEWS 2012-02-01 11:07:56 UTC (rev 322991) +++ php/php-src/branches/PHP_5_4/NEWS 2012-02-01 11:26:57 UTC (rev 322992) @@ -16,6 +16,9 @@ . Fixed bug #60860 (session.save_handler=user without defined function core dumps). (Felipe) +- SOAP: + . Fixed basic HTTP authentication for WSDL sub requests. (Dmitry) + 19 Jan 2012, PHP 5.4.0 RC6 - Core: Modified: php/php-src/branches/PHP_5_4/ext/soap/php_sdl.c =================================================================== --- php/php-src/branches/PHP_5_4/ext/soap/php_sdl.c 2012-02-01 11:07:56 UTC (rev 322991) +++ php/php-src/branches/PHP_5_4/ext/soap/php_sdl.c 2012-02-01 11:26:57 UTC (rev 322992) @@ -242,6 +242,40 @@ if (!s) return; s = strchr(s+3, '/'); l2 = s - (char*)uri; + if (l1 != l2) { + /* check for http://...:80/ */ + if (l1 > 11 && + ctx->sdl->source[4] == ':' && + ctx->sdl->source[l1-3] == ':' && + ctx->sdl->source[l1-2] == '8' && + ctx->sdl->source[l1-1] == '0') { + l1 -= 3; + } + if (l2 > 11 && + uri[4] == ':' && + uri[l2-3] == ':' && + uri[l2-2] == '8' && + uri[l2-1] == '0') { + l2 -= 3; + } + /* check for https://...:443/ */ + if (l1 > 13 && + ctx->sdl->source[4] == 's' && + ctx->sdl->source[l1-4] == ':' && + ctx->sdl->source[l1-3] == '4' && + ctx->sdl->source[l1-2] == '4' && + ctx->sdl->source[l1-1] == '3') { + l1 -= 4; + } + if (l2 > 13 && + uri[4] == 's' && + uri[l2-4] == ':' && + uri[l2-3] == '4' && + uri[l2-2] == '4' && + uri[l2-1] == '3') { + l2 -= 4; + } + } if (l1 != l2 || memcmp(ctx->sdl->source, uri, l1) != 0) { /* another server. clear authentication credentals */ context = php_libxml_switch_context(NULL TSRMLS_CC); Modified: php/php-src/trunk/ext/soap/php_sdl.c =================================================================== --- php/php-src/trunk/ext/soap/php_sdl.c 2012-02-01 11:07:56 UTC (rev 322991) +++ php/php-src/trunk/ext/soap/php_sdl.c 2012-02-01 11:26:57 UTC (rev 322992) @@ -242,6 +242,40 @@ if (!s) return; s = strchr(s+3, '/'); l2 = s - (char*)uri; + if (l1 != l2) { + /* check for http://...:80/ */ + if (l1 > 11 && + ctx->sdl->source[4] == ':' && + ctx->sdl->source[l1-3] == ':' && + ctx->sdl->source[l1-2] == '8' && + ctx->sdl->source[l1-1] == '0') { + l1 -= 3; + } + if (l2 > 11 && + uri[4] == ':' && + uri[l2-3] == ':' && + uri[l2-2] == '8' && + uri[l2-1] == '0') { + l2 -= 3; + } + /* check for https://...:443/ */ + if (l1 > 13 && + ctx->sdl->source[4] == 's' && + ctx->sdl->source[l1-4] == ':' && + ctx->sdl->source[l1-3] == '4' && + ctx->sdl->source[l1-2] == '4' && + ctx->sdl->source[l1-1] == '3') { + l1 -= 4; + } + if (l2 > 13 && + uri[4] == 's' && + uri[l2-4] == ':' && + uri[l2-3] == '4' && + uri[l2-2] == '4' && + uri[l2-1] == '3') { + l2 -= 4; + } + } if (l1 != l2 || memcmp(ctx->sdl->source, uri, l1) != 0) { /* another server. clear authentication credentals */ context = php_libxml_switch_context(NULL TSRMLS_CC);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php