r730 - trunk/varnish-cache/bin/varnishd

phk at projects.linpro.no phk at projects.linpro.no
Mon Aug 7 18:15:00 CEST 2006


Author: phk
Date: 2006-08-07 18:15:00 +0200 (Mon, 07 Aug 2006)
New Revision: 730

Modified:
   trunk/varnish-cache/bin/varnishd/mgt_cli.c
Log:
Handle CLI trouble with the childproc


Modified: trunk/varnish-cache/bin/varnishd/mgt_cli.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/mgt_cli.c	2006-08-07 16:14:37 UTC (rev 729)
+++ trunk/varnish-cache/bin/varnishd/mgt_cli.c	2006-08-07 16:15:00 UTC (rev 730)
@@ -86,7 +86,6 @@
 	free(p);
 
 	i = cli_readres(cli_i, &u, &p, 3.0);
-	assert(i == 0);
 	cli_result(cli, u);
 	cli_out(cli, "%s", p);
 	free(p);
@@ -174,7 +173,7 @@
 mgt_cli_askchild(unsigned *status, char **resp, const char *fmt, ...)
 {
 	char *p;
-	int i;
+	int i, j;
 	va_list ap;
 	unsigned u;
 
@@ -186,9 +185,16 @@
 	if (i < 0)
 		return (i);
 	assert(p[i - 1] == '\n');
-	i = write(cli_o, p, strlen(p));
-	assert(i == strlen(p));
+	j = write(cli_o, p, i);
 	free(p);
+	if (j != i) {
+		free(p);
+		if (status != NULL)
+			*status = CLIS_COMMS;
+		if (resp != NULL)
+			*resp = strdup("CLI communication error");
+		return (CLIS_COMMS);
+	}
 
 	i = cli_readres(cli_i, &u, resp, 3.0);
 	assert(i == 0);




More information about the varnish-commit mailing list