+/**
+ * Register client in My_Whowas structure for further recall by WHOWAS.
+ * Note: Only clients that have been connected at least 30 seconds will be
+ * registered to prevent automated IRC bots to "destroy" a nice server
+ * history database.
+ */
+GLOBAL void
+Client_RegisterWhowas( CLIENT *Client )
+{
+ int slot;
+ time_t now;
+
+ assert( Client != NULL );
+
+ now = time(NULL);
+ /* Don't register clients that were connected less than 30 seconds. */
+ if( now - Client->starttime < 30 )
+ return;
+
+ slot = Last_Whowas + 1;
+ if( slot >= MAX_WHOWAS || slot < 0 ) slot = 0;
+
+#ifdef DEBUG
+ Log( LOG_DEBUG, "Saving WHOWAS information to slot %d ...", slot );
+#endif
+
+ My_Whowas[slot].time = now;
+ strlcpy( My_Whowas[slot].id, Client_ID( Client ),
+ sizeof( My_Whowas[slot].id ));
+ strlcpy( My_Whowas[slot].user, Client_User( Client ),
+ sizeof( My_Whowas[slot].user ));
+ strlcpy( My_Whowas[slot].host, Client_Hostname( Client ),
+ sizeof( My_Whowas[slot].host ));
+ strlcpy( My_Whowas[slot].info, Client_Info( Client ),
+ sizeof( My_Whowas[slot].info ));
+ strlcpy( My_Whowas[slot].server, Client_ID( Client_Introducer( Client )),
+ sizeof( My_Whowas[slot].server ));
+
+ Last_Whowas = slot;
+} /* Client_RegisterWhowas */
+
+