+ switch ( query )
+ {
+ case 'l': /* Links */
+ case 'L':
+ con = Conn_First( );
+ while( con != NONE )
+ {
+ cl = Client_GetFromConn( con );
+ if( cl && (( Client_Type( cl ) == CLIENT_SERVER ) || ( cl == Client )))
+ {
+ /* Server link or our own connection */
+#ifdef USE_ZLIB
+ if( Conn_Options( con ) & CONN_ZIP )
+ {
+ if( ! IRC_WriteStrClient( from, RPL_STATSLINKINFOZIP_MSG, Client_ID( from ), Client_Mask( cl ), Conn_SendQ( con ), Conn_SendMsg( con ), Conn_SendBytesZip( con ), Conn_SendBytes( con ), Conn_RecvMsg( con ), Conn_RecvBytesZip( con ), Conn_RecvBytes( con ), (LONG)( time( NULL ) - Conn_StartTime( con )))) return DISCONNECTED;
+ }
+ else
+#endif
+ {
+ if( ! IRC_WriteStrClient( from, RPL_STATSLINKINFO_MSG, Client_ID( from ), Client_Mask( cl ), Conn_SendQ( con ), Conn_SendMsg( con ), Conn_SendBytes( con ), Conn_RecvMsg( con ), Conn_RecvBytes( con ), (LONG)( time( NULL ) - Conn_StartTime( con )))) return DISCONNECTED;
+ }
+ }
+ con = Conn_Next( con );
+ }
+ break;
+ case 'm': /* IRC-Befehle */
+ case 'M':
+ cmd = Parse_GetCommandStruct( );
+ while( cmd->name )
+ {
+ if( cmd->lcount > 0 || cmd->rcount > 0 )
+ {
+ if( ! IRC_WriteStrClient( from, RPL_STATSCOMMANDS_MSG, Client_ID( from ), cmd->name, cmd->lcount, cmd->bytes, cmd->rcount )) return DISCONNECTED;
+ }
+ cmd++;
+ }
+ break;
+ }
+