Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion etc/systemd/system/pymaster.service
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ User=master
Group=master
WorkingDirectory=/home/master/pymaster/
ExecStart=/home/master/pymaster/pymaster.py -i $PYMASTER_IP -p $PYMASTER_PORT
StandardOutput=file:/home/master/pymaster-debug.log
StandardError=file:/home/master/pymaster-error.log
Restart=on-failure

[Install]
WantedBy=multi-user.target

16 changes: 10 additions & 6 deletions pymaster.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

from server_entry import ServerEntry
from protocol import MasterProtocol
import ipfilter
# import ipfilter

LOG_FILENAME = 'pymaster.log'
MAX_SERVERS_FOR_IP = 14
Expand Down Expand Up @@ -66,8 +66,12 @@ def __init__(self, ip, port):
self.serverList = []
self.serverRL = IPRateLimit('server', 60, 30)
self.clientRL = IPRateLimit('client', 60, 120)
# self.ipfilterRL = IPRateLimit('filterlog', 60, 10)
self.ipfilterRL = IPRateLimit('filterlog', 60, 10)
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
if ':' in ip:
self.sock = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
else:
self.sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.sock.bind((ip, port))

log("Welcome to PyMaster!")
Expand All @@ -77,10 +81,10 @@ def __init__(self, ip, port):
def serverLoop(self):
data, addr = self.sock.recvfrom(1024)

if ip_address(addr[0]) in ipfilter.ipfilter:
if not self.ipfilterRL.ratelimit(addr[0]):
log('Filter: %s:%d' % (addr[0], addr[1]))
return
# if ip_address(addr[0]) in ipfilter.ipfilter:
# if not self.ipfilterRL.ratelimit(addr[0]):
# log('Filter: %s:%d' % (addr[0], addr[1]))
# return

if len(data) == 0:
return
Expand Down