Browse code
refactor logging
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 |
+ |
... | ... |
@@ -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 |
|