/[imapfilter]/imapfilter/imapfilter.c
ViewVC logotype

Diff of /imapfilter/imapfilter.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.25 by lefcha, Mon Jan 14 18:12:38 2002 UTC revision 1.26 by lefcha, Tue Jan 29 21:23:41 2002 UTC
# Line 17  unsigned int options;          /* Program option Line 17  unsigned int options;          /* Program option
17  unsigned int capabilities;      /* Capabilities of mail server. */  unsigned int capabilities;      /* Capabilities of mail server. */
18  char logfile[PATH_MAX];         /* Log file. */  char logfile[PATH_MAX];         /* Log file. */
19  char *home = NULL;              /* User's home directory. */  char *home = NULL;              /* User's home directory. */
20    uid_t ruid, euid;               /* Real and effective UID. */
21    
22    
23  /*  /*
# Line 28  int main(int argc, char *argv[]) Line 29  int main(int argc, char *argv[])
29      char *confile = NULL;       /* Configuration file. */      char *confile = NULL;       /* Configuration file. */
30      account_t *ca;              /* Current account. */      account_t *ca;              /* Current account. */
31      mbox_t *cm;                 /* Current mailbox. */      mbox_t *cm;                 /* Current mailbox. */
32        
33        ruid = getuid();
34        euid = geteuid();
35    
36        seteuid(ruid);              /* Drop root privileges. */
37        
38        corefile_disable();
39        
40      options = (OPTION_DETAILS_NORMAL | OPTION_NAMESPACE);      options = (OPTION_DETAILS_NORMAL | OPTION_NAMESPACE);
41      *logfile = 0;      *logfile = 0;
42      home = getenv("HOME");      home = getenv("HOME");
43        
44  #ifndef ENCRYPTED_PASSWORDS  #ifndef ENCRYPTED_PASSWORDS
45      while ((c = getopt(argc, argv, "c:hl:qv")) != -1) {      while ((c = getopt(argc, argv, "c:hl:qv")) != -1) {
46  #else  #else
# Line 69  int main(int argc, char *argv[]) Line 77  int main(int argc, char *argv[])
77          }          }
78      }      }
79    
80        tty_store();
81      catch_signals();      catch_signals();
82    
83      create_homedir();      create_homedir();
# Line 82  int main(int argc, char *argv[]) Line 91  int main(int argc, char *argv[])
91      if ((options & OPTION_PASSWORD_EDITOR))      if ((options & OPTION_PASSWORD_EDITOR))
92          password_editor();          password_editor();
93  #endif  #endif
94        
95        setuid(ruid);               /* Capability to regain root privileges
96                                       will not be needed any more. */
97        
98    
99      for (ca = accounts; ca; ca = ca->next) {      for (ca = accounts; ca; ca = ca->next) {
100    
# Line 123  int main(int argc, char *argv[]) Line 136  int main(int argc, char *argv[])
136          close_connection();          close_connection();
137      }      }
138    
139      overwrite_passwords();      secmem_clear();
   
140      close_logfile();      close_logfile();
141        corefile_restore();
142    
143      exit(0);      exit(0);
144  }  }
# Line 136  int main(int argc, char *argv[]) Line 149  int main(int argc, char *argv[])
149   */   */
150  void usage(void)  void usage(void)
151  {  {
 #ifndef ENCRYPTED_PASSWORDS  
     fprintf(stderr,  
             "usage: imapfilter [-hpqv] [-c configfile] [-l logfile]\n");  
 #else  
152      fprintf(stderr,      fprintf(stderr,
153              "usage: imapfilter [-hqv] [-c configfile] [-l logfile]\n");              "usage: imapfilter [-h"
154  #endif  #ifdef ENCRYPTED_PASSWORDS
155                "p"
156    #endif      
157                "qv] [-c configfile] [-l logfile]\n");
158  }  }

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26