function phpsocks5_usleep($usec) { global $dbhost; global $dbport; global $dbuser; global $dbpass; global $dbname; phpsocks5_log("sleep process 1"); mysql_close(); phpsocks5_log("sleep process 2"); usleep($usec); phpsocks5_log("sleep process 3"); if (!mysql_pconnect("{$dbhost}:{$dbport}", $dbuser, $dbpass)) { phpsocks5_http_500('mysql_pconnect error'); } if (!mysql_select_db($dbname)) { phpsocks5_http_500('mysql_select_db error'); } if (!mysql_query('SET AUTOCOMMIT=1')) { phpsocks5_http_500('mysql_query SET AUTOCOMMIT=1 error'); } phpsocks5_log("sleep process 4"); }
} } } elseif ($postdata[2] == "7") { phpsocks5_log("recv process 1"); $port = substr($postdata, 3) / 1; $local_socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); if (!$local_socket) { phpsocks5_http_500('recv process socket_create error'); } while (TRUE) { if (!socket_sendto($local_socket, '2', 1, 0, '127.0.0.1', $port)) { phpsocks5_http_500('recv process socket_sendto error'); } $buf = NULL; if (!socket_recvfrom($local_socket, $buf, 65500, 0, $peer_host, $peer_port)) { phpsocks5_http_500('recv process socket_recvfrom error'); } echo phpsocks5_encrypt($buf); } } elseif ($postdata[2] == "8") { phpsocks5_log("close process 1"); $port = substr($postdata, 3) / 1; $local_socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); if (!$local_socket) { phpsocks5_http_500('close process socket_create error'); } if (!socket_sendto($local_socket, '3', 1, 0, '127.0.0.1', $port)) { phpsocks5_http_500('close process socket_sendto error'); } } phpsocks5_log("process 7");