| @@ -158,8 +158,9 @@ discard block | ||
| 158 | 158 | /* "urn:schemas-upnp-org:service:ContentDirectory:1#Browse" */ | 
| 159 | 159 | $http_hdr_soapact = $_SERVER['HTTP_SOAPACTION']; | 
| 160 | 160 | $soap_shemas = strpos($http_hdr_soapact, 'urn:schemas-upnp-org:service:ContentDirectory:'); | 
| 161 | -if (false === $soap_shemas) | |
| 161 | +if (false === $soap_shemas) { | |
| 162 | 162 | return (500); | 
| 163 | +} | |
| 163 | 164 | $soap_service_ver = substr($http_hdr_soapact, ($soap_shemas + 46), 1); | 
| 164 | 165 | $soap_service_func = substr($http_hdr_soapact, ($soap_shemas + 48), -1); | 
| 165 | 166 | |
| @@ -209,8 +210,9 @@ discard block | ||
| 209 | 210 |  function upnp_url_encode($url) { | 
| 210 | 211 | |
| 211 | 212 |  	if ('http://' !== substr($url, 0, 7) || | 
| 212 | - false === ($url_path_off = strrpos($url, '/', 8))) | |
| 213 | -		return (implode('/', array_map('rawurlencode', explode('/', $url)))); | |
| 213 | +	    false === ($url_path_off = strrpos($url, '/', 8))) { | |
| 214 | +			return (implode('/', array_map('rawurlencode', explode('/', $url)))); | |
| 215 | + } | |
| 214 | 216 |  		//return (xml_encode(implode('/', array_map('rawurlencode', explode('/', $url))))); | 
| 215 | 217 | //return (xml_encode($url)); | 
| 216 | 218 |  		//return ('<![CDATA[' . xml_encode($url) . ']]'); | 
| @@ -225,14 +227,18 @@ discard block | ||
| 225 | 227 |  function upnp_get_class($file, $def) { | 
| 226 | 228 | global $file_class; | 
| 227 | 229 | |
| 228 | - if (!isset($file)) | |
| 229 | - return ($def); | |
| 230 | +	if (!isset($file)) { | |
| 231 | + return ($def); | |
| 232 | + } | |
| 230 | 233 | $dot = strrpos($file, '.'); | 
| 231 | - if (false === $dot) | |
| 232 | - return ($def); | |
| 234 | +	if (false === $dot) { | |
| 235 | + return ($def); | |
| 236 | + } | |
| 233 | 237 | $ext = strtolower(substr($file, ($dot + 1))); | 
| 234 | - if (isset($file_class[$ext])) /* Skip unsupported file type. */ | |
| 238 | +	if (isset($file_class[$ext])) { | |
| 239 | + /* Skip unsupported file type. */ | |
| 235 | 240 | return ($file_class[$ext]); | 
| 241 | + } | |
| 236 | 242 | |
| 237 | 243 | return ($def); | 
| 238 | 244 | } | 
| @@ -241,15 +247,18 @@ discard block | ||
| 241 | 247 |  function get_named_val($name, $buf) { /* ...val_name="value"... */ | 
| 242 | 248 | |
| 243 | 249 | $st_off = strpos($buf, $name); | 
| 244 | - if (false === $st_off) | |
| 245 | - return (null); | |
| 250 | +	if (false === $st_off) { | |
| 251 | + return (null); | |
| 252 | + } | |
| 246 | 253 | $st_off += strlen($name); | 
| 247 | -	if ('="' !== substr($buf, $st_off, 2)) | |
| 248 | - return (null); | |
| 254 | +	if ('="' !== substr($buf, $st_off, 2)) { | |
| 255 | + return (null); | |
| 256 | + } | |
| 249 | 257 | $st_off += 2; | 
| 250 | 258 | $en_off = strpos($buf, '"', $st_off); | 
| 251 | - if (false === $en_off) | |
| 252 | - return (null); | |
| 259 | +	if (false === $en_off) { | |
| 260 | + return (null); | |
| 261 | + } | |
| 253 | 262 | |
| 254 | 263 | return (substr($buf, $st_off, ($en_off - $st_off))); | 
| 255 | 264 | } | 
| @@ -259,15 +268,19 @@ discard block | ||
| 259 | 268 | |
| 260 | 269 | $items_count = 0; | 
| 261 | 270 | $fd = fopen($filename, 'r'); | 
| 262 | - if (false === $fd) | |
| 263 | - return ($items_count); | |
| 271 | +	if (false === $fd) { | |
| 272 | + return ($items_count); | |
| 273 | + } | |
| 264 | 274 |  	while (!feof($fd)) { /* Read the file line by line... */ | 
| 265 | 275 | $buffer = trim(fgets($fd)); | 
| 266 | - if (false === strpos($buffer, '#EXTINF:')) /* Skip empty/bad lines. */ | |
| 276 | +		if (false === strpos($buffer, '#EXTINF:')) { | |
| 277 | + /* Skip empty/bad lines. */ | |
| 267 | 278 | continue; | 
| 279 | + } | |
| 268 | 280 | $entry = trim(fgets($fd)); | 
| 269 | - if (false === strpos($entry, '://')) | |
| 270 | - continue; | |
| 281 | +		if (false === strpos($entry, '://')) { | |
| 282 | + continue; | |
| 283 | + } | |
| 271 | 284 | $items_count++; | 
| 272 | 285 | } | 
| 273 | 286 | fclose($fd); | 
| @@ -315,16 +328,21 @@ discard block | ||
| 315 | 328 | continue; | 
| 316 | 329 | } | 
| 317 | 330 | $entry = trim(fgets($fd)); | 
| 318 | - if (false === strpos($entry, '://')) | |
| 319 | - continue; | |
| 331 | +		if (false === strpos($entry, '://')) { | |
| 332 | + continue; | |
| 333 | + } | |
| 320 | 334 | /* Ok, item matched and may be returned. */ | 
| 321 | 335 | $TotalMatches++; | 
| 322 | 336 | if (0 < $StartingIndex && | 
| 323 | - $TotalMatches < $StartingIndex) | |
| 324 | - continue; /* Skip first items. */ | |
| 337 | +		    $TotalMatches < $StartingIndex) { | |
| 338 | + continue; | |
| 339 | + } | |
| 340 | + /* Skip first items. */ | |
| 325 | 341 | if (0 < $RequestedCount && | 
| 326 | - $NumberReturned >= $RequestedCount) | |
| 327 | - continue; /* Do not add more than requested. */ | |
| 342 | +		    $NumberReturned >= $RequestedCount) { | |
| 343 | + continue; | |
| 344 | + } | |
| 345 | + /* Do not add more than requested. */ | |
| 328 | 346 | $NumberReturned++; | 
| 329 | 347 | /* Add item to result. */ | 
| 330 | 348 | $title = xml_encode(trim(substr($buffer, (strpos($buffer, ',') + 1)))); | 
| @@ -370,11 +388,13 @@ discard block | ||
| 370 | 388 | |
| 371 | 389 | $def = 'video/mpeg'; | 
| 372 | 390 | |
| 373 | - if (!isset($filename)) | |
| 374 | - return ($def); | |
| 391 | +	if (!isset($filename)) { | |
| 392 | + return ($def); | |
| 393 | + } | |
| 375 | 394 | $dot = strrpos($filename, '.'); | 
| 376 | - if (false === $dot) | |
| 377 | - return ($def); | |
| 395 | +	if (false === $dot) { | |
| 396 | + return ($def); | |
| 397 | + } | |
| 378 | 398 | $ext = strtolower(substr($filename, ($dot + 1))); | 
| 379 | 399 |  	if (array_key_exists($ext, $mime_types)) { | 
| 380 | 400 | return ($mime_types[$ext]); | 
| @@ -574,8 +594,9 @@ discard block | ||
| 574 | 594 |  			$dirnames = explode('/', $dir); | 
| 575 | 595 | $dirnames_size = sizeof($dirnames); | 
| 576 | 596 |  			for ($di = 0; $di < $dirnames_size; $di++) { | 
| 577 | -				if ('.' === $dirnames[$di]) | |
| 578 | - continue; | |
| 597 | +				if ('.' === $dirnames[$di]) { | |
| 598 | + continue; | |
| 599 | + } | |
| 579 | 600 |  				if ('..' === $dirnames[$di]) { | 
| 580 | 601 | $dir = ''; | 
| 581 | 602 | break; | 
| @@ -622,16 +643,22 @@ discard block | ||
| 622 | 643 |  	foreach ($entries as $entry) { | 
| 623 | 644 | $filename = $basedir.$dir.$entry; | 
| 624 | 645 |  		if ('.' === substr($entry, 0, 1) || | 
| 625 | - !is_dir($filename)) /* Skip files. */ | |
| 646 | +		    !is_dir($filename)) { | |
| 647 | + /* Skip files. */ | |
| 626 | 648 | continue; | 
| 649 | + } | |
| 627 | 650 | /* Ok, item matched and may be returned. */ | 
| 628 | 651 | $TotalMatches++; | 
| 629 | 652 | if (0 < $StartingIndex && | 
| 630 | - $TotalMatches < $StartingIndex) | |
| 631 | - continue; /* Skip first items. */ | |
| 653 | +		    $TotalMatches < $StartingIndex) { | |
| 654 | + continue; | |
| 655 | + } | |
| 656 | + /* Skip first items. */ | |
| 632 | 657 | if (0 < $RequestedCount && | 
| 633 | - $NumberReturned >= $RequestedCount) | |
| 634 | - continue; /* Do not add more than requested. */ | |
| 658 | +		    $NumberReturned >= $RequestedCount) { | |
| 659 | + continue; | |
| 660 | + } | |
| 661 | + /* Do not add more than requested. */ | |
| 635 | 662 | $NumberReturned++; | 
| 636 | 663 | /* Add item to result. */ | 
| 637 | 664 |  		if (is_writable($filename)) { | 
| @@ -651,19 +678,27 @@ discard block | ||
| 651 | 678 | /* Add files to play list. */ | 
| 652 | 679 |  	foreach ($entries as $entry) { | 
| 653 | 680 | $filename = $basedir.$dir.$entry; | 
| 654 | - if (is_dir($filename)) /* Skip dirs. */ | |
| 681 | +		if (is_dir($filename)) { | |
| 682 | + /* Skip dirs. */ | |
| 655 | 683 | continue; | 
| 684 | + } | |
| 656 | 685 | $iclass = upnp_get_class($entry, null); | 
| 657 | - if (null === $iclass) /* Skip unsupported file type. */ | |
| 686 | +		if (null === $iclass) { | |
| 687 | + /* Skip unsupported file type. */ | |
| 658 | 688 | continue; | 
| 689 | + } | |
| 659 | 690 | /* Ok, item matched and may be returned. */ | 
| 660 | 691 | $TotalMatches++; | 
| 661 | 692 | if (0 < $StartingIndex && | 
| 662 | - $TotalMatches < $StartingIndex) | |
| 663 | - continue; /* Skip first items. */ | |
| 693 | +		    $TotalMatches < $StartingIndex) { | |
| 694 | + continue; | |
| 695 | + } | |
| 696 | + /* Skip first items. */ | |
| 664 | 697 | if (0 < $RequestedCount && | 
| 665 | - $NumberReturned >= $RequestedCount) | |
| 666 | - continue; /* Do not add more than requested. */ | |
| 698 | +		    $NumberReturned >= $RequestedCount) { | |
| 699 | + continue; | |
| 700 | + } | |
| 701 | + /* Do not add more than requested. */ | |
| 667 | 702 | $NumberReturned++; | 
| 668 | 703 | /* Add item to result. */ | 
| 669 | 704 |  		if (is_writable($filename)) { | 
| @@ -827,38 +862,46 @@ discard block | ||
| 827 | 862 | |
| 828 | 863 |  function get_resp_tag_name($sxml) { | 
| 829 | 864 | $tag_st = strpos($sxml, '<SOAP-ENV:Body><SOAP-ENV:'); | 
| 830 | - if (false === $tag_st) | |
| 831 | - return (false); | |
| 865 | +	if (false === $tag_st) { | |
| 866 | + return (false); | |
| 867 | + } | |
| 832 | 868 | $tag_st += 25; | 
| 833 | 869 | $tag_end = strpos($sxml, '>', $tag_st); | 
| 834 | - if (false === $tag_end) | |
| 835 | - return (false); | |
| 870 | +	if (false === $tag_end) { | |
| 871 | + return (false); | |
| 872 | + } | |
| 836 | 873 | return (substr($sxml, $tag_st, ($tag_end - $tag_st))); | 
| 837 | 874 | } | 
| 838 | 875 | |
| 839 | 876 |  function get_tag_ns($req, $tag) { | 
| 840 | 877 | $rreq = strrev($req); | 
| 841 | 878 |  	$ns_st = strpos($rreq, strrev(":$tag>")); | 
| 842 | - if (false === $ns_st) | |
| 843 | - return (false); | |
| 879 | +	if (false === $ns_st) { | |
| 880 | + return (false); | |
| 881 | + } | |
| 844 | 882 | $ns_st += (strlen($tag) + 2); | 
| 845 | 883 | $ns_end = strpos($rreq, '/<', $ns_st); | 
| 846 | - if (false === $ns_end) | |
| 847 | - return (false); | |
| 884 | +	if (false === $ns_end) { | |
| 885 | + return (false); | |
| 886 | + } | |
| 848 | 887 | return (strrev(substr($rreq, $ns_st, ($ns_end - $ns_st)))); | 
| 849 | 888 | } | 
| 850 | 889 | |
| 851 | 890 |  function tag_ns_replace($req, $sxml, $tag, $ns = false) { | 
| 852 | - if (false === $tag) | |
| 853 | - return ($sxml); | |
| 854 | - if (false === $ns) | |
| 855 | - $ns = get_tag_ns($req, $tag); | |
| 856 | - if (false === $ns) | |
| 857 | - return ($sxml); | |
| 891 | +	if (false === $tag) { | |
| 892 | + return ($sxml); | |
| 893 | + } | |
| 894 | +	if (false === $ns) { | |
| 895 | + $ns = get_tag_ns($req, $tag); | |
| 896 | + } | |
| 897 | +	if (false === $ns) { | |
| 898 | + return ($sxml); | |
| 899 | + } | |
| 858 | 900 |  	while ($tag_st = strpos($sxml, "<SOAP-ENV:$tag")) { | 
| 859 | 901 | $tag_end = strpos($sxml, '>', $tag_st); | 
| 860 | - if (false === $tag_end) | |
| 861 | - return ($sxml); | |
| 902 | +		if (false === $tag_end) { | |
| 903 | + return ($sxml); | |
| 904 | + } | |
| 862 | 905 | $old_tag_data = substr($sxml, $tag_st, ($tag_end - $tag_st)); | 
| 863 | 906 |  		$new_tag_data = str_replace('SOAP-ENV', $ns, $old_tag_data); | 
| 864 | 907 | $sxml = str_replace($old_tag_data, $new_tag_data, $sxml); |