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",
|
||||
package_dir={"": "src"},
|
||||
packages=["wormhole",
|
||||
"wormhole.blocking", "wormhole.twisted",
|
||||
"wormhole.blocking",
|
||||
"txwormhole",
|
||||
"wormhole.scripts", "wormhole.test", "wormhole.util",
|
||||
"wormhole_server"],
|
||||
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.http_headers import Headers
|
||||
from cgi import parse_header
|
||||
from ..util.eventual import eventually
|
||||
from .eventual import eventually
|
||||
|
||||
#if sys.version_info[0] == 2:
|
||||
# to_unicode = unicode
|
|
@ -8,7 +8,7 @@ from twisted.internet.error import ConnectError
|
|||
from twisted.web import iweb
|
||||
import txtorcon
|
||||
import ipaddr
|
||||
from ..timing import DebugTiming
|
||||
from wormhole.timing import DebugTiming
|
||||
from .transit import allocate_tcp_port
|
||||
|
||||
# based on twisted.web.client._StandardEndpointFactory
|
|
@ -13,13 +13,13 @@ from nacl.secret import SecretBox
|
|||
from nacl.exceptions import CryptoError
|
||||
from nacl import utils
|
||||
from spake2 import SPAKE2_Symmetric
|
||||
from .eventsource_twisted import ReconnectingEventSource
|
||||
from .. import __version__
|
||||
from .. import codes
|
||||
from ..errors import ServerError, Timeout, WrongPasswordError, UsageError
|
||||
from ..timing import DebugTiming
|
||||
from ..util.hkdf import HKDF
|
||||
from ..channel_monitor import monitor
|
||||
from .eventsource import ReconnectingEventSource
|
||||
from wormhole import __version__
|
||||
from wormhole import codes
|
||||
from wormhole.errors import ServerError, Timeout, WrongPasswordError, UsageError
|
||||
from wormhole.timing import DebugTiming
|
||||
from wormhole.util.hkdf import HKDF
|
||||
from wormhole.channel_monitor import monitor
|
||||
|
||||
CONFMSG_NONCE_LENGTH = 128//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.protocols import policies
|
||||
from nacl.secret import SecretBox
|
||||
from ..util import ipaddrs
|
||||
from ..util.hkdf import HKDF
|
||||
from ..errors import UsageError
|
||||
from ..timing import DebugTiming
|
||||
from wormhole.util.hkdf import HKDF
|
||||
from wormhole.errors import UsageError
|
||||
from wormhole.timing import DebugTiming
|
||||
from . import ipaddrs
|
||||
|
||||
def debug(msg):
|
||||
if False:
|
|
@ -2,8 +2,8 @@ from __future__ import print_function
|
|||
import io, os, sys, json, binascii, six, tempfile, zipfile
|
||||
from twisted.internet import reactor, defer
|
||||
from twisted.internet.defer import inlineCallbacks, returnValue
|
||||
from ..twisted.transcribe import Wormhole, WrongPasswordError
|
||||
from ..twisted.transit import TransitReceiver
|
||||
from txwormhole.transcribe import Wormhole, WrongPasswordError
|
||||
from txwormhole.transit import TransitReceiver
|
||||
from ..errors import TransferError
|
||||
from .progress import ProgressPrinter
|
||||
|
||||
|
@ -55,7 +55,7 @@ class TwistedReceiver:
|
|||
tor_manager = None
|
||||
if self.args.tor:
|
||||
_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)
|
||||
tor_manager = TorManager(reactor, timing=self.args.timing)
|
||||
# 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 ..errors import TransferError
|
||||
from .progress import ProgressPrinter
|
||||
from ..twisted.transcribe import Wormhole, WrongPasswordError
|
||||
from ..twisted.transit import TransitSender
|
||||
from txwormhole.transcribe import Wormhole, WrongPasswordError
|
||||
from txwormhole.transit import TransitSender
|
||||
|
||||
APPID = u"lothar.com/wormhole/text-or-file-xfer"
|
||||
|
||||
|
@ -130,7 +130,7 @@ def send_twisted(args):
|
|||
|
||||
tor_manager = None
|
||||
if args.tor:
|
||||
from ..twisted.tor_manager import TorManager
|
||||
from txwormhole.tor_manager import TorManager
|
||||
tor_manager = TorManager(reactor, timing=args.timing)
|
||||
# For now, block everything until Tor has started. Soon: launch tor
|
||||
# in parallel with everything else, make sure the TorManager can
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
from twisted.application import service
|
||||
from twisted.internet import reactor, defer
|
||||
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 .. import __version__
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@ from __future__ import print_function
|
|||
from twisted.trial import unittest
|
||||
from twisted.internet.defer import gatherResults
|
||||
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 .common import ServerBase
|
||||
|
||||
|
|
|
@ -6,3 +6,5 @@ class Import(unittest.TestCase):
|
|||
self.assertTrue(len(wormhole.__version__))
|
||||
import wormhole_server
|
||||
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 .common import ServerBase
|
||||
from wormhole_server import relay_server, transit_server
|
||||
from ..twisted.eventsource_twisted import EventSource
|
||||
from txwormhole.eventsource import EventSource
|
||||
|
||||
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.python import log, failure
|
||||
from twisted.test import proto_helpers
|
||||
from ..twisted import transit
|
||||
from txwormhole import transit
|
||||
from ..errors import UsageError
|
||||
from nacl.secret import SecretBox
|
||||
from nacl.exceptions import CryptoError
|
||||
|
|
|
@ -2,9 +2,9 @@ from __future__ import print_function
|
|||
import json
|
||||
from twisted.trial import unittest
|
||||
from twisted.internet.defer import gatherResults, succeed
|
||||
from ..twisted.transcribe import (Wormhole, UsageError, ChannelManager,
|
||||
WrongPasswordError)
|
||||
from ..twisted.eventsource_twisted import EventSourceParser
|
||||
from txwormhole.transcribe import (Wormhole, UsageError, ChannelManager,
|
||||
WrongPasswordError)
|
||||
from txwormhole.eventsource import EventSourceParser
|
||||
from .common import ServerBase
|
||||
|
||||
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