/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: Teddy Hogeborn
  • Date: 2015-08-02 09:36:40 UTC
  • Revision ID: teddy@recompile.se-20150802093640-nc0n17rbmqlbaxuf
Add D-Bus annotations on a few properties on the Client object.

The D-Bus property "Secret" on the interface
"se.recompile.Mandos.Client" should have the annotation
"org.freedesktop.DBus.Property.EmitsChangedSignal" set to
"invalidates".  Also, the properties "Created", "Fingerprint", "Name",
and "ObjectPath" should have the same annotation set to "const".

* mandos (ClientDBus.Name_dbus_property): Set annotation
                    "org.freedesktop.DBus.Property.EmitsChangedSignal"
                    to "const".
  (ClientDBus.Fingerprint_dbus_property): - '' -
  (ClientDBus.Created_dbus_property): - '' -
  (ClientDBus.ObjectPath_dbus_property): - '' -
  (ClientDBus.Secret_dbus_property): Set annotation
                    "org.freedesktop.DBus.Property.EmitsChangedSignal"
                    to "invalidates".

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
/*
3
3
 * Password-prompt - Read a password from the terminal and print it
4
4
 * 
5
 
 * Copyright © 2008-2011 Teddy Hogeborn
6
 
 * Copyright © 2008-2011 Björn Påhlsson
 
5
 * Copyright © 2008-2015 Teddy Hogeborn
 
6
 * Copyright © 2008-2015 Björn Påhlsson
7
7
 * 
8
8
 * This program is free software: you can redistribute it and/or
9
9
 * modify it under the terms of the GNU General Public License as
72
72
/* Needed for conflict resolution */
73
73
const char plymouth_name[] = "plymouthd";
74
74
 
75
 
__attribute__((format (gnu_printf, 2, 3), nonnull(1)))
76
 
int fprintf_plus(FILE *stream, const char *format, ...){
77
 
  va_list ap;
78
 
  va_start (ap, format);
79
 
  
80
 
  TEMP_FAILURE_RETRY(fprintf(stream, "Mandos plugin %s: ",
81
 
                             program_invocation_short_name));
82
 
  return TEMP_FAILURE_RETRY(vfprintf(stream, format, ap));
83
 
}
84
 
 
85
75
/* Function to use when printing errors */
86
76
__attribute__((format (gnu_printf, 3, 4)))
87
77
void error_plus(int status, int errnum, const char *formatstring,
92
82
  
93
83
  va_start(ap, formatstring);
94
84
  ret = vasprintf(&text, formatstring, ap);
95
 
  if (ret == -1){
 
85
  if(ret == -1){
96
86
    fprintf(stderr, "Mandos plugin %s: ",
97
87
            program_invocation_short_name);
98
88
    vfprintf(stderr, formatstring, ap);
124
114
    int ret;
125
115
    int cl_fd;
126
116
    {
127
 
      uintmax_t maxvalue;
 
117
      uintmax_t proc_id;
128
118
      char *tmp;
129
119
      errno = 0;
130
 
      maxvalue = strtoumax(proc_entry->d_name, &tmp, 10);
 
120
      proc_id = strtoumax(proc_entry->d_name, &tmp, 10);
131
121
      
132
122
      if(errno != 0 or *tmp != '\0'
133
 
         or maxvalue != (uintmax_t)((pid_t)maxvalue)){
 
123
         or proc_id != (uintmax_t)((pid_t)proc_id)){
134
124
        return 0;
135
125
      }
136
126
    }
222
212
  struct dirent **direntries = NULL;
223
213
  int ret;
224
214
  ret = scandir("/proc", &direntries, is_plymouth, alphasort);
225
 
  if (ret == -1){
 
215
  if(ret == -1){
226
216
    error_plus(1, errno, "scandir");
227
217
  }
228
218
  free(direntries);
313
303
    fprintf(stderr, "Starting %s\n", argv[0]);
314
304
  }
315
305
 
316
 
  if (conflict_detection()){
 
306
  if(conflict_detection()){
317
307
    if(debug){
318
308
      fprintf(stderr, "Stopping %s because of conflict\n", argv[0]);
319
309
    }
514
504
        switch(e){
515
505
        case EBADF:
516
506
          status = EX_UNAVAILABLE;
 
507
          break;
517
508
        case EIO:
518
509
        case EINVAL:
519
510
        default: