--- input.php 2008-03-16 17:23:12.000000000 +0100 +++ input.php 2009-02-07 02:10:36.000000000 +0100 @@ -510,6 +510,7 @@ switch ( $_REQUEST["mod"] ) { header( "location: {$config["index"]}" ); exit; } + $xmlrpc->setrequest( "download_list", "" ); $xmlrpc->call(); $xmlrpc->parse(); @@ -521,83 +522,21 @@ switch ( $_REQUEST["mod"] ) { exit; } - $xmlrpc->setrequest( "d.multicall", array( "", "d.get_hash=", "d.get_directory=", "d.get_size_files=" ) ); + $xmlrpc->setrequest( "d.get_base_path", $hash ); $xmlrpc->call(); $xmlrpc->parse(); $response = $xmlrpc->fetch(); - foreach ( $response as $key => $val ) { - if ( $val[0] == $hash ) { - $response = $val; - } - } - $directory = $response[1]; - $size_files = $response[2]; - - $xmlrpc->setmrequest( array( "get_directory", "system.get_cwd" ) ); - $xmlrpc->call(); - $xmlrpc->parse(); - $directories = $xmlrpc->fetch(); - $dd = $directories[0][0]; - $cwd = $directories[1][0]; - $directory = myrealpath( $directory, $config["home_path"], $cwd ); - $dd = myrealpath( $dd, $config["home_path"], $cwd ); - - $xmlrpc->setrequest( "f.multicall", array( $hash, 0, "f.get_frozen_path=" ) ); + $xmlrpc->setrequest( "execute", array( "rm", "-rf", "--", $response ) ); $xmlrpc->call(); - $xmlrpc->parse(); - $files = $xmlrpc->fetch(); - - $unlink_num = 0; - $dirs = array(); - foreach ( $files as $key => $val ) { - $dirs[] = dirname( $val[0] ); - if ( is_writable( $val[0] ) ) { - if ( @unlink( $val[0] ) ) { - $unlink_num++; - } - } - } - - $dirs = array_unique( $dirs ); - foreach ( $dirs as $key => $val ) { - $pattern = "'({$directory}.*?)(/[^/]*)$'"; - if ( preg_match( $pattern, $val, $match ) ) { - $dirs[] = $match[1]; - } - } - $dirs = array_unique( $dirs ); - if ( in_array( $dd, $dirs ) ) { - $key = array_search( $dd, $dirs ); - unset( $dirs[$key] ); - } - rsort( $dirs ); - //print_r( $dirs ); - - $size_dirs = $size_files == 1 ? 0 : count( $dirs ); - $rmdir_num = 0; - foreach ( $dirs as $key => $val ) { - if ( is_writable( $val ) ) { - if ( @rmdir( $val ) ) { - $rmdir_num++; - } - } - } - $xmlrpc->setrequest( "d.erase", $hash ); $xmlrpc->call(); sleep( 1 ); - if ( $unlink_num != $size_files || $rmdir_num != $size_dirs ) { - $_SESSION["rtwi_err"] = "warntorrenterase"; - header( "location: {$config["index"]}" ); - exit; - } else { - $_SESSION["rtwi_err"] = "succtorrenterase"; - header( "location: {$config["index"]}" ); - exit; - } + $_SESSION["rtwi_err"] = "succtorrenterase"; + header( "location: {$config["index"]}" ); + exit; break; }