]> granicus.if.org Git - apache/commitdiff
Added display code for the URL cache
authorBradley Nicholes <bnicholes@apache.org>
Mon, 21 Jun 2004 19:49:42 +0000 (19:49 +0000)
committerBradley Nicholes <bnicholes@apache.org>
Mon, 21 Jun 2004 19:49:42 +0000 (19:49 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@104010 13f79535-47bb-0310-9956-ffa450edef68

modules/experimental/util_ldap_cache.c
modules/experimental/util_ldap_cache_mgr.c

index 0225d4ce8b9c7caa9dc8bc921b25d48ef0d0b551..7cfe8b6771b99a3c3f0dc871a4522bcb8e74d13a 100644 (file)
@@ -82,6 +82,53 @@ void util_ldap_url_node_free(util_ald_cache_t *cache, void *n)
 void util_ldap_url_node_display(request_rec *r, util_ald_cache_t *cache, void *n)
 {
     util_url_node_t *node = (util_url_node_t *)n;
+    char date_str[APR_CTIME_LEN+1];
+    char *buf;
+    const char *type_str;
+    util_ald_cache_t *cache_node;
+    int x;
+
+    for (x=0;x<3;x++) {
+        switch (x) {
+            case 0:
+                cache_node = node->search_cache;
+                type_str = "Searches";
+                break;
+            case 1:
+                cache_node = node->compare_cache;
+                type_str = "Compares";
+                break;
+            case 2:
+                cache_node = node->dn_compare_cache;
+                type_str = "DN Compares";
+                break;
+        }
+        
+        if (cache_node->marktime) {
+            apr_ctime(date_str, cache_node->marktime);
+        }
+        else 
+            date_str[0] = 0;
+
+        buf = apr_psprintf(r->pool, 
+                 "<tr valign='top'>"
+                 "<td nowrap>%s (%s)</td>"
+                 "<td nowrap>%ld</td>"
+                 "<td nowrap>%ld</td>"
+                 "<td nowrap>%ld</td>"
+                 "<td nowrap>%ld</td>"
+                 "<td nowrap>%s</td>"
+                 "<tr>",
+             node->url,
+             type_str,
+             cache_node->size,
+             cache_node->maxentries,
+             cache_node->numentries,
+             cache_node->fullmark,
+             date_str);
+    
+        ap_rputs(buf, r);
+    }
 
 }
 
index 9e684ecb4a7f76225bf15eaa7b392f394dceac73..fe9745fc8ffe7f10a0012f16ecf03c10b843eda5 100644 (file)
@@ -529,8 +529,8 @@ char *util_ald_cache_display(request_rec *r, util_ldap_state_t *st)
     char *argfmt = "cache=%s&id=%d&off=%d";
     char *scanfmt = "cache=%4s&id=%u&off=%u%1s";
     apr_pool_t *pool = r->pool;
-    util_cache_node_t *p;
-    util_url_node_t *n;
+    util_cache_node_t *p = NULL;
+    util_url_node_t *n = NULL;
 
     util_ald_cache_t *util_ldap_cache = st->util_ldap_cache;
 
@@ -543,12 +543,18 @@ char *util_ald_cache_display(request_rec *r, util_ldap_state_t *st)
         char cachetype[5], lint[2];
         unsigned int id, off;
         int ret;
+        char date_str[APR_CTIME_LEN+1];
 
         if ((3 == sscanf(r->args, scanfmt, cachetype, &id, &off, lint)) &&
             (id < util_ldap_cache->size)) {
 
-            p = util_ldap_cache->nodes[id];
-            n = (util_url_node_t *)p->payload;
+            if ((p = util_ldap_cache->nodes[id]) != NULL) {
+                n = (util_url_node_t *)p->payload;
+                buf = (char*)n->url;
+            }
+            else {
+                buf = "";
+            }
 
             ap_rputs(apr_psprintf(r->pool, 
                      "<p>\n"
@@ -558,10 +564,70 @@ char *util_ald_cache_display(request_rec *r, util_ldap_state_t *st)
                      "<td bgcolor='#ffffff'><font size='-1' face='Arial,Helvetica' color='#000000'><b>%s (%s)</b></font></td>"
                      "</tr>\n"
                      "</table>\n</p>\n",
-                 n->url,
-                 cachetype[0] == 's' ? "Search" : (cachetype[0] == 'c' ? "Compares" : "DNCompares")), r);
+                 buf,
+                 cachetype[0] == 'm'? "Main" : 
+                                  (cachetype[0] == 's' ? "Search" : 
+                                   (cachetype[0] == 'c' ? "Compares" : "DNCompares"))), r);
             
             switch (cachetype[0]) {
+                case 'm':
+                    if (util_ldap_cache->marktime) {
+                        apr_ctime(date_str, util_ldap_cache->marktime);
+                    }
+                    else
+                        date_str[0] = 0;
+
+                    ap_rputs(apr_psprintf(r->pool, 
+                            "<p>\n"
+                            "<table border='0'>\n"
+                            "<tr>\n"
+                            "<td bgcolor='#000000'><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>Size:</b></font></td>"
+                            "<td bgcolor='#ffffff'><font size='-1' face='Arial,Helvetica' color='#000000'><b>%ld</b></font></td>"
+                            "</tr>\n"
+                            "<tr>\n"
+                            "<td bgcolor='#000000'><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>Max Entries:</b></font></td>"
+                            "<td bgcolor='#ffffff'><font size='-1' face='Arial,Helvetica' color='#000000'><b>%ld</b></font></td>"
+                            "</tr>\n"
+                            "<tr>\n"
+                            "<td bgcolor='#000000'><font size='-1' face='Arial,Helvetica' color='#ffffff'><b># Entries:</b></font></td>"
+                            "<td bgcolor='#ffffff'><font size='-1' face='Arial,Helvetica' color='#000000'><b>%ld</b></font></td>"
+                            "</tr>\n"
+                            "<tr>\n"
+                            "<td bgcolor='#000000'><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>Full Mark:</b></font></td>"
+                            "<td bgcolor='#ffffff'><font size='-1' face='Arial,Helvetica' color='#000000'><b>%ld</b></font></td>"
+                            "</tr>\n"
+                            "<tr>\n"
+                            "<td bgcolor='#000000'><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>Full Mark Time:</b></font></td>"
+                            "<td bgcolor='#ffffff'><font size='-1' face='Arial,Helvetica' color='#000000'><b>%s</b></font></td>"
+                            "</tr>\n"
+                            "</table>\n</p>\n",
+                        util_ldap_cache->size,
+                        util_ldap_cache->maxentries,
+                        util_ldap_cache->numentries,
+                        util_ldap_cache->fullmark,
+                        date_str), r);
+
+                    ap_rputs("<p>\n"
+                             "<table border='0'>\n"
+                             "<tr bgcolor='#000000'>\n"
+                             "<td><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>LDAP URL</b></font></td>"
+                             "<td><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>Size</b></font></td>"
+                             "<td><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>Max Entries</b></font></td>"
+                             "<td><font size='-1' face='Arial,Helvetica' color='#ffffff'><b># Entries</b></font></td>"
+                             "<td><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>Full Mark</b></font></td>"
+                             "<td><font size='-1' face='Arial,Helvetica' color='#ffffff'><b>Full Mark Time</b></font></td>"
+                             "</tr>\n", r
+                            );
+                    for (i=0; i < util_ldap_cache->size; ++i) {
+                        for (p = util_ldap_cache->nodes[i]; p != NULL; p = p->next) {
+
+                            (*util_ldap_cache->display)(r, util_ldap_cache, p->payload);
+                        }
+                    }
+                    ap_rputs("</table>\n</p>\n", r);
+                    
+
+                    break;
                 case 's':
                     ap_rputs("<p>\n"
                              "<table border='0'>\n"
@@ -635,7 +701,8 @@ char *util_ald_cache_display(request_rec *r, util_ldap_state_t *st)
                 );
 
 
-        buf = util_ald_cache_display_stats(r, st->util_ldap_cache, "LDAP URL Cache", NULL);
+        id1 = apr_psprintf(pool, argfmt, "main", 0, 0);
+        buf = util_ald_cache_display_stats(r, st->util_ldap_cache, "LDAP URL Cache", id1);
     
         for (i=0; i < util_ldap_cache->size; ++i) {
             for (p = util_ldap_cache->nodes[i],j=0; p != NULL; p = p->next,j++) {