Skip to content

Commit 66920aa

Browse files
committed
moved shared zmq context
1 parent bdc39bd commit 66920aa

File tree

10 files changed

+27
-25
lines changed

10 files changed

+27
-25
lines changed

beeswarm/__init__.py

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,2 @@
1-
try:
2-
import zmq.green as zmq
3-
zmq_context = zmq.Context()
4-
except ImportError:
5-
pass
6-
7-
version = '0.4.16'
1+
version = '0.4.17'
82

beeswarm/drones/drone.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import requests
2222
import beeswarm
23+
import beeswarm.shared
2324
from requests.exceptions import Timeout, ConnectionError
2425
import gevent
2526
from gevent import socket
@@ -65,7 +66,7 @@ def __init__(self, work_dir, config, key='server.key', cert='server.crt', **kwar
6566
self.config_url_dropper_greenlet = None
6667

6768
# messages from server relayed to internal listeners
68-
ctx = beeswarm.zmq_context
69+
ctx = beeswarm.shared.zmq_context
6970
self.internal_server_relay = ctx.socket(zmq.PUSH)
7071
self.internal_server_relay.bind('inproc://serverCommands')
7172
self.config_received = gevent.event.Event()
@@ -137,7 +138,7 @@ def stop(self):
137138

138139
# command from server
139140
def incoming_server_comms(self, server_public, client_public, client_secret):
140-
context = beeswarm.zmq_context
141+
context = beeswarm.shared.zmq_context
141142
# data (commands) received from server
142143
receiving_socket = context.socket(zmq.SUB)
143144

@@ -190,7 +191,7 @@ def incoming_server_comms(self, server_public, client_public, client_secret):
190191
logger.warn('Command listener exiting.')
191192

192193
def outgoing_server_comms(self, server_public, client_public, client_secret):
193-
context = beeswarm.zmq_context
194+
context = beeswarm.shared.zmq_context
194195
sending_socket = context.socket(zmq.PUSH)
195196

196197
# setup sending tcp socket

beeswarm/drones/honeypot/tests/test_honeypot.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import unittest
2828
import beeswarm
29+
import beeswarm.shared
2930
from beeswarm.drones.honeypot.honeypot import Honeypot
3031
from beeswarm.shared.asciify import asciify
3132

@@ -50,7 +51,7 @@ def tearDown(self):
5051
self.inbox = gevent.queue.Queue()
5152

5253
def mock_server_relay(self):
53-
context = beeswarm.zmq_context
54+
context = beeswarm.shared.zmq_context
5455
internal_server_relay = context.socket(zmq.PULL)
5556
internal_server_relay.bind('inproc://serverRelay')
5657

beeswarm/server/db/session_persister.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
from gevent import Greenlet
2323

2424
import beeswarm
25+
import beeswarm.shared
2526
from beeswarm.server.db import database_setup
2627
from beeswarm.server.db.entities import Client, BaitSession, Session, Honeypot, Authentication, Classification, \
2728
Transcript
@@ -45,15 +46,15 @@ def __init__(self, clear_sessions=False):
4546
count = db_session.query(Session).delete()
4647
logging.info('Deleting {0} sessions on startup.'.format(count))
4748
db_session.commit()
48-
ctx = beeswarm.zmq_context
49+
ctx = beeswarm.shared.zmq_context
4950
self.subscriber_sessions = ctx.socket(zmq.SUB)
5051
self.subscriber_sessions.connect('inproc://sessionPublisher')
5152
self.subscriber_sessions.setsockopt(zmq.SUBSCRIBE, '')
5253
self.first_cfg_received = gevent.event.Event()
5354
self.config = None
5455

5556
def config_subscriber(self):
56-
ctx = beeswarm.zmq_context
57+
ctx = beeswarm.shared.zmq_context
5758
subscriber_config = ctx.socket(zmq.SUB)
5859
subscriber_config.connect('inproc://configPublisher')
5960
subscriber_config.setsockopt(zmq.SUBSCRIBE, '')

beeswarm/server/misc/config_actor.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ def __init__(self, config_file, work_dir, command_requests_only=False):
4444
self.config = json.load(open(self.config_file, 'r'))
4545
self.work_dir = work_dir
4646

47-
context = beeswarm.zmq_context
47+
context = beeswarm.shared.zmq_context
4848
self.config_commands = context.socket(zmq.REP)
4949
self.config_publisher = None
5050
self.drone_command_receiver = None

beeswarm/server/server.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -108,25 +108,25 @@ def message_proxy(self, work_dir):
108108
# external interfaces for communicating with drones
109109
server_secret_file = os.path.join(secret_keys_dir, 'beeswarm_server.pri')
110110
server_public, server_secret = load_certificate(server_secret_file)
111-
drone_data_inbound = beeswarm.zmq_context.socket(zmq.PULL)
111+
drone_data_inbound = beeswarm.shared.zmq_context.socket(zmq.PULL)
112112
drone_data_inbound.curve_secretkey = server_secret
113113
drone_data_inbound.curve_publickey = server_public
114114
drone_data_inbound.curve_server = True
115115
drone_data_inbound.bind('tcp://*:{0}'.format(self.config['network']['zmq_port']))
116116

117-
drone_data_outbound = beeswarm.zmq_context.socket(zmq.PUB)
117+
drone_data_outbound = beeswarm.shared.zmq_context.socket(zmq.PUB)
118118
drone_data_outbound.curve_secretkey = server_secret
119119
drone_data_outbound.curve_publickey = server_public
120120
drone_data_outbound.curve_server = True
121121
drone_data_outbound.bind('tcp://*:{0}'.format(self.config['network']['zmq_command_port']))
122122

123123
# internal interfaces
124124
# all inbound session data from drones will be replayed in this socket
125-
sessionPublisher = beeswarm.zmq_context.socket(zmq.PUB)
125+
sessionPublisher = beeswarm.shared.zmq_context.socket(zmq.PUB)
126126
sessionPublisher.bind('inproc://sessionPublisher')
127127

128128
# all commands received on this will be published on the external interface
129-
drone_command_receiver = beeswarm.zmq_context.socket(zmq.PULL)
129+
drone_command_receiver = beeswarm.shared.zmq_context.socket(zmq.PULL)
130130
drone_command_receiver.bind('inproc://droneCommandReceiver')
131131

132132
poller = zmq.Poller()
@@ -322,7 +322,7 @@ def prepare_environment(work_dir, customize):
322322
# tmp actor while initializing
323323
config_actor = ConfigActor('beeswarmcfg.json', work_dir, True)
324324
config_actor.start()
325-
context = beeswarm.zmq_context
325+
context = beeswarm.shared.zmq_context
326326
socket = context.socket(zmq.REQ)
327327
gevent.sleep()
328328
socket.connect('inproc://configCommands')

beeswarm/server/webapp/app.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535

3636
from beeswarm.server.webapp.auth import Authenticator
3737
import beeswarm
38+
import beeswarm.shared
3839
from forms import HoneypotConfigurationForm, NewClientConfigForm, LoginForm, SettingsForm
3940
from beeswarm.server.db import database_setup
4041
from beeswarm.server.db.entities import Client, BaitSession, Session, Honeypot, User, BaitUser, Transcript, Drone, \
@@ -68,15 +69,15 @@ def is_hidden_field_filter(field):
6869
# keys used for adding new drones to the system
6970
drone_keys = []
7071

71-
context = beeswarm.zmq_context
72+
context = beeswarm.shared.zmq_context
7273
config_actor_socket = context.socket(zmq.REQ)
7374
config_actor_socket.connect('inproc://configCommands')
7475
request_lock = gevent.lock.RLock()
7576

7677

7778
def config_subscriber():
7879
global config
79-
ctx = beeswarm.zmq_context
80+
ctx = beeswarm.shared.zmq_context
8081
subscriber_socket = ctx.socket(zmq.SUB)
8182
subscriber_socket.connect('inproc://configPublisher')
8283
subscriber_socket.setsockopt(zmq.SUBSCRIBE, Messages.CONFIG_FULL)
@@ -613,7 +614,7 @@ def settings():
613614

614615

615616
def update_config(options):
616-
context = beeswarm.zmq_context
617+
context = beeswarm.shared.zmq_context
617618
socket = context.socket(zmq.REQ)
618619
socket.connect('inproc://configCommands')
619620
socket.send('{0} {1}'.format(Messages.SET, json.dumps(options)))

beeswarm/shared/__init__.py

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import zmq.green as zmq
2+
zmq_context = zmq.Context()

beeswarm/shared/helpers.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import requests
3232
from beeswarm.shared.asciify import asciify
3333
import beeswarm
34+
import beeswarm.shared
3435

3536
from beeswarm.shared.message_enum import Messages
3637

@@ -178,7 +179,7 @@ def get_config_dict(configfile):
178179

179180
# for occasional req/resp
180181
def send_zmq_request(actor_url, request):
181-
context = beeswarm.zmq_context
182+
context = beeswarm.shared.zmq_context
182183
socket = context.socket(zmq.REQ)
183184
socket.connect(actor_url)
184185
socket.send(request)
@@ -204,7 +205,7 @@ def send_zmq_request_socket(socket, request):
204205

205206
# for occasional zmq pushes
206207
def send_zmq_push(actor_url, data):
207-
context = beeswarm.zmq_context
208+
context = beeswarm.shared.zmq_context
208209
socket = context.socket(zmq.PUSH)
209210
socket.connect(actor_url)
210211
socket.send(data)

beeswarm/shared/misc/server_logger.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@
2121
import zmq.green as zmq
2222
import zmq.auth
2323
import beeswarm
24+
import beeswarm.shared
2425

2526

2627
logger = logging.getLogger(__name__)
2728

2829

2930
class ServerLogger(object):
3031
def __init__(self, message_type):
31-
context = beeswarm.zmq_context
32+
context = beeswarm.shared.zmq_context
3233
self.socket = context.socket(zmq.PUSH)
3334
self.socket.connect('inproc://serverRelay')
3435
self.message_type = message_type

0 commit comments

Comments
 (0)