chiark / gitweb /
Merge branches 'mdw/knock' and 'mdw/ipv6' into bleeding
[tripe] / py / tripe.py.in
index a0b640c5b8ee0787bf07511ba6e1e96bfd747527..a9be66872cfbbc0b1e4223272238db4cbef9719c 100644 (file)
@@ -109,7 +109,7 @@ import os as OS
 
 try:
   if OS.getenv('TRIPE_FORCE_RMCR') is not None:
-    raise ImportError
+    raise ImportError()
   from py.magic import greenlet as _Coroutine
 except ImportError:
   from rmcr import Coroutine as _Coroutine
@@ -508,7 +508,7 @@ class TripeCommandIterator (object):
     """
     me.dcr = Coroutine.getcurrent().parent
     if me.dcr is None:
-      raise ValueError, 'must invoke from coroutine'
+      raise ValueError('must invoke from coroutine')
     me.filter = filter or (lambda x: x)
     if bg:
       words = [words[0], '-background', dispatcher.bgtag()] + list(words[1:])
@@ -532,17 +532,17 @@ class TripeCommandIterator (object):
     if code == 'INFO':
       return me.filter(rest)
     elif code == 'OK':
-      raise StopIteration
+      raise StopIteration()
     elif code == 'CONNERR':
       if rest is None:
-        raise TripeConnectionError, 'connection terminated by user'
+        raise TripeConnectionError('connection terminated by user')
       else:
         raise rest
     elif code == 'FAIL':
       raise TripeError(*rest)
     else:
-      raise TripeInternalError \
-            ('unexpected tripe response %r' % ([code] + rest))
+      raise TripeInternalError('unexpected tripe response %r' %
+                               ([code] + rest))
 
 ### Simple utility functions for the TripeCommandIterator convenience
 ### methods.
@@ -838,7 +838,8 @@ class TripeCommandDispatcher (TripeConnection):
                               *['ADD'] +
                               _kwopts(kw, ['tunnel', 'keepalive',
                                            'key', 'priv', 'cork',
-                                           'mobile']) +
+                                           'mobile', 'knock',
+                                           'ephemeral']) +
                               [peer] +
                               list(addr)))
   def addr(me, peer):
@@ -852,7 +853,7 @@ class TripeCommandDispatcher (TripeConnection):
     return _simple(me.command('DAEMON'))
   def eping(me, peer, **kw):
     return _oneline(me.command(bg = True,
-                               *['PING'] +
+                               *['EPING'] +
                                _kwopts(kw, ['timeout']) +
                                [peer]))
   def forcekx(me, peer):
@@ -878,8 +879,10 @@ class TripeCommandDispatcher (TripeConnection):
                                *['PING'] +
                                _kwopts(kw, ['timeout']) +
                                [peer]))
-  def port(me):
-    return _oneline(me.command('PORT', filter = _tokenjoin))
+  def port(me, af = None):
+    return _oneline(me.command('PORT',
+                               *((af is not None) and [af] or []),
+                               filter = _tokenjoin))
   def quit(me):
     return _simple(me.command('QUIT'))
   def reload(me):
@@ -1172,7 +1175,7 @@ class TripeServiceCommand (object):
     """
     if (me.min is not None and len(args) < me.min) or \
        (me.max is not None and len(args) > me.max):
-      raise TripeSyntaxError
+      raise TripeSyntaxError()
     me.func(*args)
 
 class TripeServiceJob (Coroutine):
@@ -1383,12 +1386,12 @@ class OptParse (object):
     if len(me.args) == 0 or \
        len(me.args[0]) < 2 or \
        not me.args[0].startswith('-'):
-      raise StopIteration
+      raise StopIteration()
     opt = me.args.pop(0)
     if opt == '--':
-      raise StopIteration
+      raise StopIteration()
     if opt not in me.allowed:
-      raise TripeSyntaxError
+      raise TripeSyntaxError()
     return opt
 
   def arg(me):
@@ -1398,7 +1401,7 @@ class OptParse (object):
     If none is available, raise `TripeSyntaxError'.
     """
     if len(me.args) == 0:
-      raise TripeSyntaxError
+      raise TripeSyntaxError()
     return me.args.pop(0)
 
   def rest(me, min = None, max = None):
@@ -1410,7 +1413,7 @@ class OptParse (object):
     """
     if (min is not None and len(me.args) < min) or \
        (max is not None and len(me.args) > max):
-      raise TripeSyntaxError
+      raise TripeSyntaxError()
     return me.args
 
 ###----- That's all, folks --------------------------------------------------