Fix conflicting module names in transports

This commit is contained in:
Kevin F 2022-07-17 00:01:07 -05:00
parent d11d12b67f
commit d2b5298bc6
8 changed files with 46 additions and 58 deletions

View File

@ -112,7 +112,6 @@ def daemon():
f"Onionr daemon is running under pid {os.getpid()}", terminal=True) f"Onionr daemon is running under pid {os.getpid()}", terminal=True)
events.event('init', threaded=False) events.event('init', threaded=False)
events.event('daemon_start') events.event('daemon_start')
Thread(target=gossip.start_gossip_threads, daemon=True).start() Thread(target=gossip.start_gossip_threads, daemon=True).start()
try: try:

View File

@ -1,22 +1,22 @@
''' """
Onionr - Private P2P Communication Onionr - Private P2P Communication.
This file deals with management of modules/plugins. <anagement of modules/plugins.
''' """
''' """
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or the Free Software Foundation, either version 3 of the License, or
(at your option) any later version. (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. along with this program. If not, see <https://www.gnu.org/licenses/>.
''' """
import os, re, importlib import os, re, importlib
import traceback import traceback
@ -32,9 +32,9 @@ _instances = dict()
config.reload() config.reload()
def reload(stop_event = True): def reload(stop_event = True):
''' """
Reloads all the plugins Reloads all the plugins
''' """
check() check()
@ -93,9 +93,9 @@ def enable(name, start_event = True):
def disable(name, stop_event = True): def disable(name, stop_event = True):
''' """
Disables a plugin Disables a plugin
''' """
check() check()
@ -111,9 +111,9 @@ def disable(name, stop_event = True):
stop(name) stop(name)
def start(name): def start(name):
''' """
Starts the plugin Starts the plugin
''' """
check() check()
@ -135,9 +135,9 @@ def start(name):
return None return None
def stop(name): def stop(name):
''' """
Stops the plugin Stops the plugin
''' """
check() check()
@ -183,12 +183,11 @@ def import_module_from_file(full_path_to_module):
return module return module
def get_plugin(name): def get_plugin(name):
''' """
Returns the instance of a module Returns the instance of a module
''' """
check() check()
if str(name).lower() in _instances: if str(name).lower() in _instances:
return _instances[str(name).lower()] return _instances[str(name).lower()]
else: else:
@ -196,23 +195,23 @@ def get_plugin(name):
return get_plugin(name) return get_plugin(name)
def get_plugins(): def get_plugins():
''' """
Returns a list of plugins (deprecated) Returns a list of plugins (deprecated)
''' """
return _instances return _instances
def exists(name): def exists(name):
''' """
Return value indicates whether or not the plugin exists Return value indicates whether or not the plugin exists
''' """
return os.path.isdir(get_plugins_folder(str(name).lower())) return os.path.isdir(get_plugins_folder(str(name).lower()))
def get_enabled_plugins(): def get_enabled_plugins():
''' """
Returns a list of the enabled plugins Returns a list of the enabled plugins
''' """
check() check()
config.reload() config.reload()
@ -220,16 +219,16 @@ def get_enabled_plugins():
return list(config.get('plugins.enabled', list())) return list(config.get('plugins.enabled', list()))
def is_enabled(name): def is_enabled(name):
''' """
Return value indicates whether or not the plugin is enabled Return value indicates whether or not the plugin is enabled
''' """
return name in get_enabled_plugins() return name in get_enabled_plugins()
def get_plugins_folder(name = None, absolute = True): def get_plugins_folder(name = None, absolute = True):
''' """
Returns the path to the plugins folder Returns the path to the plugins folder
''' """
path = '' path = ''
@ -246,16 +245,16 @@ def get_plugins_folder(name = None, absolute = True):
return path + '/' return path + '/'
def get_plugin_data_folder(name, absolute = True): def get_plugin_data_folder(name, absolute = True):
''' """
Returns the location of a plugin's data folder Returns the location of a plugin's data folder
''' """
return get_plugins_folder(name, absolute) return get_plugins_folder(name, absolute)
def check(): def check():
''' """
Checks to make sure files exist Checks to make sure files exist
''' """
if not config.is_set('plugins'): if not config.is_set('plugins'):
logger.debug('Generating plugin configuration data...') logger.debug('Generating plugin configuration data...')

View File

@ -40,11 +40,10 @@ def __event_caller(event_name, data = {}):
if plugin in disabled: continue if plugin in disabled: continue
try: try:
call(plugins.get_plugin(plugin), event_name, data, get_pluginapi(data)) call(plugins.get_plugin(plugin), event_name, data, get_pluginapi(data))
except ModuleNotFoundError as e: except ModuleNotFoundError as _:
logger.warn('Disabling nonexistant plugin "%s"...' % plugin, terminal=True) logger.warn('Disabling nonexistant plugin "%s"...' % plugin, terminal=True)
plugins.disable(plugin, stop_event = False) plugins.disable(plugin, stop_event = False)
except Exception as e: except Exception as _:
logger.error('Event "%s" failed for plugin "%s".' % (event_name, plugin), terminal=True) logger.error('Event "%s" failed for plugin "%s".' % (event_name, plugin), terminal=True)
logger.error('\n' + traceback.format_exc(), terminal=True) logger.error('\n' + traceback.format_exc(), terminal=True)

View File

@ -1 +1 @@
/dev/shm/onionr442130151/gossip-server.sock /dev/shm/onionr3177415330/gossip-server.sock

View File

@ -25,8 +25,8 @@ sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
# import after path insert # import after path insert
from unixpeer import UnixPeer from unixpeer import UnixPeer
from bootstrap import on_bootstrap from unixbootstrap import on_bootstrap
from announce import on_announce_rec from unixannounce import on_announce_rec
#from shutdown import on_shutdown_event #from shutdown import on_shutdown_event
""" """
@ -57,7 +57,6 @@ def on_init(api, data=None):
logger.info( logger.info(
f"Peers can connect to {gossip_server_socket_file}", terminal=True) f"Peers can connect to {gossip_server_socket_file}", terminal=True)
def on_get_our_transport(api, data=None): def on_get_our_transport(api, data=None):
callback_func = data['callback'] callback_func = data['callback']
for_peer = data['peer'] for_peer = data['peer']
@ -65,9 +64,3 @@ def on_get_our_transport(api, data=None):
return return
if data['peer'].__class__ == UnixPeer: if data['peer'].__class__ == UnixPeer:
callback_func(for_peer, gossip_server_socket_file) callback_func(for_peer, gossip_server_socket_file)
def on_gossip_start(api, data: Set[Peer] = None):
# We don't do gossip logic
return

View File

@ -34,8 +34,7 @@ def load_existing_peers(callback: Callable):
daemon=True).start() daemon=True).start()
def on_bootstrap(api, data): def on_bootstrap(api, data=None):
callback_func = data['callback'] callback_func = data['callback']
try: try:

View File

@ -12,7 +12,6 @@ class UnixPeer:
def get_socket(self, connect_timeout) -> socket: def get_socket(self, connect_timeout) -> socket:
s = socket(AF_UNIX, SOCK_STREAM) s = socket(AF_UNIX, SOCK_STREAM)
#s.settimeout(connect_timeout) #s.settimeout(connect_timeout)
s.connect(self.transport_address) s.connect(self.transport_address)