* Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste
* der an ngIRCd beteiligten Autoren finden Sie in der Datei AUTHORS.
*
- * $Id: irc-op.c,v 1.3 2002/06/02 15:23:46 alex Exp $
+ * $Id: irc-op.c,v 1.7 2002/07/25 11:36:16 alex Exp $
*
* irc-op.c: Befehle zur Channel-Verwaltung
*/
/* User suchen */
target = Client_Search( Req->argv[0] );
- if( ! target ) return IRC_WriteStrClient( from, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->argv[0] );
+ if(( ! target ) || ( Client_Type( target ) != CLIENT_USER )) return IRC_WriteStrClient( from, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->argv[0] );
chan = Channel_Search( Req->argv[1] );
}
Log( LOG_DEBUG, "User \"%s\" invites \"%s\" to \"%s\" ...", Client_Mask( from ), Req->argv[0], Req->argv[1] );
+ if( remember )
+ {
+ if( ! Lists_AddInvited( Client_Mask( target ), chan, TRUE )) return CONNECTED;
+ }
+
+ /* an Ziel-Client forwarden ... */
IRC_WriteStrClientPrefix( target, from, "INVITE %s %s", Req->argv[0], Req->argv[1] );
- if( remember ) Lists_AddInvited( Client_Mask( target ), chan );
if( Client_Conn( target ) > NONE )
{
- /* lokaler Zeil-Client, Status-Code melden */
- if( ! IRC_WriteStrClientPrefix( from, from, RPL_INVITING_MSG, Client_ID( from ), Req->argv[0], Req->argv[1] )) return DISCONNECTED;
+ /* lokaler Ziel-Client, Status-Code melden */
+ if( ! IRC_WriteStrClientPrefix( from, target, RPL_INVITING_MSG, Client_ID( from ), Req->argv[0], Req->argv[1] )) return DISCONNECTED;
}
return CONNECTED;