]> git.armaanb.net Git - opendoas.git/blobdiff - pam.c
Add insult option to doas.conf
[opendoas.git] / pam.c
diff --git a/pam.c b/pam.c
index 01f82b3048ac208a9733811a0883c5929c5d516e..f1aae2dd6d3070f8a41af7c3ce3d5eda00e1080e 100644 (file)
--- a/pam.c
+++ b/pam.c
@@ -39,7 +39,6 @@
 
 #include "openbsd.h"
 #include "doas.h"
-#include "insults.h"
 
 #ifndef HOST_NAME_MAX
 #define HOST_NAME_MAX _POSIX_HOST_NAME_MAX
@@ -227,7 +226,7 @@ close:
        exit(status);
 }
 
-void
+int
 pamauth(const char *user, const char *myname, int interactive, int nopass, int persist)
 {
        static const struct pam_conv conv = {
@@ -246,7 +245,7 @@ pamauth(const char *user, const char *myname, int interactive, int nopass, int p
 #endif
 
        if (!user || !myname)
-               authfail();
+               return(5);
 
        ret = pam_start(PAM_SERVICE_NAME, myname, &conv, &pamh);
        if (ret != PAM_SUCCESS)
@@ -278,7 +277,7 @@ pamauth(const char *user, const char *myname, int interactive, int nopass, int p
 
        if (!nopass) {
                if (!interactive)
-                       authfail();
+                       return(5);
 
                /* doas style prompt for pam */
                char host[HOST_NAME_MAX + 1];
@@ -292,7 +291,7 @@ pamauth(const char *user, const char *myname, int interactive, int nopass, int p
                if (ret != PAM_SUCCESS) {
                        pamcleanup(ret, sess, cred);
                        syslog(LOG_AUTHPRIV | LOG_NOTICE, "failed auth for %s", myname);
-                       authfail();
+                       return(5);
                }
        }
 
@@ -305,7 +304,7 @@ pamauth(const char *user, const char *myname, int interactive, int nopass, int p
        if (ret != PAM_SUCCESS) {
                pamcleanup(ret, sess, cred);
                syslog(LOG_AUTHPRIV | LOG_NOTICE, "failed auth for %s", myname);
-               authfail();
+               return(5);
        }
 
        /* set PAM_USER to the user we want to be */
@@ -347,4 +346,5 @@ pamauth(const char *user, const char *myname, int interactive, int nopass, int p
        }
 #endif
        watchsession(child, sess, cred);
+       return(0);
 }