git.fiddlerwoaroof.com
Browse code

refactor logging

Greg Wiley authored on 04/04/2017 23:48:51
Showing 7 changed files
... ...
@@ -1,7 +1,6 @@
1 1
 MODULEFLAGS = -fPIC -fno-stack-protector
2
-SYSOBJS = logging.o
3
-LOGICOBJS = dual_control.o
4
-MODULEOBJS = $(SYSOBJS) $(LOGICOBJS)
2
+MODULEOBJS = dual_control.o logging.o dc_syslog.o
3
+HEADERS = logging.h dc_syslog.h
5 4
 
6 5
 MODULELIB = pam_dual_control.so
7 6
 UNAME_S := $(shell uname -s)
... ...
@@ -13,7 +12,7 @@ dual_control.a: $(MODULEOBJS)
13 12
 	ar rvs $@ $^
14 13
 	ranlib $@
15 14
 
16
-$(MODULEOBJS): %.o: %.c
15
+$(MODULEOBJS): %.o: %.c $(HEADERS)
17 16
 	$(CC) -c $(CFLAGS) $(CPPFLAGS) $(MODULEFLAGS) $< -o $@
18 17
 
19 18
 .PHONY: clean
... ...
@@ -25,14 +24,13 @@ clean:
25 24
 distclean: clean
26 25
 	@rm -f Makefile config.h
27 26
 
28
-dual_control_test: dual_control_test.c $(LOGICOBJS)
27
+dual_control_test: dual_control_test.c dual_control.o
29 28
 	$(CC) $(CFLAGS) $(CPPFLAGS) -lpam -o $@ $^
30 29
 
31 30
 .PHONY: test
32 31
 test: dual_control_test
33 32
 	@./dual_control_test > /dev/null
34 33
 
35
-
36 34
 .PHONY: install
37 35
 install: $(MODULEOBJS)
38 36
 ifeq ($(UNAME_S), Linux)
... ...
@@ -41,6 +39,3 @@ else
41 39
 	@echo installation recipe not known for $(UNAME_S)
42 40
 endif
43 41
 
44
-
45
-
46
-
47 42
new file mode 100644
... ...
@@ -0,0 +1,17 @@
1
+#include <stdarg.h>
2
+#include "dc_syslog.h"
3
+
4
+void dc_openlog(const char *ident, int logopt, int facility) {
5
+    openlog(ident, logopt, facility);
6
+}
7
+
8
+void dc_syslog(int priority, const char *format, ...) {
9
+    va_list varargs;
10
+    va_start(varargs, format);
11
+    vsyslog(priority, format, varargs);
12
+    va_end(varargs);
13
+}
14
+void dc_closelog(void) {
15
+    closelog();
16
+}
17
+
0 18
new file mode 100644
... ...
@@ -0,0 +1,10 @@
1
+#ifndef _DC_SYSLOG_H
2
+#define _DC_SYSLOG_H
3
+
4
+#include <syslog.h>
5
+
6
+void dc_openlog(const char *ident, int logopt, int facility);
7
+void dc_syslog(int priority, const char *message, ...);
8
+void dc_closelog(void);
9
+
10
+#endif
... ...
@@ -10,8 +10,8 @@ PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, int argc, const c
10 10
 
11 11
 PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) {
12 12
     printf("Authentication\n");
13
-    log_dual_control();
14 13
 
14
+    log_success();
15 15
     return PAM_SUCCESS;
16 16
 }
17 17
 
... ...
@@ -3,9 +3,9 @@
3 3
 #include <security/pam_modules.h>
4 4
 #include <stdio.h>
5 5
 
6
-int log_dual_control_invoked = 0;
7
-void log_dual_control() {
8
-    log_dual_control_invoked = 1;
6
+int log_success_invoked = 0;
7
+void log_success() {
8
+    log_success_invoked = 1;
9 9
 }
10 10
 
11 11
 int pam_sm_acct_mgmt_returns_successs() {
... ...
@@ -36,13 +36,13 @@ int pam_sm_setcred_returns_success() {
36 36
     return result == PAM_SUCCESS;
37 37
 }
38 38
 
39
-int pam_sm_authenticate_invokes_log() {
39
+int pam_sm_authenticate_invokes_log_success() {
40 40
     // given
41
-    log_dual_control_invoked = 0;
41
+    log_success_invoked = 0;
42 42
 
43 43
     //when
44 44
    pam_sm_authenticate(NULL, 0, 0, NULL);
45
-   return log_dual_control_invoked;
45
+   return log_success_invoked;
46 46
 }
47 47
 
48 48
 
... ...
@@ -62,9 +62,9 @@ int main(int argc, char* argv[]) {
62 62
         fprintf(stderr, "set cred failed\n");
63 63
     }
64 64
 
65
-    int test4_result = pam_sm_authenticate_invokes_log();
65
+    int test4_result = pam_sm_authenticate_invokes_log_success();
66 66
     if (!test4_result) {
67
-        fprintf(stderr, "authenticate invokes log failed\n");
67
+        fprintf(stderr, "authenticate invokes log_success failed\n");
68 68
     }
69 69
 
70 70
     if (test1_result && test2_result && test3_result && test4_result) {
... ...
@@ -1,18 +1,12 @@
1 1
 #include "logging.h"
2
-#include <syslog.h>
2
+#include "dc_syslog.h"
3 3
 
4
-/*
5
-void openlog(const char *ident, int option, int facility);
6
-void syslog(int priority, const char *format, ...);
7
-void closelog(void);
8
-void vsyslog(int priority, const char *format, va_list ap);
9
-*/
10 4
 
11 5
 static const char program_name[] = "pam_dual_control";
12 6
 
13
-void log_dual_control() {
14
-    openlog(program_name, 0, LOG_AUTHPRIV);
15
-    syslog(LOG_NOTICE, "Logged: ");
16
-    closelog();
7
+void log_success() {
8
+    dc_openlog(program_name, 0, LOG_AUTHPRIV);
9
+    dc_syslog(LOG_NOTICE, "Logged: ");
10
+    dc_closelog();
17 11
 }
18 12
 
... ...
@@ -1,8 +1,7 @@
1 1
 #ifndef __DUAL_CONTROL_LOGGING
2 2
 #define __DUAL_CONTROL_LOGGING
3 3
 
4
-void log_dual_control();
5
-
6
-
4
+void log_success();
5
+void log_fail();
7 6
 
8 7
 #endif