]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/scache.c
dlink -> rb_dlink
[irc/rqf/shadowircd.git] / src / scache.c
index c5a7d13f1f5917915af3f3dd88c303d2494371ad..525e5bd179f926e9d84f8e3fba5a0723e7d36fbf 100644 (file)
@@ -185,6 +185,33 @@ scache_send_flattened_links(struct Client *source_p)
        sendto_one_numeric(source_p, RPL_ENDOFLINKS, form_str(RPL_ENDOFLINKS), "*");
 }
 
+#define MISSING_TIMEOUT 86400
+
+/* scache_send_missing()
+ *
+ * inputs      - client to send to
+ * outputs     - recently split servers
+ * side effects        -
+ */
+void
+scache_send_missing(struct Client *source_p)
+{
+       struct scache_entry *scache_ptr;
+       int i;
+
+       for (i = 0; i < SCACHE_HASH_SIZE; i++)
+       {
+               scache_ptr = scache_hash[i];
+               while (scache_ptr)
+               {
+                       if (!(scache_ptr->flags & SC_ONLINE) && scache_ptr->last_split > CurrentTime - MISSING_TIMEOUT)
+                               sendto_one_numeric(source_p, RPL_MAP, "** %s (recently split)", 
+                                                  scache_ptr->name);
+
+                       scache_ptr = scache_ptr->next;
+               }
+       }
+}
 /*
  * count_scache
  * inputs      - pointer to where to leave number of servers cached