Merge branch 'sp/maint-http-backend-die-triggers-die-recursively'

* sp/maint-http-backend-die-triggers-die-recursively:
  http-backend: Don't infinite loop during die()
maint
Junio C Hamano 2010-04-03 12:28:43 -07:00
commit 7b1cb5c40e
1 changed files with 11 additions and 7 deletions

View File

@ -538,15 +538,19 @@ static void service_rpc(char *service_name)


static NORETURN void die_webcgi(const char *err, va_list params) static NORETURN void die_webcgi(const char *err, va_list params)
{ {
char buffer[1000]; static int dead;


http_status(500, "Internal Server Error"); if (!dead) {
hdr_nocache(); char buffer[1000];
end_headers(); dead = 1;


vsnprintf(buffer, sizeof(buffer), err, params); vsnprintf(buffer, sizeof(buffer), err, params);
fprintf(stderr, "fatal: %s\n", buffer); fprintf(stderr, "fatal: %s\n", buffer);
exit(0); http_status(500, "Internal Server Error");
hdr_nocache();
end_headers();
}
exit(0); /* we successfully reported a failure ;-) */
} }


static char* getdir(void) static char* getdir(void)