Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

--TEST-- Filter: node_groups, no master --SKIPIF-- <?php require_once('skipif.inc'); requi..

Decoded Output download

--TEST--
Filter: node_groups, no master
--SKIPIF--
<?php
require_once('skipif.inc');
require_once("connect.inc");

_skipif_check_extensions(array("mysqli"));
_skipif_connect($emulated_master_host_only, $user, $passwd, $db, $emulated_master_port, $emulated_master_socket);
_skipif_connect($emulated_slave_host_only, $user, $passwd, $db, $emulated_slave_port, $emulated_slave_socket);

$settings = array(
	"myapp" => array(
		'master' => array(
			"master1" => array(
				'host' 		=> $emulated_master_host_only,
				'port' 		=> (int)$emulated_master_port,
				'socket' 	=> $emulated_master_socket,
			),
		),
		'slave' => array(
			"slave1" => array(
				'host' 	=> $emulated_slave_host_only,
				'port' 	=> (int)$emulated_slave_port,
				'socket' => $emulated_slave_socket,
			),
		 ),

		'lazy_connections' => 0,
		'filters' => array(
			"node_groups" => array(
				"A" => array(
					'slave' => array('slave1'),
				),
			),
			"random" => array(),
		),
	),

);
if ($error = mst_create_config("test_mysqlnd_ms_filter_groups_no_master.ini", $settings))
	die(sprintf("SKIP %s
", $error));
?>
--INI--
mysqlnd_ms.enable=1
mysqlnd_ms.multi_master=0
mysqlnd_ms.config_file=test_mysqlnd_ms_filter_groups_no_master.ini
--FILE--
<?php
	require_once("connect.inc");
	require_once("util.inc");

	set_error_handler('mst_error_handler');

	$link = mst_mysqli_connect("myapp", $user, $passwd, $db, $port, $socket);
	if (mysqli_connect_errno()) {
		printf("[001] [%d] %s
", mysqli_connect_errno(), mysqli_connect_error());
	}

	/* mark all connections, masters first, we use round robin */
	mst_mysqli_query(2, $link, "SET @myrole='master1'");
	mst_mysqli_query(3, $link, "SET @myrole='slave1'", MYSQLND_MS_SLAVE_SWITCH);

	$res = mst_mysqli_query(4, $link, "SELECT @myrole AS _role", MYSQLND_MS_MASTER_SWITCH);
	if (!$res) {
		printf("[005] [%d] %s
", $link->errno, $link->error);
	} else {
		var_dump($res->fetch_assoc());
	}

	$res = mst_mysqli_query(6, $link, "SELECT @myrole AS _role");
	if (!$res) {
		printf("[007] [%d] %s
", $link->errno, $link->error);
	} else {
		var_dump($res->fetch_assoc());
	}

	$res = mst_mysqli_query(8, $link, "/*A*/SELECT @myrole AS _role", MYSQLND_MS_MASTER_SWITCH);
	if (!$res) {
		printf("[009] [%d] %s
", $link->errno, $link->error);
	} else {
		var_dump($res->fetch_assoc());
	}


	print "done!";
?>
--CLEAN--
<?php
	if (!unlink("test_mysqlnd_ms_filter_groups_no_master.ini"))
	  printf("[clean] Cannot unlink ini file 'test_mysqlnd_ms_filter_groups_no_master.ini'.
");
?>
--EXPECTF--
[E_RECOVERABLE_ERROR] mysqli_real_connect(): (mysqlnd_ms) No masters configured in node group 'A' for 'node_groups' filter. Please, verify the setup in %s on line %d
[001] [2000] (mysqlnd_ms) No masters configured in node group 'A' for 'node_groups' filter. Please, verify the setup
array(1) {
  ["_role"]=>
  string(7) "master1"
}
array(1) {
  ["_role"]=>
  string(6) "slave1"
}
[E_WARNING] mysqli::query(): (mysqlnd_ms) Couldn't find the appropriate master connection. 0 masters to choose from. Something is wrong in %s on line %d
[E_WARNING] mysqli::query(): (mysqlnd_ms) No connection selected by the last filter in %s on line %d
[008] [2000] (mysqlnd_ms) No connection selected by the last filter
[009] [2000] (mysqlnd_ms) No connection selected by the last filter
done!

Did this file decode correctly?

Original Code

--TEST--
Filter: node_groups, no master
--SKIPIF--
<?php
require_once('skipif.inc');
require_once("connect.inc");

_skipif_check_extensions(array("mysqli"));
_skipif_connect($emulated_master_host_only, $user, $passwd, $db, $emulated_master_port, $emulated_master_socket);
_skipif_connect($emulated_slave_host_only, $user, $passwd, $db, $emulated_slave_port, $emulated_slave_socket);

$settings = array(
	"myapp" => array(
		'master' => array(
			"master1" => array(
				'host' 		=> $emulated_master_host_only,
				'port' 		=> (int)$emulated_master_port,
				'socket' 	=> $emulated_master_socket,
			),
		),
		'slave' => array(
			"slave1" => array(
				'host' 	=> $emulated_slave_host_only,
				'port' 	=> (int)$emulated_slave_port,
				'socket' => $emulated_slave_socket,
			),
		 ),

		'lazy_connections' => 0,
		'filters' => array(
			"node_groups" => array(
				"A" => array(
					'slave' => array('slave1'),
				),
			),
			"random" => array(),
		),
	),

);
if ($error = mst_create_config("test_mysqlnd_ms_filter_groups_no_master.ini", $settings))
	die(sprintf("SKIP %s\n", $error));
?>
--INI--
mysqlnd_ms.enable=1
mysqlnd_ms.multi_master=0
mysqlnd_ms.config_file=test_mysqlnd_ms_filter_groups_no_master.ini
--FILE--
<?php
	require_once("connect.inc");
	require_once("util.inc");

	set_error_handler('mst_error_handler');

	$link = mst_mysqli_connect("myapp", $user, $passwd, $db, $port, $socket);
	if (mysqli_connect_errno()) {
		printf("[001] [%d] %s\n", mysqli_connect_errno(), mysqli_connect_error());
	}

	/* mark all connections, masters first, we use round robin */
	mst_mysqli_query(2, $link, "SET @myrole='master1'");
	mst_mysqli_query(3, $link, "SET @myrole='slave1'", MYSQLND_MS_SLAVE_SWITCH);

	$res = mst_mysqli_query(4, $link, "SELECT @myrole AS _role", MYSQLND_MS_MASTER_SWITCH);
	if (!$res) {
		printf("[005] [%d] %s\n", $link->errno, $link->error);
	} else {
		var_dump($res->fetch_assoc());
	}

	$res = mst_mysqli_query(6, $link, "SELECT @myrole AS _role");
	if (!$res) {
		printf("[007] [%d] %s\n", $link->errno, $link->error);
	} else {
		var_dump($res->fetch_assoc());
	}

	$res = mst_mysqli_query(8, $link, "/*A*/SELECT @myrole AS _role", MYSQLND_MS_MASTER_SWITCH);
	if (!$res) {
		printf("[009] [%d] %s\n", $link->errno, $link->error);
	} else {
		var_dump($res->fetch_assoc());
	}


	print "done!";
?>
--CLEAN--
<?php
	if (!unlink("test_mysqlnd_ms_filter_groups_no_master.ini"))
	  printf("[clean] Cannot unlink ini file 'test_mysqlnd_ms_filter_groups_no_master.ini'.\n");
?>
--EXPECTF--
[E_RECOVERABLE_ERROR] mysqli_real_connect(): (mysqlnd_ms) No masters configured in node group 'A' for 'node_groups' filter. Please, verify the setup in %s on line %d
[001] [2000] (mysqlnd_ms) No masters configured in node group 'A' for 'node_groups' filter. Please, verify the setup
array(1) {
  ["_role"]=>
  string(7) "master1"
}
array(1) {
  ["_role"]=>
  string(6) "slave1"
}
[E_WARNING] mysqli::query(): (mysqlnd_ms) Couldn't find the appropriate master connection. 0 masters to choose from. Something is wrong in %s on line %d
[E_WARNING] mysqli::query(): (mysqlnd_ms) No connection selected by the last filter in %s on line %d
[008] [2000] (mysqlnd_ms) No connection selected by the last filter
[009] [2000] (mysqlnd_ms) No connection selected by the last filter
done!

Function Calls

None

Variables

None

Stats

MD5 5e46f1a09323c5ee67df71c6e66ed1d7
Eval Count 0
Decode Time 115 ms