summaryrefslogtreecommitdiff
path: root/routers/juniper.php
diff options
context:
space:
mode:
Diffstat (limited to 'routers/juniper.php')
-rw-r--r--routers/juniper.php23
1 files changed, 20 insertions, 3 deletions
diff --git a/routers/juniper.php b/routers/juniper.php
index 6c6acf7..fefdf1c 100644
--- a/routers/juniper.php
+++ b/routers/juniper.php
@@ -64,17 +64,34 @@ final class Juniper extends Router {
case 'ping':
if (match_ipv4($parameters) || match_ipv6($parameters) ||
match_fqdn($parameters)) {
- $commands[] = 'ping count 10 '.$parameters.' rapid';
+ $ping = 'ping count 10 rapid '.$parameters;
+ if (isset($this->config['source-interface-id'])) {
+ $ping .= ' interface '.$this->config['source-interface-id'];
+ }
+ $commands[] = $ping;
} else {
throw new Exception('The parameter is not an IPv4/IPv6 address or a FQDN.');
}
break;
case 'traceroute':
+ $append = null;
+ if (isset($this->config['source-interface-id'])) {
+ $append = ' interface '.$this->config['source-interface-id'];
+ }
+
if (match_ipv4($parameters)) {
- $commands[] = 'traceroute '.$parameters.' as-number-lookup';
+ $traceroute = 'traceroute as-number-lookup '.$parameters;
+ if ($append != null) {
+ $traceroute .= $append;
+ }
+ $commands[] = $traceroute;
} else if (match_ipv6($parameters) || match_fqdn($parameters)) {
- $commands[] = 'traceroute '.$parameters;
+ $traceroute = 'traceroute '.$parameters;
+ if ($append != null) {
+ $traceroute .= $append;
+ }
+ $commands[] = $traceroute;
} else {
throw new Exception('The parameter is not an IPv4/IPv6 address or a FQDN.');
}