Skip to content

Commit

Permalink
fix standalone joinmarketd listening on all interfaces
Browse files Browse the repository at this point in the history
  • Loading branch information
undeath committed Nov 17, 2017
1 parent 52264a7 commit f2ba06e
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 27 deletions.
19 changes: 3 additions & 16 deletions jmclient/jmclient/client_protocol.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,17 @@
#! /usr/bin/env python
from __future__ import print_function
from twisted.python.log import startLogging, err
from twisted.internet import protocol, reactor, task
from twisted.internet.task import LoopingCall
from twisted.internet.error import (ConnectionLost, ConnectionAborted,
ConnectionClosed, ConnectionDone)
from twisted.python import failure
from twisted.protocols import amp
from twisted.internet.protocol import ClientFactory
from twisted.internet.endpoints import TCP4ClientEndpoint
try:
from twisted.internet.ssl import ClientContextFactory
from twisted.internet import ssl
except ImportError:
pass
from jmbase import commands
from sys import stdout

import json
import random
import string
import time
import hashlib
import os
import sys
Expand All @@ -29,6 +20,7 @@
load_program_config, get_log, get_p2sh_vbyte,
RegtestBitcoinCoreInterface)
from jmbase import _byteify
from jmdaemon import start_daemon
import btc

jlog = get_log()
Expand Down Expand Up @@ -484,13 +476,8 @@ def start_reactor(host, port, factory, ish=True, daemon=False, rs=True, gui=Fals
orgport = port
while True:
try:
if usessl:
reactor.listenSSL(port, dfactory,
ssl.DefaultOpenSSLContextFactory(
"./ssl/key.pem", "./ssl/cert.pem"),
interface=host)
else:
reactor.listenTCP(port, dfactory, interface=host)
start_daemon(host, port, dfactory, usessl,
'./ssl/key.pem', './ssl/cert.pem')
jlog.info("Listening on port " + str(port))
break
except Exception:
Expand Down
3 changes: 2 additions & 1 deletion jmdaemon/jmdaemon/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
from .message_channel import MessageChannel, MessageChannelCollection
from .orderbookwatch import OrderbookWatch
from jmbase import commands
from .daemon_protocol import JMDaemonServerProtocolFactory, JMDaemonServerProtocol
from .daemon_protocol import (JMDaemonServerProtocolFactory, JMDaemonServerProtocol,
start_daemon)
from .protocol import (COMMAND_PREFIX, ORDER_KEYS, NICK_HASH_LENGTH,
NICK_MAX_ENCODED, JM_VERSION, JOINMARKET_NICK_HEADER)
from .message_channel import MessageChannelCollection
Expand Down
16 changes: 13 additions & 3 deletions jmdaemon/jmdaemon/daemon_protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,12 @@
from jmbase.commands import *
from jmbase import _byteify
from twisted.protocols import amp
from twisted.internet import reactor
from twisted.internet import reactor, ssl
from twisted.internet.protocol import ServerFactory
from twisted.internet.error import (ConnectionLost, ConnectionAborted,
ConnectionClosed, ConnectionDone)
from twisted.python import failure, log
import json
import time
import threading
import os
import copy
Expand Down Expand Up @@ -597,4 +596,15 @@ class JMDaemonServerProtocolFactory(ServerFactory):
protocol = JMDaemonServerProtocol

def buildProtocol(self, addr):
return JMDaemonServerProtocol(self)
return JMDaemonServerProtocol(self)


def start_daemon(host, port, factory, usessl=False, sslkey=None, sslcert=None):
if usessl:
assert sslkey
assert sslcert
reactor.listenSSL(port, factory,
ssl.DefaultOpenSSLContextFactory(
sslkey, sslcert), interface=host)
else:
reactor.listenTCP(port, factory, interface=host)
15 changes: 8 additions & 7 deletions scripts/joinmarketd.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from twisted.python.log import startLogging, err
import jmdaemon

def startup_joinmarketd(port, usessl, finalizer=None, finalizer_args=None):
def startup_joinmarketd(host, port, usessl, finalizer=None, finalizer_args=None):
"""Start event loop for joinmarket daemon here.
Args:
port : port over which to serve the daemon
Expand All @@ -12,11 +12,8 @@ def startup_joinmarketd(port, usessl, finalizer=None, finalizer_args=None):
"""
startLogging(sys.stdout)
factory = jmdaemon.JMDaemonServerProtocolFactory()
if usessl:
reactor.listenSSL(port, factory, ssl.DefaultOpenSSLContextFactory(
"./ssl/key.pem", "./ssl/cert.pem"))
else:
reactor.listenTCP(port, factory)
jmdaemon.start_daemon(host, port, factory, usessl,
'./ssl/key.pem', './ssl/cert.pem')
if finalizer:
reactor.addSystemEventTrigger("after", "shutdown", finalizer,
finalizer_args)
Expand All @@ -32,4 +29,8 @@ def startup_joinmarketd(port, usessl, finalizer=None, finalizer_args=None):
if len(sys.argv) > 2:
if int(sys.argv[2]) != 0:
usessl = True
startup_joinmarketd(port, usessl)
if len(sys.argv) > 3:
host = sys.argv[3]
else:
host = 'localhost'
startup_joinmarketd(host, port, usessl)

0 comments on commit f2ba06e

Please sign in to comment.