--- squid-2.2.DEVEL3v3a/src/delay_pools.c	Sun Feb 14 08:35:01 1999
+++ squid-2.2.DEVEL3v3/src/delay_pools.c	Wed Mar 10 12:08:41 1999
@@ -38,6 +38,12 @@
 #if DELAY_POOLS
 #include "squid.h"
 
+#define HTML_FONT_RED		"<font color=\"#FF0000\">"
+#define HTML_FONT_YELLOW	"<font color=\"#FFFF00\">"
+#define HTML_FONT_END		"</font>"
+#define HTML_BOLD			"<b>"
+#define HTML_BOLD_END		"</b>"
+
 struct _class1DelayPool {
     int aggregate;
 };
@@ -560,6 +566,15 @@
     storeAppendPrintf(sentry, "\tAggregate:\n");
     storeAppendPrintf(sentry, "\t\tMax: %d\n", rate->aggregate.max_bytes);
     storeAppendPrintf(sentry, "\t\tRestore: %d\n", rate->aggregate.restore_bps);
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+	if( ag < rate->aggregate.max_bytes )
+		if( ag < (rate->aggregate.max_bytes >> 1) ) /* 0% ... 50% */
+			storeAppendPrintf(sentry, "\t\tCurrent: " HTML_FONT_RED HTML_BOLD
+				"%d" HTML_BOLD_END HTML_FONT_END "\n\n", ag);
+		else /* 50% ... 100% */
+			storeAppendPrintf(sentry, "\t\tCurrent: " HTML_FONT_YELLOW HTML_BOLD
+				"%d" HTML_BOLD_END HTML_FONT_END "\n\n", ag);
+	else /* 100% */
     storeAppendPrintf(sentry, "\t\tCurrent: %d\n\n", ag);
 }
 
@@ -594,12 +609,36 @@
     for (i = 0;; i++) {
 	if (class2->individual_map[i] == 255)
 	    break;
-	storeAppendPrintf(sentry, "%d:%d ", class2->individual_map[i],
-	    class2->individual[i]);
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+		if( class2->individual[i] < rate->individual.max_bytes )
+			if( class2->individual[i] < ( rate->individual.max_bytes >> 1) ) /* 0% ... 50% */
+				storeAppendPrintf(sentry, HTML_FONT_RED HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class2->individual_map[i], class2->individual[i]);
+			else /* 50% ... 100% */
+				storeAppendPrintf(sentry, HTML_FONT_YELLOW HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class2->individual_map[i], class2->individual[i]);
+		else /* 100% */
+			storeAppendPrintf(sentry, "%d:%d ",
+				class2->individual_map[i], class2->individual[i]);
 	shown = 1;
     }
     if (class2->individual_255_used) {
-	storeAppendPrintf(sentry, "%d:%d ", 255, class2->individual[255]);
+		i = 255;
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+		if( class2->individual[i] < rate->individual.max_bytes )
+			if( class2->individual[i] < ( rate->individual.max_bytes >> 1) ) /* 0% ... 50% */
+				storeAppendPrintf(sentry, HTML_FONT_RED HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class2->individual_map[i], class2->individual[i]);
+			else /* 50% ... 100% */
+				storeAppendPrintf(sentry, HTML_FONT_YELLOW HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class2->individual_map[i], class2->individual[i]);
+		else /* 100% */
+			storeAppendPrintf(sentry, "%d:%d ",
+				class2->individual_map[i], class2->individual[i]);
 	shown = 1;
     }
     if (!shown)
@@ -627,12 +666,36 @@
 	for (i = 0;; i++) {
 	    if (class3->network_map[i] == 255)
 		break;
-	    storeAppendPrintf(sentry, "%d:%d ", class3->network_map[i],
-		class3->network[i]);
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+		if( class3->network[i] < rate->network.max_bytes )
+			if( class3->network[i] < ( rate->network.max_bytes >> 1) ) /* 0% ... 50% */
+				storeAppendPrintf(sentry, HTML_FONT_RED HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->network_map[i], class3->network[i]);
+			else /* 50% ... 100% */
+				storeAppendPrintf(sentry, HTML_FONT_YELLOW HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->network_map[i], class3->network[i]);
+		else /* 100% */
+		    storeAppendPrintf(sentry, "%d:%d ",
+				class3->network_map[i], class3->network[i]);
 	    shown = 1;
 	}
 	if (class3->network_255_used) {
-	    storeAppendPrintf(sentry, "%d:%d ", 255, class3->network[255]);
+		i = 255;
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+		if( class3->network[i] < rate->network.max_bytes )
+			if( class3->network[i] < ( rate->network.max_bytes >> 1) ) /* 0% ... 50% */
+				storeAppendPrintf(sentry, HTML_FONT_RED HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->network_map[i], class3->network[i]);
+			else /* 50% ... 100% */
+				storeAppendPrintf(sentry, HTML_FONT_YELLOW HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->network_map[i], class3->network[i]);
+		else /* 100% */
+		    storeAppendPrintf(sentry, "%d:%d ",
+				class3->network_map[i], class3->network[i]);
 	    shown = 1;
 	}
 	if (!shown)
@@ -655,11 +718,35 @@
 	for (j = 0;; j++) {
 	    if (class3->individual_map[i][j] == 255)
 		break;
-	    storeAppendPrintf(sentry, "%d:%d ", class3->individual_map[i][j],
-		class3->individual[(i << 8) | j]);
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+		if( class3->individual[(i << 8) | j] < rate->individual.max_bytes )
+			if( class3->individual[(i << 8) | j] < ( rate->individual.max_bytes >> 1) ) /* 0% ... 50% */
+				storeAppendPrintf(sentry, HTML_FONT_RED HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->individual_map[i][j], class3->individual[(i << 8) | j]);
+			else /* 50% ... 100% */
+				storeAppendPrintf(sentry, HTML_FONT_YELLOW HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->individual_map[i][j], class3->individual[(i << 8) | j]);
+		else /* 100% */
+	    	storeAppendPrintf(sentry, "%d:%d ",
+				class3->individual_map[i][j], class3->individual[(i << 8) | j]);
 	}
 	if (class3->individual_255_used[i / 8] & (1 << (i % 8))) {
-	    storeAppendPrintf(sentry, "%d:%d ", 255, class3->individual[(i << 8) | 255]);
+		j = 255;
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+		if( class3->individual[(i << 8) | j] < rate->individual.max_bytes )
+			if( class3->individual[(i << 8) | j] < ( rate->individual.max_bytes >> 1) ) /* 0% ... 50% */
+				storeAppendPrintf(sentry, HTML_FONT_RED HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->individual_map[i][j], class3->individual[(i << 8) | j]);
+			else /* 50% ... 100% */
+				storeAppendPrintf(sentry, HTML_FONT_YELLOW HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->individual_map[i][j], class3->individual[(i << 8) | j]);
+		else /* 100% */
+	    	storeAppendPrintf(sentry, "%d:%d ",
+				class3->individual_map[i][j], class3->individual[(i << 8) | j]);
 	}
 	storeAppendPrintf(sentry, "\n");
     }
@@ -669,11 +756,36 @@
 	for (j = 0;; j++) {
 	    if (class3->individual_map[255][j] == 255)
 		break;
-	    storeAppendPrintf(sentry, "%d:%d ", class3->individual_map[255][j],
-		class3->individual[(255 << 8) | j]);
+		i = 255;
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+		if( class3->individual[(i << 8) | j] < rate->individual.max_bytes )
+			if( class3->individual[(i << 8) | j] < ( rate->individual.max_bytes >> 1) ) /* 0% ... 50% */
+				storeAppendPrintf(sentry, HTML_FONT_RED HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->individual_map[i][j], class3->individual[(i << 8) | j]);
+			else /* 50% ... 100% */
+				storeAppendPrintf(sentry, HTML_FONT_YELLOW HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->individual_map[i][j], class3->individual[(i << 8) | j]);
+		else /* 100% */
+	    	storeAppendPrintf(sentry, "%d:%d ",
+				class3->individual_map[i][j], class3->individual[(i << 8) | j]);
 	}
 	if (class3->individual_255_used[255 / 8] & (1 << (255 % 8))) {
-	    storeAppendPrintf(sentry, "%d:%d ", 255, class3->individual[(255 << 8) | 255]);
+		i = j = 255;
+/* Show some colors in the delay pools report by Pedro Ribeiro<pribeiro@isel.pt> */
+		if( class3->individual[(i << 8) | j] < rate->individual.max_bytes )
+			if( class3->individual[(i << 8) | j] < ( rate->individual.max_bytes >> 1) ) /* 0% ... 50% */
+				storeAppendPrintf(sentry, HTML_FONT_RED HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->individual_map[i][j], class3->individual[(i << 8) | j]);
+			else /* 50% ... 100% */
+				storeAppendPrintf(sentry, HTML_FONT_YELLOW HTML_BOLD "%d:%d "
+					HTML_BOLD_END HTML_FONT_END,
+					class3->individual_map[i][j], class3->individual[(i << 8) | j]);
+		else /* 100% */
+	    	storeAppendPrintf(sentry, "%d:%d ",
+				class3->individual_map[i][j], class3->individual[(i << 8) | j]);
 	}
 	storeAppendPrintf(sentry, "\n");
     }

