/mandos/release

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

« back to all changes in this revision

Viewing changes to plugins.d/splashy.c

  • Committer: Teddy Hogeborn
  • Date: 2008-09-30 07:23:39 UTC
  • Revision ID: teddy@fukt.bsnet.se-20080930072339-jn15gyrtfpdk2dhx
* .bzrignore: Added "man" directory (created by "make install-html").

* Makefile: Add "common.ent" dependency to all manual pages.
  (htmldir, version, SED): New variables.
  (CFLAGS): Add -D option to define VERSION to $(version).
  (MANPOST, HTMLPOST): Use $(SED).
  (PROGS): Use $(CPROGS)
  (CPROGS): New; C-only programs.
  (objects): Use $(CPROGS).
  (common.ent, mandos, mandos-keygen): New targets; update version
                                       number to $(version).
  (clean): Use $(CPROGS).
  (check): Depend on "all".
  (install-html): Install to $(htmldir).

* common.ent: New file with "version" entity.

* mandos-clients.conf.xml: Use "common.ent".
* mandos-keygen.xml: - '' -
* mandos.conf.xml: - '' -
* mandos.xml: - '' -
* plugin-runner.xml: - '' -
* plugins.d/mandos-client.xml: - '' -
* plugins.d/password-prompt.xml: - '' -

* plugin-runner.c (argp_program_version): Use VERSION.
* plugins.d/mandos-client.c (argp_program_version): - '' -
* plugins.d/password-prompt.c (argp_program_version): - '' -

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
  interrupted_by_signal = 1;
26
26
}
27
27
 
28
 
int main(__attribute__((unused))int argc, char **argv){
 
28
int main(__attribute__((unused))int argc,
 
29
         __attribute__((unused))char **argv){
29
30
  int ret = 0;
30
31
  
31
32
  /* Create prompt string */
76
77
      }
77
78
      /* Find the executable name by doing readlink() on the
78
79
         /proc/<pid>/exe link */
79
 
      char *exe_link;
80
 
      ret = asprintf(&exe_link, "/proc/%s/exe", proc_ent->d_name);
81
 
      if(ret == -1){
82
 
        perror("asprintf");
83
 
        free(prompt);
84
 
        closedir(proc_dir);
85
 
        return EXIT_FAILURE;
86
 
      }
87
80
      char exe_target[sizeof(splashy_name)];
88
 
      ssize_t sret = readlink(exe_link, exe_target,
89
 
                              sizeof(exe_target));
 
81
      ssize_t sret;
 
82
      {
 
83
        char *exe_link;
 
84
        ret = asprintf(&exe_link, "/proc/%s/exe", proc_ent->d_name);
 
85
        if(ret == -1){
 
86
          perror("asprintf");
 
87
          free(prompt);
 
88
          closedir(proc_dir);
 
89
          return EXIT_FAILURE;
 
90
        }
 
91
        sret = readlink(exe_link, exe_target, sizeof(exe_target));
 
92
        free(exe_link);
 
93
      }
90
94
      if((sret == ((ssize_t)sizeof(exe_target)-1))
91
95
         and (memcmp(splashy_name, exe_target,
92
96
                     sizeof(exe_target)-1) == 0)){
195
199
  if(interrupted_by_signal){
196
200
    kill(splashy_command_pid, SIGTERM);
197
201
  }
198
 
 
 
202
  
199
203
  pid_t new_splashy_pid = fork();
200
204
  if(new_splashy_pid == 0){
 
205
    /* Child; will become new splashy process */
201
206
    while(kill(splashy_pid, 0)){
202
207
      sleep(2);
203
208
      kill(splashy_pid, SIGKILL);