From 6561d0774301ec619c76488ec73394e3d624f746 Mon Sep 17 00:00:00 2001 From: phk Date: Tue, 11 Jul 2006 19:16:42 +0000 Subject: [PATCH] If the first char of the serve string is '!', close connection after sending string. git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@440 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- varnish-cache/bin/varnishtester/varnishtester.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/varnish-cache/bin/varnishtester/varnishtester.c b/varnish-cache/bin/varnishtester/varnishtester.c index aac1b088..7808bc81 100644 --- a/varnish-cache/bin/varnishtester/varnishtester.c +++ b/varnish-cache/bin/varnishtester/varnishtester.c @@ -41,6 +41,7 @@ static struct bufferevent *e_racc; 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 @@ rd_acc(struct bufferevent *bev, void *arg) 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 @@ ex_acc(struct bufferevent *bev, short what, void *arg) { 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 @@ cmd_serve(char **av) 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); } -- 2.39.5