An advertisement thread (nmadverise) that inserts entries into OpenDHT so that users and owners can locate their vessels. A status thread (nmstatusmonitor) that checks the status of vessels and updates statuses in the table used by the API. An accepter (nmconnectionmanager) listens for connections (preventing simple attacks) and puts them into a list. A worker thread (used in the nmconnectionmanager, nmrequesthandler, nmAPI) handles enacting the appropriate actions given requests from the user. The main thread initializes the other threads and monitors them to ensure they do not terminate prematurely (restarting them as necessary). """ # Let's make sure the version of python is supported import checkpythonversion checkpythonversion.ensure_python_version_is_supported() import os import sys import daemon import optparse # runonce relies on tempfile, whose components utilize the abc library. # Since we clobber built-ins in repyV2, we have to be sure that any # python libraries that require the built-ins intact be initialized # before we import repy code. See #1273 for more information. import runonce from repyportability import * add_dy_support(locals())
""" <Author> Chris Matthews ([email protected]) <Start Date> Dececmber 2010 <Description> Based off Repy.py, build a backend for a C program to bind to. """ # Let's make sure the version of python is supported import checkpythonversion checkpythonversion.ensure_python_version_is_supported() import idhelper import safe import sys import getopt import emulcomm import namespace import nanny import time import threading import loggingrepy import nmstatusinterface import harshexit import statusstorage import repy_constants import os # Armon: Using VirtualNamespace as an abstraction around direct execution