コード例 #1
0
ファイル: sirc_client.cpp プロジェクト: dcalandria/swad-ircd
int IrcClient::WaitResponse (int response )
{
  char buf[1024];
  IrcMessage msg;
  
  while (true)
    {
      int res = socket.ReadMessage ( buf );
      if (res > 0)
	{
	  std::printf ("IRC MESSAGE: %s\n", buf );
	  msg = IrcMessage ( 0, buf, true );

	  if ( (res = DispatchMessage ( msg )) != S_OK)
	    return res;
	  		   
	  if ( msg.GetResponse() == response ||
	       msg.GetResponse() >= 400  /* error */ )
	    return msg.GetResponse();
	}
    }
  return S_OK;
}
コード例 #2
0
ファイル: sirc_client.cpp プロジェクト: dcalandria/swad-ircd
int IrcClient::DispatchResponse ( const IrcMessage &msg )
{
  switch (msg.GetResponse ())
    {
    case 376: //End of MOTD command
      is_registered = true;
      if (events)
	events->OnRegistered ();
      break;
    }

  if (events)
    events->OnResponse ( msg );
  
  return S_OK;
}