/mandos/trunk

To get this branch, use:
bzr branch http://bzr.recompile.se/loggerhead/mandos/trunk

« back to all changes in this revision

Viewing changes to plugins.d/password-prompt.c

  • Committer: Björn Påhlsson
  • Date: 2011-06-19 20:25:38 UTC
  • mto: This revision was merged to the branch mainline in revision 485.
  • Revision ID: belorn@fukt.bsnet.se-20110619202538-0js072v8fso12u07
prepended mandos plugin to error messages in each plugin. Added a better way in TODO.

Show diffs side-by-side

added added

removed removed

Lines of Context:
41
41
                                   getenv(), free() */
42
42
#include <dirent.h>             /* scandir(), alphasort() */
43
43
#include <stdio.h>              /* fprintf(), stderr, getline(),
44
 
                                   stdin, feof(), fputc()
 
44
                                   stdin, feof(), fputc(), vfprintf(), vasprintf()
45
45
                                */
46
46
#include <errno.h>              /* errno, EBADF, ENOTTY, EINVAL,
47
47
                                   EFAULT, EFBIG, EIO, ENOSPC, EINTR
51
51
#include <stdbool.h>            /* bool, false, true */
52
52
#include <inttypes.h>           /* strtoumax() */
53
53
#include <sys/stat.h>           /* struct stat, lstat(), open() */
54
 
#include <string.h>             /* strlen, rindex, memcmp */
 
54
#include <string.h>             /* strlen, rindex, memcmp, strerror() */
55
55
#include <argp.h>               /* struct argp_option, struct
56
56
                                   argp_state, struct argp,
57
57
                                   argp_parse(), error_t,
60
60
#include <sysexits.h>           /* EX_SOFTWARE, EX_OSERR,
61
61
                                   EX_UNAVAILABLE, EX_IOERR, EX_OK */
62
62
#include <fcntl.h>              /* open() */
 
63
#include <stdarg.h>             /* va_list, va_start(), ... */
63
64
 
64
65
volatile sig_atomic_t quit_now = 0;
65
66
int signal_received;
70
71
/* Needed for conflict resolution */
71
72
const char plymouth_name[] = "plymouthd";
72
73
 
 
74
/* Function to use when printing errors */
 
75
void error_plus(int status, int errnum, const char *formatstring, ...){
 
76
  va_list ap;
 
77
  char *text;
 
78
  int ret;
 
79
  
 
80
  va_start(ap, formatstring);
 
81
  ret = vasprintf(&text, formatstring, ap);
 
82
  if (ret == -1){
 
83
    fprintf(stderr, "Mandos plugin %s: ", program_invocation_short_name);
 
84
    vfprintf(stderr, formatstring, ap);
 
85
    fprintf(stderr, ": ");
 
86
    fprintf(stderr, "%s\n", strerror(errnum));
 
87
    error(status, errno, "vasprintf while printing error");
 
88
    return;
 
89
  }
 
90
  fprintf(stderr, "Mandos plugin ");
 
91
  error(status, errnum, "%s", text);
 
92
  free(text);
 
93
}
 
94
 
73
95
static void termination_handler(int signum){
74
96
  if(quit_now){
75
97
    return;