r440 - trunk/varnish-cache/bin/varnishtester

phk at projects.linpro.no phk at projects.linpro.no
Tue Jul 11 21:16:42 CEST 2006


Author: phk
Date: 2006-07-11 21:16:42 +0200 (Tue, 11 Jul 2006)
New Revision: 440

Modified:
   trunk/varnish-cache/bin/varnishtester/varnishtester.c
Log:
If the first char of the serve string is '!', close connection after
sending string.



Modified: trunk/varnish-cache/bin/varnishtester/varnishtester.c
===================================================================
--- trunk/varnish-cache/bin/varnishtester/varnishtester.c	2006-07-11 19:10:05 UTC (rev 439)
+++ trunk/varnish-cache/bin/varnishtester/varnishtester.c	2006-07-11 19:16:42 UTC (rev 440)
@@ -41,6 +41,7 @@
 struct serv {
 	TAILQ_ENTRY(serv)	list;
 	char			*data;
+	int			close;
 };
 
 static TAILQ_HEAD(,serv) serv_head = TAILQ_HEAD_INITIALIZER(serv_head);
@@ -57,11 +58,13 @@
 		p = evbuffer_readline(bev->input);
 		if (p == NULL)
 			return;
-		printf("A: <<%s>>\n", p);
+		printf("B: <<%s>>\n", p);
 		if (*p == '\0') {
 			sp = TAILQ_FIRST(&serv_head);
 			assert(sp != NULL);
 			write(*ip, sp->data, strlen(sp->data));
+			if (sp->close)
+				shutdown(*ip, SHUT_WR);
 			if (TAILQ_NEXT(sp, list) != NULL) {
 				TAILQ_REMOVE(&serv_head, sp, list);
 				free(sp->data);	
@@ -76,8 +79,8 @@
 {
 	int *ip;
 
+	(void)what;
 	ip = arg;
-	printf("%s(%p, 0x%x, %p)\n", __func__, bev, what, arg);
 	bufferevent_disable(bev, EV_READ);
 	bufferevent_free(bev);
 	close(*ip);
@@ -170,7 +173,12 @@
 	for (i = 0; av[i] != NULL; i++) {
 		sp = calloc(sizeof *sp, 1);
 		assert(sp != NULL);
-		sp->data = strdup(av[i]);
+		if (av[i][0] == '!') {
+			sp->close = 1;
+			sp->data = strdup(av[i] + 1);
+		} else {
+			sp->data = strdup(av[i]);
+		}
 		assert(sp->data != NULL);
 		TAILQ_INSERT_TAIL(&serv_head, sp, list);
 	}




More information about the varnish-commit mailing list