args.extend(("-P",str(local_p2p)))
if local_txq:
args.extend(("-Q",str(local_txq)))
+ if not local_cap:
+ args.append("-N")
if extra_args:
args.extend(map(str,extra_args))
if not listen and check_proto != 'fd':
pidfile = './pid',
home = self.home_path,
stdin = '/dev/null',
- stdout = 'capture' if local_cap else '/dev/null',
+ stdout = 'capture',
stderr = rspawn.STDOUT,
sudo = True,
time.sleep(1.0)
# Wait for the connection to be established
- if local.capture:
- for spin in xrange(30):
- if self.status() != rspawn.RUNNING:
- break
-
- (out,err),proc = server.popen_ssh_command(
- "cd %(home)s ; grep -c Connected capture" % dict(
- home = server.shell_escape(self.home_path)),
- host = local.node.hostname,
- port = None,
- user = local.node.slicename,
- agent = None,
- ident_key = local.node.ident_path,
- server_key = local.node.server_key
- )
-
- if proc.wait():
- break
-
- if out.strip() != '0':
- break
-
- time.sleep(1.0)
+ for spin in xrange(30):
+ if self.status() != rspawn.RUNNING:
+ break
+
+ (out,err),proc = server.popen_ssh_command(
+ "cd %(home)s ; grep -c Connected capture" % dict(
+ home = server.shell_escape(self.home_path)),
+ host = local.node.hostname,
+ port = None,
+ user = local.node.slicename,
+ agent = None,
+ ident_key = local.node.ident_path,
+ server_key = local.node.server_key
+ )
+
+ if proc.wait():
+ break
+
+ if out.strip() != '0':
+ break
+
+ time.sleep(1.0)
@property
def if_name(self):
if not self._if_name:
# Inspect the trace to check the assigned iface
local = self.local()
- if local and local.capture:
+ if local:
for spin in xrange(30):
(out,err),proc = server.popen_ssh_command(
"cd %(home)s ; grep 'Using tun:' capture | head -1" % dict(
def shutdown(self):
self.kill()
+ def launch(self, check_proto='udp', listen=False, extra_args=None):
+ if extra_args is None:
+ extra_args = ("-u",str(self.port))
+ super(TunProtoUDP, self).launch(check_proto, listen, extra_args)
+
class TunProtoFD(TunProtoBase):
def __init__(self, local, peer, home_path, key, listening):
super(TunProtoFD, self).__init__(local, peer, home_path, key)
def shutdown(self):
self.kill()
+ def launch(self, check_proto='fd', listen=False, extra_args=[]):
+ super(TunProtoFD, self).launch(check_proto, listen, extra_args)
+
class TunProtoTCP(TunProtoBase):
def __init__(self, local, peer, home_path, key, listening):
super(TunProtoTCP, self).__init__(local, peer, home_path, key)
def shutdown(self):
self.kill()
+ def launch(self, check_proto='tcp', listen=None, extra_args=[]):
+ if listen is None:
+ listen = self.listening
+ super(TunProtoTCP, self).launch(check_proto, listen, extra_args)
+
class TapProtoUDP(TunProtoUDP):
def __init__(self, local, peer, home_path, key, listening):
super(TapProtoUDP, self).__init__(local, peer, home_path, key, listening)