예제 #1
0
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()
예제 #2
0
파일: mgmt.py 프로젝트: surajrav/middleware
 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))
예제 #3
0
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)
예제 #4
0
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")