Example #1
0
def gotMappingNowRemove(mappings, nprot, nport):
    if not ((nprot,nport) in mappings or (nprot,str(nport)) in mappings):
        print "error: no existing mapping for %s/%s"%(nprot,nport)
        reactor.stop()
        sys.exit(1)
    d = getUPnP()
    d.addCallback(lambda x: x.deletePortMapping(nport, proto=nprot))
    d.addCallback(doneMapping)
Example #2
0
def gotMappingNowRemove(mappings, nprot, nport):
    if not ((nprot, nport) in mappings or (nprot, str(nport)) in mappings):
        print "error: no existing mapping for %s/%s" % (nprot, nport)
        reactor.stop()
        sys.exit(1)
    d = getUPnP()
    d.addCallback(lambda x: x.deletePortMapping(nport, proto=nprot))
    d.addCallback(doneMapping)
Example #3
0
def checkUPnP():
    from shtoom.upnp import getUPnP
    d = getUPnP()
    s = Saver()
    d.addCallback(s.save)
    util.wait(d, timeout=8)
    if s.val is None:
        raise unittest.SkipTest('no UPnP available')
Example #4
0
def checkUPnP():
    from shtoom.upnp import getUPnP
    d = getUPnP()
    s = Saver()
    d.addCallback(s.save)
    util.wait(d, timeout=8)
    if s.val is None:
        raise unittest.SkipTest('no UPnP available')
Example #5
0
File: nat.py Project: braams/shtoom
def detectNAT():
    # We prefer UPnP when available, as it's less pissing about (ha!)
    from shtoom.upnp import getUPnP
    from shtoom.stun import getSTUN
    ud = getUPnP()
    sd = getSTUN()
    dl = defer.DeferredList([ud, sd])
    dl.addCallback(cb_detectNAT).addErrback(log.err)
    return dl
Example #6
0
def detectNAT():
    # We prefer UPnP when available, as it's less pissing about (ha!)
    from shtoom.upnp import getUPnP
    from shtoom.stun import getSTUN
    ud = getUPnP()
    sd = getSTUN()
    dl = defer.DeferredList([ud, sd])
    dl.addCallback(cb_detectNAT).addErrback(log.err)
    return dl
Example #7
0
def main():
    from twisted.internet import defer
    from shtoom.upnp import getUPnP
    from shtoom.stun import getSTUN
    from shtoom.nat import getLocalIPAddress, getMapper
    ud = getUPnP()
    sd = getSTUN()
    ld = getLocalIPAddress()
    md = getMapper()
    dl = defer.DeferredList([ud, sd, ld, md])
    dl.addCallback(gotResults).addErrback(didntGetResults)
Example #8
0
def gotMappingNowAdd(mappings, nprot, nport, desc):
    if (nprot,nport) in mappings or (nprot,str(nport)) in mappings:
        print "error: can't replace existing mapping for %s/%s"%(nprot,nport)
        ddict = mappings.get((nprot,nport)) or mappings.get((nprot,str(nport)))
        desc = mappingDesc%ddict
        print "existing mapping is to %s"%desc
        reactor.stop()
        sys.exit(1)
    d = getUPnP()
    d.addCallback(lambda x: x.addPortMapping(nport, nport, desc, proto=nprot))
    d.addCallback(doneMapping)
Example #9
0
def main():
    from twisted.internet import defer
    from shtoom.upnp import getUPnP
    from shtoom.stun import getSTUN
    from shtoom.nat import getLocalIPAddress, getMapper
    ud = getUPnP()
    sd = getSTUN()
    ld = getLocalIPAddress()
    md = getMapper()
    dl = defer.DeferredList([ud, sd, ld, md])
    dl.addCallback(gotResults).addErrback(didntGetResults)
Example #10
0
 def go(self):
     from shtoom.upnp import getUPnP
     d = getUPnP()
     d.addCallback(self.discovered)
     d.addCallback(self.gotexternal)
     d.addCallback(self.gotmappings)
     d.addCallback(self.added)
     d.addCallback(self.gotmappings2)
     d.addCallback(self.deleted)
     d.addCallback(self.gotmappings3)
     d.addCallback(self.gotexternal2)
     return d
Example #11
0
 def go(self):
     from shtoom.upnp import getUPnP
     d = getUPnP()
     d.addCallback(self.discovered)
     d.addCallback(self.gotexternal)
     d.addCallback(self.gotmappings)
     d.addCallback(self.added)
     d.addCallback(self.gotmappings2)
     d.addCallback(self.deleted)
     d.addCallback(self.gotmappings3)
     d.addCallback(self.gotexternal2)
     return d
Example #12
0
File: nat.py Project: braams/shtoom
def getMapper():
    # We prefer UPnP when available, as it's more robust
    global _installedShutdownHook
    if not _installedShutdownHook:
        from twisted.internet import reactor
        t = reactor.addSystemEventTrigger('after',
                                          'shutdown',
                                          clearCache)
        _installedShutdownHook = True
    try:
        from __main__ import app
    except:
        app = None
    natPref = 'both'
    if app is not None:
        #print "app is", app
        natPref = app.getPref('nat')
        log.msg('NAT preference says to use %s (%s)'%(natPref, app.getPref('nat')), system='nat')
        #print "NAT pref sez", natPref
    if _forcedMapper is not None:
        return defer.succeed(_forcedMapper)
    from shtoom.upnp import getUPnP
    from shtoom.stun import getSTUN
    if natPref == 'both':
        ud = getUPnP()
        sd = getSTUN()
        d = defer.DeferredList([ud, sd])
    elif natPref == 'upnp':
        ud = getUPnP()
        d = defer.DeferredList([ud, defer.succeed(None) ])
    elif natPref == 'stun':
        ud = getSTUN()
        d = defer.DeferredList([defer.succeed(None), sd])
    else:
        nm = NullMapper()
        d = defer.DeferredList([defer.succeed(None),
                                defer.succeed(None)])
    d.addCallback(cb_getMapper).addErrback(log.err)
    return d
Example #13
0
def gotMappingNowAdd(mappings, nprot, nport, desc):
    if (nprot, nport) in mappings or (nprot, str(nport)) in mappings:
        print "error: can't replace existing mapping for %s/%s" % (nprot,
                                                                   nport)
        ddict = mappings.get((nprot, nport)) or mappings.get(
            (nprot, str(nport)))
        desc = mappingDesc % ddict
        print "existing mapping is to %s" % desc
        reactor.stop()
        sys.exit(1)
    d = getUPnP()
    d.addCallback(lambda x: x.addPortMapping(nport, nport, desc, proto=nprot))
    d.addCallback(doneMapping)
Example #14
0
def getMapper():
    # We prefer UPnP when available, as it's more robust
    global _installedShutdownHook
    if not _installedShutdownHook:
        from twisted.internet import reactor
        t = reactor.addSystemEventTrigger('after', 'shutdown', clearCache)
        _installedShutdownHook = True
    try:
        from __main__ import app
    except:
        app = None
    natPref = 'both'
    if app is not None:
        #print("app is", app)
        natPref = app.getPref('nat')
        log.msg('NAT preference says to use %s (%s)' %
                (natPref, app.getPref('nat')),
                system='nat')
        #print("NAT pref sez", natPref)
    if _forcedMapper is not None:
        return defer.succeed(_forcedMapper)
    from shtoom.upnp import getUPnP
    from shtoom.stun import getSTUN
    if natPref == 'both':
        ud = getUPnP()
        sd = getSTUN()
        d = defer.DeferredList([ud, sd])
    elif natPref == 'upnp':
        ud = getUPnP()
        d = defer.DeferredList([ud, defer.succeed(None)])
    elif natPref == 'stun':
        ud = getSTUN()
        d = defer.DeferredList([defer.succeed(None), sd])
    else:
        nm = NullMapper()
        d = defer.DeferredList([defer.succeed(None), defer.succeed(None)])
    d.addCallback(cb_getMapper).addErrback(log.err)
    return d
Example #15
0
def doRemove(spec):
    prot, port = getSpec(spec)
    d = getUPnP()
    d.addCallback(lambda x: x.getPortMappings())
    d.addCallback(gotMappingNowRemove, prot, port)
    d.addErrback(done)
Example #16
0
def doRemove(spec):
    prot, port = getSpec(spec)
    d = getUPnP()
    d.addCallback(lambda x: x.getPortMappings())
    d.addCallback(gotMappingNowRemove, prot, port)
    d.addErrback(done)
Example #17
0
def doAdd(spec, desc):
    prot, port = getSpec(spec)
    d = getUPnP()
    d.addCallback(lambda x: x.getPortMappings())
    d.addCallback(gotMappingNowAdd, prot, port, desc)
    d.addErrback(done)
Example #18
0
def doList():
    d = getUPnP()
    d.addCallback(lambda x: x.getPortMappings())
    d.addCallback(gotList)
    d.addErrback(done)
Example #19
0
def doList():
    d = getUPnP()
    d.addCallback(lambda x: x.getPortMappings())
    d.addCallback(gotList)
    d.addErrback(done)
Example #20
0
def doAdd(spec, desc):
    prot, port = getSpec(spec)
    d = getUPnP()
    d.addCallback(lambda x: x.getPortMappings())
    d.addCallback(gotMappingNowAdd, prot, port, desc)
    d.addErrback(done)