2013-08-19 4 views
2

IRC 클라이언트를 구축 중이며 현재 SASL 지원을 추가하려고합니다.IRC 및 SASL 인증

if (sasl) { 
    send("CAP REQ :sasl"); 
} 
send("NICK: " + nick); 
send("USER ...."); 

:

내가 이해 한 것처럼

의 SASL 요청이 등록하기 전에,과 같이 수행해야합니다 : 나는 (인증이 작동),하지만 성가신 "결함"이 그냥 잘 작동 가지고있다 이제 성가신 작은 점은 SASL 요청으로 인해 IRC 서버가 ERR_NOTREGISTERED (451) 응답을 되돌려 보내 게된다는 것입니다. 이제 SASL이 활성화되어 있다면 처음 451 개의 대답을 무시할 수는 있지만, 다소 불쾌한 것처럼 보입니다. 내가 여기서 뭔가를 놓치고 있니?

답변

1

음, IRC의 SASL은 Client CAPability Negotiation을 기반으로합니다.

이 사양에 따르면 처음에 CAP LS을 보내고 그 다음에 USERNICK을 보냅니다. motd/motd가 끝나기 전에 CAP 응답을 받으면 서버는 CAP를 지원합니다. SASL이 지원되는 확장 목록에 있는지 확인하고 요청하십시오. motd/motd의 맨 끝이 누락 된 경우 서버는 CAP를 지원하지 않으므로 SASL을 지원하지 않습니다.

+0

답장을 보내 주셔서 감사합니다. SASL이 활성화 된 경우 등록 전에 모든 ERR_NOTREGISTERED 답장을 무시하는 것으로 끝났습니다. – user2499946