Split txwormhole out to separate pacakge
This commit is contained in:
commit
b0b9edb102
3
setup.py
3
setup.py
|
@ -14,7 +14,8 @@ setup(name="magic-wormhole",
|
||||||
url="https://github.com/warner/magic-wormhole",
|
url="https://github.com/warner/magic-wormhole",
|
||||||
package_dir={"": "src"},
|
package_dir={"": "src"},
|
||||||
packages=["wormhole",
|
packages=["wormhole",
|
||||||
"wormhole.blocking", "wormhole.twisted",
|
"wormhole.blocking",
|
||||||
|
"txwormhole",
|
||||||
"wormhole.scripts", "wormhole.test", "wormhole.util",
|
"wormhole.scripts", "wormhole.test", "wormhole.util",
|
||||||
"wormhole_server"],
|
"wormhole_server"],
|
||||||
package_data={"wormhole_server": ["db-schemas/*.sql"]},
|
package_data={"wormhole_server": ["db-schemas/*.sql"]},
|
||||||
|
|
2
src/txwormhole/__init__.py
Normal file
2
src/txwormhole/__init__.py
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
from wormhole import __version__
|
||||||
|
__version__ # hush pyflakes
|
|
@ -6,7 +6,7 @@ from twisted.protocols import basic
|
||||||
from twisted.web.client import Agent, ResponseDone
|
from twisted.web.client import Agent, ResponseDone
|
||||||
from twisted.web.http_headers import Headers
|
from twisted.web.http_headers import Headers
|
||||||
from cgi import parse_header
|
from cgi import parse_header
|
||||||
from ..util.eventual import eventually
|
from .eventual import eventually
|
||||||
|
|
||||||
#if sys.version_info[0] == 2:
|
#if sys.version_info[0] == 2:
|
||||||
# to_unicode = unicode
|
# to_unicode = unicode
|
|
@ -8,7 +8,7 @@ from twisted.internet.error import ConnectError
|
||||||
from twisted.web import iweb
|
from twisted.web import iweb
|
||||||
import txtorcon
|
import txtorcon
|
||||||
import ipaddr
|
import ipaddr
|
||||||
from ..timing import DebugTiming
|
from wormhole.timing import DebugTiming
|
||||||
from .transit import allocate_tcp_port
|
from .transit import allocate_tcp_port
|
||||||
|
|
||||||
# based on twisted.web.client._StandardEndpointFactory
|
# based on twisted.web.client._StandardEndpointFactory
|
|
@ -13,13 +13,13 @@ from nacl.secret import SecretBox
|
||||||
from nacl.exceptions import CryptoError
|
from nacl.exceptions import CryptoError
|
||||||
from nacl import utils
|
from nacl import utils
|
||||||
from spake2 import SPAKE2_Symmetric
|
from spake2 import SPAKE2_Symmetric
|
||||||
from .eventsource_twisted import ReconnectingEventSource
|
from .eventsource import ReconnectingEventSource
|
||||||
from .. import __version__
|
from wormhole import __version__
|
||||||
from .. import codes
|
from wormhole import codes
|
||||||
from ..errors import ServerError, Timeout, WrongPasswordError, UsageError
|
from wormhole.errors import ServerError, Timeout, WrongPasswordError, UsageError
|
||||||
from ..timing import DebugTiming
|
from wormhole.timing import DebugTiming
|
||||||
from ..util.hkdf import HKDF
|
from wormhole.util.hkdf import HKDF
|
||||||
from ..channel_monitor import monitor
|
from wormhole.channel_monitor import monitor
|
||||||
|
|
||||||
CONFMSG_NONCE_LENGTH = 128//8
|
CONFMSG_NONCE_LENGTH = 128//8
|
||||||
CONFMSG_MAC_LENGTH = 256//8
|
CONFMSG_MAC_LENGTH = 256//8
|
|
@ -8,10 +8,10 @@ from twisted.internet import (reactor, interfaces, defer, protocol,
|
||||||
from twisted.internet.defer import inlineCallbacks, returnValue
|
from twisted.internet.defer import inlineCallbacks, returnValue
|
||||||
from twisted.protocols import policies
|
from twisted.protocols import policies
|
||||||
from nacl.secret import SecretBox
|
from nacl.secret import SecretBox
|
||||||
from ..util import ipaddrs
|
from wormhole.util.hkdf import HKDF
|
||||||
from ..util.hkdf import HKDF
|
from wormhole.errors import UsageError
|
||||||
from ..errors import UsageError
|
from wormhole.timing import DebugTiming
|
||||||
from ..timing import DebugTiming
|
from . import ipaddrs
|
||||||
|
|
||||||
def debug(msg):
|
def debug(msg):
|
||||||
if False:
|
if False:
|
|
@ -2,8 +2,8 @@ from __future__ import print_function
|
||||||
import io, os, sys, json, binascii, six, tempfile, zipfile
|
import io, os, sys, json, binascii, six, tempfile, zipfile
|
||||||
from twisted.internet import reactor, defer
|
from twisted.internet import reactor, defer
|
||||||
from twisted.internet.defer import inlineCallbacks, returnValue
|
from twisted.internet.defer import inlineCallbacks, returnValue
|
||||||
from ..twisted.transcribe import Wormhole, WrongPasswordError
|
from txwormhole.transcribe import Wormhole, WrongPasswordError
|
||||||
from ..twisted.transit import TransitReceiver
|
from txwormhole.transit import TransitReceiver
|
||||||
from ..errors import TransferError
|
from ..errors import TransferError
|
||||||
from .progress import ProgressPrinter
|
from .progress import ProgressPrinter
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ class TwistedReceiver:
|
||||||
tor_manager = None
|
tor_manager = None
|
||||||
if self.args.tor:
|
if self.args.tor:
|
||||||
_start = self.args.timing.add_event("import TorManager")
|
_start = self.args.timing.add_event("import TorManager")
|
||||||
from ..twisted.tor_manager import TorManager
|
from txwormhole.tor_manager import TorManager
|
||||||
self.args.timing.finish_event(_start)
|
self.args.timing.finish_event(_start)
|
||||||
tor_manager = TorManager(reactor, timing=self.args.timing)
|
tor_manager = TorManager(reactor, timing=self.args.timing)
|
||||||
# For now, block everything until Tor has started. Soon: launch
|
# For now, block everything until Tor has started. Soon: launch
|
||||||
|
|
|
@ -5,8 +5,8 @@ from twisted.internet import reactor, defer
|
||||||
from twisted.internet.defer import inlineCallbacks, returnValue
|
from twisted.internet.defer import inlineCallbacks, returnValue
|
||||||
from ..errors import TransferError
|
from ..errors import TransferError
|
||||||
from .progress import ProgressPrinter
|
from .progress import ProgressPrinter
|
||||||
from ..twisted.transcribe import Wormhole, WrongPasswordError
|
from txwormhole.transcribe import Wormhole, WrongPasswordError
|
||||||
from ..twisted.transit import TransitSender
|
from txwormhole.transit import TransitSender
|
||||||
|
|
||||||
APPID = u"lothar.com/wormhole/text-or-file-xfer"
|
APPID = u"lothar.com/wormhole/text-or-file-xfer"
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ def send_twisted(args):
|
||||||
|
|
||||||
tor_manager = None
|
tor_manager = None
|
||||||
if args.tor:
|
if args.tor:
|
||||||
from ..twisted.tor_manager import TorManager
|
from txwormhole.tor_manager import TorManager
|
||||||
tor_manager = TorManager(reactor, timing=args.timing)
|
tor_manager = TorManager(reactor, timing=args.timing)
|
||||||
# For now, block everything until Tor has started. Soon: launch tor
|
# For now, block everything until Tor has started. Soon: launch tor
|
||||||
# in parallel with everything else, make sure the TorManager can
|
# in parallel with everything else, make sure the TorManager can
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
from twisted.application import service
|
from twisted.application import service
|
||||||
from twisted.internet import reactor, defer
|
from twisted.internet import reactor, defer
|
||||||
from twisted.python import log
|
from twisted.python import log
|
||||||
from ..twisted.transit import allocate_tcp_port
|
from txwormhole.transit import allocate_tcp_port
|
||||||
from wormhole_server.server import RelayServer
|
from wormhole_server.server import RelayServer
|
||||||
from .. import __version__
|
from .. import __version__
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ from __future__ import print_function
|
||||||
from twisted.trial import unittest
|
from twisted.trial import unittest
|
||||||
from twisted.internet.defer import gatherResults
|
from twisted.internet.defer import gatherResults
|
||||||
from twisted.internet.threads import deferToThread
|
from twisted.internet.threads import deferToThread
|
||||||
from ..twisted.transcribe import Wormhole as twisted_Wormhole
|
from txwormhole.transcribe import Wormhole as twisted_Wormhole
|
||||||
from ..blocking.transcribe import Wormhole as blocking_Wormhole
|
from ..blocking.transcribe import Wormhole as blocking_Wormhole
|
||||||
from .common import ServerBase
|
from .common import ServerBase
|
||||||
|
|
||||||
|
|
|
@ -6,3 +6,5 @@ class Import(unittest.TestCase):
|
||||||
self.assertTrue(len(wormhole.__version__))
|
self.assertTrue(len(wormhole.__version__))
|
||||||
import wormhole_server
|
import wormhole_server
|
||||||
self.assertTrue(len(wormhole_server.__version__))
|
self.assertTrue(len(wormhole_server.__version__))
|
||||||
|
import txwormhole
|
||||||
|
self.assertTrue(len(txwormhole.__version__))
|
||||||
|
|
|
@ -11,7 +11,7 @@ from twisted.web.client import getPage, Agent, readBody
|
||||||
from .. import __version__
|
from .. import __version__
|
||||||
from .common import ServerBase
|
from .common import ServerBase
|
||||||
from wormhole_server import relay_server, transit_server
|
from wormhole_server import relay_server, transit_server
|
||||||
from ..twisted.eventsource_twisted import EventSource
|
from txwormhole.eventsource import EventSource
|
||||||
|
|
||||||
class Reachable(ServerBase, unittest.TestCase):
|
class Reachable(ServerBase, unittest.TestCase):
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from twisted.internet import defer, task, endpoints, protocol, address, error
|
||||||
from twisted.internet.defer import gatherResults, inlineCallbacks
|
from twisted.internet.defer import gatherResults, inlineCallbacks
|
||||||
from twisted.python import log, failure
|
from twisted.python import log, failure
|
||||||
from twisted.test import proto_helpers
|
from twisted.test import proto_helpers
|
||||||
from ..twisted import transit
|
from txwormhole import transit
|
||||||
from ..errors import UsageError
|
from ..errors import UsageError
|
||||||
from nacl.secret import SecretBox
|
from nacl.secret import SecretBox
|
||||||
from nacl.exceptions import CryptoError
|
from nacl.exceptions import CryptoError
|
||||||
|
|
|
@ -2,9 +2,9 @@ from __future__ import print_function
|
||||||
import json
|
import json
|
||||||
from twisted.trial import unittest
|
from twisted.trial import unittest
|
||||||
from twisted.internet.defer import gatherResults, succeed
|
from twisted.internet.defer import gatherResults, succeed
|
||||||
from ..twisted.transcribe import (Wormhole, UsageError, ChannelManager,
|
from txwormhole.transcribe import (Wormhole, UsageError, ChannelManager,
|
||||||
WrongPasswordError)
|
WrongPasswordError)
|
||||||
from ..twisted.eventsource_twisted import EventSourceParser
|
from txwormhole.eventsource import EventSourceParser
|
||||||
from .common import ServerBase
|
from .common import ServerBase
|
||||||
|
|
||||||
APPID = u"appid"
|
APPID = u"appid"
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
from __future__ import print_function
|
|
||||||
import sys, json
|
|
||||||
from twisted.python import log
|
|
||||||
from twisted.internet import reactor
|
|
||||||
from .transcribe import Wormhole
|
|
||||||
from .. import public_relay
|
|
||||||
|
|
||||||
APPID = u"lothar.com/wormhole/text-or-file-xfer"
|
|
||||||
relay_url = public_relay.RENDEZVOUS_RELAY
|
|
||||||
|
|
||||||
w = Wormhole(APPID, relay_url)
|
|
||||||
|
|
||||||
if sys.argv[1] == "send":
|
|
||||||
message = sys.argv[2]
|
|
||||||
data = json.dumps({"message": message}).encode("utf-8")
|
|
||||||
d = w.get_code()
|
|
||||||
def _got_code(code):
|
|
||||||
print("code is:", code)
|
|
||||||
return w.send_data(data)
|
|
||||||
d.addCallback(_got_code)
|
|
||||||
def _sent(_):
|
|
||||||
return w.get_data()
|
|
||||||
d.addCallback(_sent)
|
|
||||||
def _got_data(them_bytes):
|
|
||||||
them_d = json.loads(them_bytes.decode("utf-8"))
|
|
||||||
if them_d["message_ack"] == "ok":
|
|
||||||
print("text sent")
|
|
||||||
else:
|
|
||||||
print("error sending text: %r" % (them_d,))
|
|
||||||
d.addCallback(_got_data)
|
|
||||||
elif sys.argv[1] == "receive":
|
|
||||||
code = sys.argv[2].decode("utf-8")
|
|
||||||
w.set_code(code)
|
|
||||||
d = w.get_data()
|
|
||||||
def _got_data(them_bytes):
|
|
||||||
them_d = json.loads(them_bytes.decode("utf-8"))
|
|
||||||
if "error" in them_d:
|
|
||||||
print("ERROR: " + them_d["error"], file=sys.stderr)
|
|
||||||
raise RuntimeError
|
|
||||||
if "file" in them_d:
|
|
||||||
print("they're trying to send us a file, which I don't handle")
|
|
||||||
data = json.dumps({"error": "not capable of receiving files"})
|
|
||||||
d1 = w.send_data(data.encode("utf-8"))
|
|
||||||
d1.addCallback(lambda _: RuntimeError())
|
|
||||||
return d1
|
|
||||||
if not "message" in them_d:
|
|
||||||
print("I don't know what they're offering\n")
|
|
||||||
print(them_d)
|
|
||||||
data = json.dumps({"error": "huh?"})
|
|
||||||
d1 = w.send_data(data.encode("utf-8"))
|
|
||||||
d1.addCallback(lambda _: RuntimeError())
|
|
||||||
return d1
|
|
||||||
print(them_d["message"])
|
|
||||||
data = json.dumps({"message_ack": "ok"})
|
|
||||||
d1 = w.send_data(data.encode("utf-8"))
|
|
||||||
d1.addCallback(lambda _: 0)
|
|
||||||
return d1
|
|
||||||
d.addCallback(_got_data)
|
|
||||||
else:
|
|
||||||
raise ValueError("bad command")
|
|
||||||
|
|
||||||
d.addBoth(w.close)
|
|
||||||
rc = []
|
|
||||||
def _success(res):
|
|
||||||
rc.append(res)
|
|
||||||
def _fail(f):
|
|
||||||
log.err(f)
|
|
||||||
rc.append(1)
|
|
||||||
d.addCallbacks(_success, _fail)
|
|
||||||
d.addCallback(lambda _: reactor.stop())
|
|
||||||
reactor.run()
|
|
||||||
sys.exit(rc[0])
|
|
Loading…
Reference in New Issue
Block a user