+GLOBAL BOOLEAN IRC_VERSION( CLIENT *Client, REQUEST *Req )
+{
+ CLIENT *target;
+
+ assert( Client != NULL );
+ assert( Req != NULL );
+
+ /* Falsche Anzahl Parameter? */
+ if(( Req->argc > 1 )) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command );
+
+ /* Ziel suchen */
+ if( Req->argc == 1 ) target = Client_GetFromID( Req->argv[0] );
+ else target = Client_ThisServer( );
+
+ /* An anderen Server weiterleiten? */
+ if( target != Client_ThisServer( ))
+ {
+ if( ! target ) return IRC_WriteStrClient( Client, ERR_NOSUCHSERVER_MSG, Client_ID( Client ), Req->argv[0] );
+ IRC_WriteStrClientPrefix( Client_NextHop( target ), Client, "VERSION %s", Req->argv[0] );
+ return CONNECTED;
+ }
+
+ return IRC_WriteStrClient( Client, RPL_VERSION_MSG, Client_ID( Client ), NGIRCd_Debug ? ( NGIRCd_Sniffer ? "2" : "1" ) : "0", Conf_ServerName, NGIRCd_VersionAddition( ));
+} /* IRC_VERSION */
+
+