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)
events.event('init', threaded=False)
events.event('daemon_start')
Thread(target=gossip.start_gossip_threads, daemon=True).start()
try:

View File

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

View File

@ -40,11 +40,10 @@ def __event_caller(event_name, data = {}):
if plugin in disabled: continue
try:
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)
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('\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
from unixpeer import UnixPeer
from bootstrap import on_bootstrap
from announce import on_announce_rec
from unixbootstrap import on_bootstrap
from unixannounce import on_announce_rec
#from shutdown import on_shutdown_event
"""
@ -57,7 +57,6 @@ def on_init(api, data=None):
logger.info(
f"Peers can connect to {gossip_server_socket_file}", terminal=True)
def on_get_our_transport(api, data=None):
callback_func = data['callback']
for_peer = data['peer']
@ -65,9 +64,3 @@ def on_get_our_transport(api, data=None):
return
if data['peer'].__class__ == UnixPeer:
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()
def on_bootstrap(api, data):
def on_bootstrap(api, data=None):
callback_func = data['callback']
try:

View File

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