Added config options for UDP interface binding to network interface instead of IP.

This commit is contained in:
Mark Qvist 2021-08-19 19:56:35 +02:00
parent 4fd3d26714
commit 6382409194
3 changed files with 36 additions and 6 deletions

View file

@ -1,18 +1,34 @@
from .Interface import Interface
import socketserver
import threading
import netifaces
import socket
import time
import sys
import RNS
class UDPInterface(Interface):
def __init__(self, owner, name, bindip=None, bindport=None, forwardip=None, forwardport=None):
@staticmethod
def get_address_for_if(name):
return netifaces.ifaddresses(name)[netifaces.AF_INET][0]['addr']
def get_broadcast_for_if(name):
return netifaces.ifaddresses(name)[netifaces.AF_INET][0]['broadcast']
def __init__(self, owner, name, device=None, bindip=None, bindport=None, forwardip=None, forwardport=None):
self.IN = True
self.OUT = False
self.name = name
if device != None:
if bindip == None:
bindip = UDPInterface.get_broadcast_for_if(device)
if forwardip == None:
forwardip = UDPInterface.get_broadcast_for_if(device)
if (bindip != None and bindport != None):
self.receives = True
self.bind_ip = bindip