From 2d93e27feb28d355d5358bee0577a64c9a89ecf7 Mon Sep 17 00:00:00 2001 From: jesopo Date: Fri, 3 Apr 2020 09:49:46 +0100 Subject: [PATCH] maybe_sasl() -> sasl_auth(SASLParms) --- ircrobots/interface.py | 4 ++-- ircrobots/ircv3.py | 5 +++-- ircrobots/server.py | 13 ++++++------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/ircrobots/interface.py b/ircrobots/interface.py index 751a0e5..51b0777 100644 --- a/ircrobots/interface.py +++ b/ircrobots/interface.py @@ -6,7 +6,7 @@ from ircstates import Server from irctokens import Line from .matching import BaseResponse -from .params import ConnectionParams +from .params import ConnectionParams, SASLParams class SendPriority(IntEnum): HIGH = 0 @@ -63,5 +63,5 @@ class IServer(Server): def collect_caps(self) -> List[str]: pass - async def maybe_sasl(self) -> bool: + async def sasl_auth(self, sasl: SASLParams) -> bool: pass diff --git a/ircrobots/ircv3.py b/ircrobots/ircv3.py index e3ab79c..f266c76 100644 --- a/ircrobots/ircv3.py +++ b/ircrobots/ircv3.py @@ -83,8 +83,9 @@ class CAPContext(ServerContext): if cap in caps: caps.remove(cap) - if self.server.cap_agreed(CAP_SASL): - await self.server.maybe_sasl() + if (self.server.cap_agreed(CAP_SASL) and + not self.server.params.sasl is None): + await self.server.sasl_auth(self.server.params.sasl) await self.server.send(build("CAP", ["END"])) return True diff --git a/ircrobots/server.py b/ircrobots/server.py index deb040d..f68f068 100644 --- a/ircrobots/server.py +++ b/ircrobots/server.py @@ -9,7 +9,7 @@ from irctokens import build, Line, tokenise from .ircv3 import CAPContext, CAPS, CAP_SASL from .interface import (ConnectionParams, ICapability, IServer, SentLine, - SendPriority) + SendPriority, SASLParams) from .matching import BaseResponse from .sasl import SASLContext, SASLResult from .security import ssl_context @@ -143,17 +143,16 @@ class Server(IServer): async def _cap_new(self, emit: Emit): if not emit.tokens is None: tokens = [t.split("=", 1)[0] for t in emit.tokens] - if CAP_SASL.available(tokens): - await self.maybe_sasl() + if CAP_SASL.available(tokens) and not self.params.sasl is None: + await self.sasl_auth(self.params.sasl) - async def maybe_sasl(self) -> bool: + async def sasl_auth(self, params: SASLParams) -> bool: if (self.sasl_state == SASLResult.NONE and - not self.params.sasl is None and self.cap_agreed(CAP_SASL)): - res = await SASLContext(self).from_params(self.params.sasl) + + res = await SASLContext(self).from_params(params) self.sasl_state = res return True else: return False - # /CAP-related