X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PlanetLabConf%2Fproxies.php;h=4431acadbfe07e0118d53c81820d71e36046655c;hb=b815095fec39d567d31901c610de18c611dd5db5;hp=39b9b3992b6d95580b362176d0d711a17ce14668;hpb=37a93603272c00a8b2389bbec0c1860382eb8569;p=nodeconfig.git diff --git a/PlanetLabConf/proxies.php b/PlanetLabConf/proxies.php index 39b9b39..4431aca 100755 --- a/PlanetLabConf/proxies.php +++ b/PlanetLabConf/proxies.php @@ -3,7 +3,7 @@ # # post: service vnet restart # -# Proxy (a.k.a. network telescope a.k.a. honeypot) nodenetwork configuration +# Proxy (a.k.a. network telescope a.k.a. honeypot) interface configuration # # Aaron Klingaman # Mark Huang @@ -18,9 +18,19 @@ require_once 'plc_api.php'; global $adm; // Look up the node -$nodenetworks = $adm->GetNodeNetworks(array('ip' => $_SERVER['REMOTE_ADDR'])); -if (!empty($nodenetworks)) { - $nodes = $adm->GetNodes(array($nodenetworks[0]['node_id'])); +// backwards compatibility with the old 4.2 API +global $__PLC_API_VERSION; +if ( ! method_exists ($adm,"GetInterfaces")) + $__PLC_API_VERSION = 4.2; +else + $__PLC_API_VERSION = 4.3; +if ($__PLC_API_VERSION==4.2) + $interfaces = $adm->GetNodeNetworks(array('ip' => $_SERVER['REMOTE_ADDR'])); +else + $interfaces = $adm->GetInterfaces(array('ip' => $_SERVER['REMOTE_ADDR'])); + +if (!empty($interfaces)) { + $nodes = $adm->GetNodes(array($interfaces[0]['node_id'])); if (!empty($nodes)) { $node = $nodes[0]; } @@ -30,18 +40,21 @@ if (!isset($node)) { exit(); } -$nodenetworks = $adm->GetNodeNetworks($node['nodenetwork_ids']); +if ($__PLC_API_VERSION==4.2) + $interfaces = $adm->GetInterfaces($node['nodenetwork_ids']); +else + $interfaces = $adm->GetInterfaces($node['interface_ids']); -foreach ($nodenetworks as $nodenetwork) { - // XXX PL2896: need nodenetworks.device - switch ($nodenetwork['method']) { +foreach ($interfaces as $interface) { + // XXX PL2896: need interfaces.device + switch ($interface['method']) { case 'tap': $dev = "tap0"; - $types['taps'][$dev][0] = $nodenetwork['ip'] . "/" . $nodenetwork['gateway']; + $types['taps'][$dev][0] = $interface['ip'] . "/" . $interface['gateway']; break; case 'proxy': $dev = "proxy0"; - $types['proxies'][$dev][] = $nodenetwork['ip']; + $types['proxies'][$dev][] = $interface['ip']; break; } }