r512 - trunk/varnish-cache/bin/varnishd
phk at projects.linpro.no
phk at projects.linpro.no
Thu Jul 20 10:29:14 CEST 2006
Author: phk
Date: 2006-07-20 10:29:14 +0200 (Thu, 20 Jul 2006)
New Revision: 512
Modified:
trunk/varnish-cache/bin/varnishd/cache.h
trunk/varnish-cache/bin/varnishd/cache_center.c
trunk/varnish-cache/bin/varnishd/cache_response.c
Log:
Remove explicit worker thread arguments.
Modified: trunk/varnish-cache/bin/varnishd/cache.h
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache.h 2006-07-20 08:25:53 UTC (rev 511)
+++ trunk/varnish-cache/bin/varnishd/cache.h 2006-07-20 08:29:14 UTC (rev 512)
@@ -335,10 +335,10 @@
#endif
/* cache_response.c */
-void RES_Error(struct worker *w, struct sess *sp, int error, const char *msg);
+void RES_Error(struct sess *sp, int error, const char *msg);
void RES_Flush(struct sess *sp);
void RES_Write(struct sess *sp, void *ptr, size_t len);
-void RES_WriteObj(struct worker *w, struct sess *sp);
+void RES_WriteObj(struct sess *sp);
/* cache_vcl.c */
void VCL_Init(void);
Modified: trunk/varnish-cache/bin/varnishd/cache_center.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_center.c 2006-07-20 08:25:53 UTC (rev 511)
+++ trunk/varnish-cache/bin/varnishd/cache_center.c 2006-07-20 08:29:14 UTC (rev 512)
@@ -61,7 +61,7 @@
cnt_deliver(struct sess *sp)
{
- RES_WriteObj(sp->wrk, sp);
+ RES_WriteObj(sp);
HSH_Deref(sp->obj);
sp->obj = NULL;
sp->step = STP_DONE;
@@ -253,7 +253,7 @@
sp->handling = VCL_RET_PASS;
if (sp->handling == VCL_RET_DELIVER) {
- RES_WriteObj(sp->wrk, sp);
+ RES_WriteObj(sp);
HSH_Deref(sp->obj);
sp->obj = NULL;
sp->step = STP_DONE;
@@ -522,7 +522,7 @@
done = http_DissectRequest(sp->http, sp->fd);
if (done != 0) {
- RES_Error(sp->wrk, sp, done, NULL);
+ RES_Error(sp, done, NULL);
sp->step = STP_DONE;
return (0);
}
Modified: trunk/varnish-cache/bin/varnishd/cache_response.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_response.c 2006-07-20 08:25:53 UTC (rev 511)
+++ trunk/varnish-cache/bin/varnishd/cache_response.c 2006-07-20 08:29:14 UTC (rev 512)
@@ -15,10 +15,13 @@
/*--------------------------------------------------------------------*/
void
-RES_Error(struct worker *w, struct sess *sp, int error, const char *msg)
+RES_Error(struct sess *sp, int error, const char *msg)
{
char buf[40];
+ struct sbuf *sb;
+ sb = sp->wrk->sb;
+
if (msg == NULL) {
switch (error) {
case 400: msg = "Bad Request"; break;
@@ -27,11 +30,11 @@
}
}
- sbuf_clear(w->sb);
- sbuf_printf(w->sb, "HTTP/1.1 %03d %s\r\n", error, msg);
+ sbuf_clear(sb);
+ sbuf_printf(sb, "HTTP/1.1 %03d %s\r\n", error, msg);
TIM_format(sp->t_req, buf);
- sbuf_printf(w->sb, "Date: %s\r\n", buf);
- sbuf_cat(w->sb,
+ sbuf_printf(sb, "Date: %s\r\n", buf);
+ sbuf_cat(sb,
"Server: Varnish\r\n"
"Connection: close\r\n"
"content-Type: text/html; charset=iso-8859-1\r\n"
@@ -39,30 +42,30 @@
"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\r\n"
"<HTML>\r\n"
" <HEAD>\r\n");
- sbuf_printf(w->sb, " <TITLE>%03d %s</TITLE>\r\n", error, msg);
- sbuf_cat(w->sb,
+ sbuf_printf(sb, " <TITLE>%03d %s</TITLE>\r\n", error, msg);
+ sbuf_cat(sb,
" </HEAD>\r\n"
" <BODY>\r\n");
- sbuf_printf(w->sb, " <H1>Error %03d %s</H1>\r\n", error, msg);
+ sbuf_printf(sb, " <H1>Error %03d %s</H1>\r\n", error, msg);
switch(error) {
case 400:
- sbuf_cat(w->sb,
+ sbuf_cat(sb,
" Your HTTP protocol request did not make sense.\r\n");
break;
case 500:
default:
- sbuf_cat(w->sb,
+ sbuf_cat(sb,
" Something unexpected happened.\r\n");
break;
}
- sbuf_cat(w->sb,
+ sbuf_cat(sb,
" <P>\r\n"
" <I>\r\n"
" <A href=\"http://varnish.linpro.no/\">Varnish</A>\r\n"
" </BODY>\r\n"
"</HTML>\r\n");
- sbuf_finish(w->sb);
- RES_Write(sp, sbuf_data(w->sb), sbuf_len(w->sb));
+ sbuf_finish(sb);
+ RES_Write(sp, sbuf_data(sb), sbuf_len(sb));
RES_Flush(sp);
vca_close_session(sp, msg);
}
@@ -105,29 +108,32 @@
}
void
-RES_WriteObj(struct worker *w, struct sess *sp)
+RES_WriteObj(struct sess *sp)
{
struct storage *st;
+ struct sbuf *sb;
unsigned u = 0;
uint64_t bytes = 0;
+ sb = sp->wrk->sb;
+
VSL(SLT_Status, sp->fd, "%u", sp->obj->response);
VSL(SLT_Length, sp->fd, "%u", sp->obj->len);
RES_Write(sp, sp->obj->header, strlen(sp->obj->header));
- sbuf_clear(w->sb);
- sbuf_printf(w->sb, "Age: %u\r\n",
+ sbuf_clear(sb);
+ sbuf_printf(sb, "Age: %u\r\n",
sp->obj->age + sp->t_req - sp->obj->entered);
- sbuf_printf(w->sb, "Via: 1.1 varnish\r\n");
- sbuf_printf(w->sb, "X-Varnish: xid %u\r\n", sp->obj->xid);
+ sbuf_printf(sb, "Via: 1.1 varnish\r\n");
+ sbuf_printf(sb, "X-Varnish: xid %u\r\n", sp->obj->xid);
if (strcmp(sp->http->proto, "HTTP/1.1"))
- sbuf_printf(w->sb, "Connection: close\r\n");
- sbuf_printf(w->sb, "\r\n");
- sbuf_finish(w->sb);
- RES_Write(sp, sbuf_data(w->sb), sbuf_len(w->sb));
- bytes += sbuf_len(w->sb);
+ sbuf_printf(sb, "Connection: close\r\n");
+ sbuf_printf(sb, "\r\n");
+ sbuf_finish(sb);
+ RES_Write(sp, sbuf_data(sb), sbuf_len(sb));
+ bytes += sbuf_len(sb);
/* XXX: conditional request handling */
if (!strcmp(sp->http->req, "GET")) {
TAILQ_FOREACH(st, &sp->obj->store, list) {
More information about the varnish-commit
mailing list