]> code.citadel.org Git - citadel.git/blobdiff - citadel/utils/chkpw.c
Remove preprocessor tests for OpenSSL. It's a requirement.
[citadel.git] / citadel / utils / chkpw.c
index 83e432fadb09a98e76af55939e924ba524b6c3e3..c90049d91a8c7c5fc36590724b89935501fd6c62 100644 (file)
@@ -1,9 +1,7 @@
-// 
-// Copyright (c) 1987-2022 by the citadel.org team
+// Copyright (c) 1987-2023 by the citadel.org team
 //
 // This program is open source software.  Use, duplication, or disclosure
 // is subject to the terms of the GNU General Public License, version 3.
-// The program is distributed without any warranty, expressed or implied.
 
 #include <errno.h>
 #include <stdlib.h>
 #include <string.h>
 #include <limits.h>
 #include <dirent.h>
+#include "../server/citadel_defs.h"
+#include "../server/server.h"
+#include "../server/sysdep.h"
+#include "../server/citadel_dirs.h"
 
-
-#include "citadel.h"
-#include "sysdep.h"
-#include "citadel_dirs.h"
-/* These pipes are used to talk to the chkpwd daemon, which is forked during startup */
+// These pipes are used to talk to the chkpwd daemon, which is forked during startup
 int chkpwd_write_pipe[2];
 int chkpwd_read_pipe[2];
 
-/*
- * Validate a password on the host unix system by talking to the chkpwd daemon
- */
-static int validpw(uid_t uid, const char *pass)
-{
+// Validate a password on the host unix system by talking to the chkpwd daemon
+static int validpw(uid_t uid, const char *pass) {
        char buf[256];
        int rv;
 
@@ -62,9 +57,8 @@ static int validpw(uid_t uid, const char *pass)
        return 0;
 }
 
-/* 
- * Start up the chkpwd daemon so validpw() has something to talk to
- */
+
+// Start up the chkpwd daemon so validpw() has something to talk to
 void start_chkpwd_daemon(void) {
        pid_t chkpwd_pid;
        struct stat filestats;
@@ -72,24 +66,23 @@ void start_chkpwd_daemon(void) {
 
        printf("Starting chkpwd daemon for host authentication mode\n");
 
-       if ((stat(file_chkpwd, &filestats)==-1) ||
-           (filestats.st_size==0)){
+       if ((stat(file_chkpwd, &filestats)==-1) || (filestats.st_size==0)){
                printf("didn't find chkpwd daemon in %s: %s\n", file_chkpwd, strerror(errno));
-               abort();
+               exit(1);
        }
        if (pipe(chkpwd_write_pipe) != 0) {
                printf("Unable to create pipe for chkpwd daemon: %s\n", strerror(errno));
-               abort();
+               exit(2);
        }
        if (pipe(chkpwd_read_pipe) != 0) {
                printf("Unable to create pipe for chkpwd daemon: %s\n", strerror(errno));
-               abort();
+               exit(3);
        }
 
        chkpwd_pid = fork();
        if (chkpwd_pid < 0) {
                printf("Unable to fork chkpwd daemon: %s\n", strerror(errno));
-               abort();
+               exit(4);
        }
        if (chkpwd_pid == 0) {
                dup2(chkpwd_write_pipe[0], 0);
@@ -97,13 +90,11 @@ void start_chkpwd_daemon(void) {
                for (i=2; i<256; ++i) close(i);
                execl(file_chkpwd, file_chkpwd, NULL);
                printf("Unable to exec chkpwd daemon: %s\n", strerror(errno));
-               abort();
                exit(errno);
        }
 }
 
 
-
 int main(int argc, char **argv) {
        char buf[256];
        struct passwd *p;