[master] db448e5 Make VUT_Error() always exit and insist on non-zero exit status.

Poul-Henning Kamp phk at FreeBSD.org
Fri Apr 28 08:46:05 CEST 2017


commit db448e5677135bf18056852867d1fe42c5ddc969
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Fri Apr 28 06:43:53 2017 +0000

    Make VUT_Error() always exit and insist on non-zero exit status.
    
    Use fprintf(stderr,...) for progress messages.
    I doubt we need a VUT_Msg() for that, given that only one use was
    from outside vut.c, and that is probably an API mistake.

diff --git a/bin/varnishstat/varnishstat.c b/bin/varnishstat/varnishstat.c
index 713b473..c1f152e 100644
--- a/bin/varnishstat/varnishstat.c
+++ b/bin/varnishstat/varnishstat.c
@@ -326,8 +326,8 @@ main(int argc, char * const *argv)
 		if (!i)
 			break;
 		if (isnan(t_start) && t_arg > 0.) {
-			VUT_Error(0, "Can't open log -"
-			    " retrying for %.0f seconds", t_arg);
+			fprintf(stderr, "Can't open log -"
+			    " retrying for %.0f seconds\n", t_arg);
 			t_start = VTIM_real();
 		}
 		if (t_arg <= 0.)
diff --git a/include/vut.h b/include/vut.h
index d1e6ab3..5825994 100644
--- a/include/vut.h
+++ b/include/vut.h
@@ -67,8 +67,9 @@ struct VUT {
 
 extern struct VUT VUT;
 
+//lint -sem(VUT_Error, r_no)
 void VUT_Error(int status, const char *fmt, ...)
-	__v_printflike(2, 3);
+	__v_printflike(2, 3) __attribute__((__noreturn__));
 
 int VUT_g_Arg(const char *arg);
 
diff --git a/lib/libvarnishapi/vut.c b/lib/libvarnishapi/vut.c
index a0df661..3fd66ef 100644
--- a/lib/libvarnishapi/vut.c
+++ b/lib/libvarnishapi/vut.c
@@ -115,14 +115,14 @@ VUT_Error(int status, const char *fmt, ...)
 {
 	va_list ap;
 
+	assert(status != 0);
 	AN(fmt);
 	va_start(ap, fmt);
 	vfprintf(stderr, fmt, ap);
 	va_end(ap);
 	fprintf(stderr, "\n");
 
-	if (status)
-		exit(status);
+	exit(status);
 }
 
 int
@@ -278,8 +278,8 @@ VUT_Setup(void)
 				break;
 
 			if (isnan(t_start) && VUT.t_arg > 0.) {
-				VUT_Error(0, "Cannot open log -"
-				    " retrying for %.0f seconds", VUT.t_arg);
+				fprintf(stderr, "Cannot open log -"
+				    " retrying for %.0f seconds\n", VUT.t_arg);
 				t_start = VTIM_real();
 			}
 			VSM_Close(VUT.vsm);
@@ -299,7 +299,7 @@ VUT_Setup(void)
 			else
 				VUT_Error(1, "%s", VSL_Error(VUT.vsl));
 		} else if (!isnan(t_start))
-			VUT_Error(0, "Log opened");
+			fprintf(stderr, "Log opened\n");
 	}
 
 	if (c)
@@ -394,7 +394,7 @@ VUT_Main(void)
 			}
 			VSLQ_SetCursor(VUT.vslq, &c);
 			AZ(c);
-			VUT_Error(0, "Log reacquired");
+			fprintf(stderr, "Log reacquired\n");
 		}
 
 		i = VSLQ_Dispatch(VUT.vslq, vut_dispatch, NULL);
@@ -424,10 +424,10 @@ VUT_Main(void)
 
 		if (i == -2)
 			/* Abandoned */
-			VUT_Error(0, "Log abandoned");
+			fprintf(stderr, "Log abandoned\n");
 		else if (i < -2)
 			/* Overrun */
-			VUT_Error(0, "Log overrun");
+			fprintf(stderr, "Log overrun\n");
 
 		VSM_Close(VUT.vsm);
 	}



More information about the varnish-commit mailing list