Closed somilee0202 closed 1 month ago
IRC 프로토콜의 MODE 명령어를 구현하여 사용자가 채널의 모드를 변경할 수 있도록 합니다.
-RPL_UMODEIS (221): 현재 사용자 모드 표시 -RPL_CHANNELMODEIS (324): 현재 채널 모드 표시 -RPL_CREATIONTIME (329): 채널 생성 시간
-문자열 파싱
-MODE
-MODE ±i,t
-MODE ±k
-MODE ±l
1.채널 목록 확인 2.사용자 오퍼레이터 권한 확인 (482) 3.현재 모드와 비교(-l의 경우에만) 4.채널에 모드 적용/삭제
-MODE ±o
1.채널 목록 확인 2.사용자 오퍼레이터 권한 확인 (482) 3.nick 채널 목록에서 확인 4.채널에 오퍼레이터 추가/삭제
const std::string& str
std::vector<std::string>
const std::string& channel_name
bool
const std::string& channel_name, const std::string& user_name
const std::string& channel_name, const std::string& client_name
IRC MODE 명령어 코딩 시나리오
목적
IRC 프로토콜의 MODE 명령어를 구현하여 사용자가 채널의 모드를 변경할 수 있도록 합니다.
에러 처리
응답코드
-RPL_UMODEIS (221): 현재 사용자 모드 표시 -RPL_CHANNELMODEIS (324): 현재 채널 모드 표시 -RPL_CREATIONTIME (329): 채널 생성 시간
코드 진행 순서
-문자열 파싱
-MODE
-MODE ±i,t
-MODE ±k
-MODE ±l
1.채널 목록 확인 2.사용자 오퍼레이터 권한 확인 (482) 3.현재 모드와 비교(-l의 경우에만) 4.채널에 모드 적용/삭제
-MODE ±o
1.채널 목록 확인 2.사용자 오퍼레이터 권한 확인 (482) 3.nick 채널 목록에서 확인 4.채널에 오퍼레이터 추가/삭제
메소드 설명
Server::ParseComma
const std::string& str
std::vector<std::string>
Server::CheckChannelInServer
const std::string& channel_name
bool
Server::CheckUserInChannel
const std::string& channel_name, const std::string& user_name
bool
Server::CheckOperatorInChannel
const std::string& channel_name, const std::string& client_name
bool
주의사항