/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/passprompt.c

  • Committer: Teddy Hogeborn
  • Date: 2008-08-01 06:33:15 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080801063315-4k33q3ek28hjc3tu
* plugins.d/plugbasedclient.c: Update include file comments.
  (struct process.disable): Renamed to "disabled".  All users changed.
  (addarguments): Renamed to "addargument".  All callers changed.
  (doc, args_doc): Removed.
  (main): Changed default "plugindir" to
          "/conf/conf.d/mandos/plugins.d".  Renamed "rfds_orig" to
           "rfds_all"; all users changed.  New "debug" and
           "exitstatus" variables.  New "--debug" option.  Removed
           unnecessary ".flags = 0" from all options.  Changed so that
           "--disable-plugin" only takes one plugin.  Check for
           non-existence of ":" in argument to "--options-for".  Added
           some debugging outputs.  Set the FD_CLOEXEC flag on the
           directory FD.  More capable code for dealing with
           disallowed plugin file name prefixes and suffixes.  Bug
           fix: check for some malloc failures.  Moved allocating the
           "struct process *new_process" to after the fork.  Do
           _exit() instead of exit() in the child.

* plugins.d/mandosclient.c: Updated contact information.

Show diffs side-by-side

added added

removed removed

Lines of Context:
49
49
volatile bool quit_now = false;
50
50
bool debug = false;
51
51
 
52
 
static void termination_handler(__attribute__((unused))int signum){
 
52
void termination_handler(__attribute__((unused))int signum){
53
53
  quit_now = true;
54
54
}
55
55
 
102
102
  
103
103
  sigemptyset(&new_action.sa_mask);
104
104
  sigaddset(&new_action.sa_mask, SIGINT);
 
105
  sigaddset(&new_action.sa_mask, SIGQUIT);
105
106
  sigaddset(&new_action.sa_mask, SIGHUP);
106
107
  sigaddset(&new_action.sa_mask, SIGTERM);
107
108
  sigaction(SIGINT, NULL, &old_action);
108
109
  if (old_action.sa_handler != SIG_IGN)
109
110
    sigaction(SIGINT, &new_action, NULL);
 
111
  sigaction(SIGQUIT, NULL, &old_action);
 
112
  if (old_action.sa_handler != SIG_IGN)
 
113
    sigaction(SIGQUIT, &new_action, NULL);
110
114
  sigaction(SIGHUP, NULL, &old_action);
111
115
  if (old_action.sa_handler != SIG_IGN)
112
116
    sigaction(SIGHUP, &new_action, NULL);
146
150
      status = EXIT_SUCCESS;
147
151
      break;
148
152
    }
 
153
    // ret == 0 makes no other sence than to retry to read from stdin
149
154
    if (ret < 0){
150
155
      if (errno != EINTR and not feof(stdin)){
151
156
        perror("getline");
153
158
        break;
154
159
      }
155
160
    }
156
 
    /* if(ret == 0), then the only sensible thing to do is to retry to
157
 
       read from stdin */
158
161
    fputc('\n', stderr);
159
162
  }
160
 
  
 
163
 
161
164
  if (debug){
162
165
    fprintf(stderr, "Restoring terminal attributes\n");
163
166
  }
164
167
  if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &t_old) != 0){
165
168
    perror("tcsetattr+echo");
166
169
  }
167
 
  
 
170
 
168
171
  if (debug){
169
172
    fprintf(stderr, "%s is exiting\n", argv[0]);
170
173
  }