def main(): s = Server() s.server_name = 'example server' s.on_packet = print_packet s.on_request = request s.start(sys.argv[1]) s.serve()
def __init__(self, context, ifname, subnet): self.context = context self.ifname = ifname self.subnet = subnet self.bridge_if = None self.dhcp_server_thread = None self.dhcp_server = Server() self.allocations = {} self.logger = logging.getLogger('ManagementNetwork:{0}'.format(self.ifname))
def setup_dhcp_server(): global dhcp_server def dhcp_request(mac, hostname): info('DHCP request from {0} ({1})'.format(hostname, mac)) lease = Lease() lease.client_mac = mac lease.client_ip = ipaddress.ip_address(e('${FREENAS_IP}')) lease.client_mask = ipaddress.ip_address(e('${NETMASK}')) ready.set() return lease dhcp_server = Server() dhcp_server.server_name = 'FreeNAS_test_env' dhcp_server.on_request = dhcp_request dhcp_server.start(tapdev, ipaddress.ip_address(e('${HOST_IP}'))) threading.Thread(target=dhcp_server.serve, daemon=True).start() info('Started DHCP server on {0}', tapdev)
def run(): """ Run dhcp """ SETTINGS.parse() backend = get_backend(SETTINGS.backend) server = Server(backend=backend(), interface=SETTINGS.interface, authoritative=SETTINGS.authoritative, server_ident=SETTINGS.server_ident) logger.info("Starting DHCP server") while True: try: server.serve() except KeyboardInterrupt: break except Exception as ex: logger.error("Error running DHCP server: %s", str(ex), exc_info=True) logger.info("DHCP server stopped")