1ef3853bbSDamien Miller /* public domain */
2ef3853bbSDamien Miller 
30f938f99SDamien Miller #include "includes.h"
40f938f99SDamien Miller 
5ef3853bbSDamien Miller #include <stdlib.h>
6ef3853bbSDamien Miller #include <stdio.h>
7ef3853bbSDamien Miller #include <stdarg.h>
8ef3853bbSDamien Miller #include <unistd.h>
9ef3853bbSDamien Miller 
10d55dfed3SDamien Miller #include "log.h"
11d55dfed3SDamien Miller 
12ef3853bbSDamien Miller void
sshfatal(const char * file,const char * func,int line,int showfunc,LogLevel level,const char * suffix,const char * fmt,...)13999d7cb7SDamien Miller sshfatal(const char *file, const char *func, int line, int showfunc,
14*816036f1Sdjm@openbsd.org     LogLevel level, const char *suffix, const char *fmt, ...)
15ef3853bbSDamien Miller {
16ef3853bbSDamien Miller 	va_list ap;
17ef3853bbSDamien Miller 
18999d7cb7SDamien Miller 	if (showfunc)
19999d7cb7SDamien Miller 		fprintf(stderr, "%s: ", func);
20ef3853bbSDamien Miller 	va_start(ap, fmt);
21ef3853bbSDamien Miller 	vfprintf(stderr, fmt, ap);
22ef3853bbSDamien Miller 	va_end(ap);
23*816036f1Sdjm@openbsd.org 	if (suffix != NULL)
24*816036f1Sdjm@openbsd.org 		fprintf(stderr, ": %s", suffix);
25ef3853bbSDamien Miller 	fputc('\n', stderr);
26ef3853bbSDamien Miller 	_exit(1);
27ef3853bbSDamien Miller }
28