mirror of
https://github.com/iio612/DEFENDER.git
synced 2026-02-13 19:24:23 +00:00
Fix asyncio unwaitable methods
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
__version__ = '1.0.0'
|
__version__ = '1.0.0'
|
||||||
|
__all__ = ['start_rpc_server', 'stop_rpc_server']
|
||||||
@@ -6,7 +6,7 @@ from threading import Timer, Thread, RLock
|
|||||||
from asyncio.locks import Lock
|
from asyncio.locks import Lock
|
||||||
from socket import socket
|
from socket import socket
|
||||||
from typing import Any, Optional, TYPE_CHECKING
|
from typing import Any, Optional, TYPE_CHECKING
|
||||||
from core.definition import MSModule, MAdmin
|
from core.definition import MSModule, MAdmin, MThread
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from core.classes.modules.user import User
|
from core.classes.modules.user import User
|
||||||
@@ -19,10 +19,12 @@ class Settings:
|
|||||||
|
|
||||||
RUNNING_TIMERS: list[Timer] = []
|
RUNNING_TIMERS: list[Timer] = []
|
||||||
RUNNING_THREADS: list[Thread] = []
|
RUNNING_THREADS: list[Thread] = []
|
||||||
RUNNING_ASYNCTASKS: list[asyncio.Task] = []
|
|
||||||
RUNNING_SOCKETS: list[socket] = []
|
RUNNING_SOCKETS: list[socket] = []
|
||||||
|
RUNNING_ASYNC_TASKS: list[asyncio.Task] = []
|
||||||
|
RUNNING_ASYNC_THREADS: list[MThread] = []
|
||||||
PERIODIC_FUNC: dict[str, Any] = {}
|
PERIODIC_FUNC: dict[str, Any] = {}
|
||||||
LOCK: RLock = RLock()
|
|
||||||
|
THLOCK: RLock = RLock()
|
||||||
AILOCK: Lock = Lock()
|
AILOCK: Lock = Lock()
|
||||||
|
|
||||||
CONSOLE: bool = False
|
CONSOLE: bool = False
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ from datetime import datetime
|
|||||||
from typing import TYPE_CHECKING, Any, Optional
|
from typing import TYPE_CHECKING, Any, Optional
|
||||||
from ssl import SSLEOFError, SSLError
|
from ssl import SSLEOFError, SSLError
|
||||||
from core.classes.interfaces.iprotocol import IProtocol
|
from core.classes.interfaces.iprotocol import IProtocol
|
||||||
from core.utils import tr
|
from core.utils import is_coroutinefunction, tr
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from core.definition import MClient, MSasl, MUser, MChannel
|
from core.definition import MClient, MSasl, MUser, MChannel
|
||||||
@@ -258,6 +258,7 @@ class Unrealircd6(IProtocol):
|
|||||||
|
|
||||||
async def send_set_mode(self, modes: str, *, nickname: Optional[str] = None, channel_name: Optional[str] = None, params: Optional[str] = None) -> None:
|
async def send_set_mode(self, modes: str, *, nickname: Optional[str] = None, channel_name: Optional[str] = None, params: Optional[str] = None) -> None:
|
||||||
"""Set a mode to channel or to a nickname or for a user in a channel
|
"""Set a mode to channel or to a nickname or for a user in a channel
|
||||||
|
This method will always send as the command as Defender's nickname (service_id)
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
modes (str): The selected mode
|
modes (str): The selected mode
|
||||||
@@ -478,7 +479,7 @@ class Unrealircd6(IProtocol):
|
|||||||
c_uid = client_obj.uid
|
c_uid = client_obj.uid
|
||||||
c_nickname = client_obj.nickname
|
c_nickname = client_obj.nickname
|
||||||
await self.send2socket(f":{self._ctx.Config.SERVEUR_LINK} SVSLOGIN {self._ctx.Settings.MAIN_SERVER_HOSTNAME} {c_uid} 0")
|
await self.send2socket(f":{self._ctx.Config.SERVEUR_LINK} SVSLOGIN {self._ctx.Settings.MAIN_SERVER_HOSTNAME} {c_uid} 0")
|
||||||
self.send_svs2mode(c_nickname, '-r')
|
await self.send_svs2mode(c_nickname, '-r')
|
||||||
|
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
self._ctx.Logs.error(f'General Error: {err}')
|
self._ctx.Logs.error(f'General Error: {err}')
|
||||||
@@ -1020,7 +1021,7 @@ class Unrealircd6(IProtocol):
|
|||||||
|
|
||||||
# Send EOF to other modules
|
# Send EOF to other modules
|
||||||
for module in self._ctx.ModuleUtils.model_get_loaded_modules().copy():
|
for module in self._ctx.ModuleUtils.model_get_loaded_modules().copy():
|
||||||
module.class_instance.cmd(server_msg_copy)
|
await module.class_instance.cmd(server_msg_copy) if self._ctx.Utils.is_coroutinefunction(module.class_instance.cmd) else module.class_instance.cmd(server_msg_copy)
|
||||||
|
|
||||||
# Join saved channels & load existing modules
|
# Join saved channels & load existing modules
|
||||||
await self._ctx.Channel.db_join_saved_channels()
|
await self._ctx.Channel.db_join_saved_channels()
|
||||||
|
|||||||
Reference in New Issue
Block a user