[3.0] 2b1905e works

Lasse Karstensen lkarsten at varnish-cache.org
Thu Nov 3 19:02:20 CET 2011


commit 2b1905e67eb6b9d4011555cb71268ae7ea398d79
Author: Lasse Karstensen <lasse at varnish-software.com>
Date:   Fri Oct 28 15:48:31 2011 +0200

    works

diff --git a/bin/varnishncsa/varnishncsa.c b/bin/varnishncsa/varnishncsa.c
index dbde1b4..bb954eb 100644
--- a/bin/varnishncsa/varnishncsa.c
+++ b/bin/varnishncsa/varnishncsa.c
@@ -725,6 +725,10 @@ h_ncsa(void *priv, enum VSL_tag_e tag, unsigned fd,
 		case '{': {
 			const char *h, *tmp;
 			char fname[100], type;
+
+			// maybe
+			const char *key2;
+
 			tmp = p;
 			type = 0;
 			while (*tmp != '\0' && *tmp != '}')
@@ -761,11 +765,50 @@ h_ncsa(void *priv, enum VSL_tag_e tag, unsigned fd,
 					VSB_cat(os, (lp->df_handling ? lp->df_handling : "-"));
 					p = tmp;
 					break;
-				} else if (strcmp(fname, "Varnish:vcllog") == 0) {
-					VSB_cat(os, (lp->log1 ? lp->log1 : "-"));
-					p = tmp;
-					break;
+//				} else if (strcmp(fname, "Varnish:vcllog") == 0) {
+//					VSB_cat(os, (lp->log1 ? lp->log1 : "-"));
+//					p = tmp;
+//					break;
 				}
+			case 'l':
+                                // std.log("Foo: bar")
+                                // %{Foo}l 
+			        printf("case l was hit with fname: %s\n", fname);
+				// Extract "Foo" from fname
+				char *delim;
+			        char keyword[100];
+				char *kwptr;
+				char *startpos;
+
+				// keyword = "init";
+
+                                delim = strchr(fname, ':');
+				printf(": found at %d\n", delim - fname);
+				// startpos = delim - fname;
+
+				// buffer overflow all the way.
+				startpos = strncpy(keyword, delim+1, sizeof keyword);
+				printf("meh");
+				printf("startpos is: %d\n", startpos);
+
+				printf("rest is: %s\n", delim+1); // startpos);
+				printf("keyword is: %s\n", keyword);
+
+				//keyword = delim + 1;
+
+//				printf("split2: %d\n", *split2);
+
+ //                               key2 = trimline(fname, split2);
+				//&&printf("key: %s\n", key2);
+                                //keyword = strcpy("bar"; // trimline(fname+1, split);
+				//keyword = "foo";
+
+                                //strcpy(key2, "bar"); // trimline(fname+1, split);
+                                h = vcl_log(lp, keyword); 
+                                VSB_cat(os, h ? h : "-");
+                                p = tmp;
+                                break;
+///////
 
 			default:
 				fprintf(stderr, "Unknown format starting at: %s\n", --p);



More information about the varnish-commit mailing list