nicknamemohaji / ft_irc

42cursus irc
0 stars 0 forks source link

KICK Command Flow #13

Closed somilee0202 closed 1 month ago

somilee0202 commented 2 months ago

IRC KICK 명령어 코딩 시나리오

목적

IRC 프로토콜의 KICK 명령어를 구현하여 사용자가 채널에서 특정 사용자를 퇴출시킬 수 있도록 합니다.

에러 처리

코드 진행 순서

  1. 문자열 파싱

    • 쉼표를 기준으로 문자열을 분할하여 채널, 사용자, 댓글을 추출합니다.
  2. 채널 및 사용자 검증

    • 채널 확인
      • 채널 목록을 확인하여 채널이 존재하는지 검증합니다.
      • 존재하지 않는 채널인 경우 ERR_NOSUCHCHANNEL (403) 에러를 반환하고 종료합니다.
    • 오퍼레이터 권한 확인
      • 채널에서 오퍼레이터 권한을 가진 클라이언트를 확인합니다.
      • 클라이언트가 채널에 속해 있지 않은 경우 ERR_NOTONCHANNEL (442) 에러를 반환하고 종료합니다.
      • 클라이언트가 채널의 오퍼레이터 권한이 없는 경우 ERR_CHANOPRIVSNEEDED (482) 에러를 반환하고 종료합니다.
    • 사용자 확인
      • 채널에 사용자들이 속해 있는지 확인합니다. (여러개의 채널과 nick이 들어왔을때 각각의 nick이 어느 채널에 속해있는지 확인하는 과정 필요)
      • 사용자가 채널에 존재하지 않는 경우 ERR_USERNOTINCHANNEL (441) 에러를 반환합니다.
  3. 사용자 퇴출

    • 채널에서 사용자 삭제
    • 사용자의 채널 목록에서 채널 삭제

메소드 설명

Server::ParseComma

Server::CheckChannelName

Server::CheckChannelInServer

Server::CheckUserInChannel

Server::CheckOperatorInChannel

주의사항