aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmail-remote/qmailr_error.c
blob: 0f500e203c08f7eba0b1cc10ac70ba095911d814 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/* ISC license. */

#include <string.h>
#include <unistd.h>
#include <errno.h>

#include <skalibs/buffer.h>

#include <smtpd-starttls-proxy/config.h>

void qmailr_warnv (char code, char const *const *v, unsigned int n)
{
  buffer_put(buffer_1, &code, 1) ;
  while (n--) buffer_puts(buffer_1, *v++) ;
  buffer_putflush(buffer_1, "\n", 2) ;
}

void qmailr_diev (char code, char const *const *v, unsigned int n)
{
  qmailr_warnv(code, v, n) ;
  _exit(0) ;
}

void qmailr_dievsys (char const *const *v, unsigned int n)
{
  char const *se = strerror(errno) ;
  buffer_put(buffer_1, "Z", 1) ;
  while (n--) buffer_puts(buffer_1, *v++) ;
  buffer_put(buffer_1, ": ", 2) ;
  buffer_puts(buffer_1, se) ;
  buffer_putflush(buffer_1, "\n", 2) ;
  _exit(0) ;
}