Commit | Line | Data |
---|---|---|
8ce86de8 GS |
1 | #include "EXTERN.h" |
2 | #include "perl.h" | |
3 | #include "XSUB.h" | |
89c3c464 | 4 | #include "ppport.h" |
8ce86de8 | 5 | |
d76d5647 JH |
6 | #ifdef I_SYSLOG |
7 | #include <syslog.h> | |
8 | #endif | |
8ce86de8 | 9 | |
89c3c464 AT |
10 | static SV *ident_svptr; |
11 | ||
1cb0fb50 | 12 | #include "const-c.inc" |
8ce86de8 | 13 | |
8ce86de8 GS |
14 | MODULE = Sys::Syslog PACKAGE = Sys::Syslog |
15 | ||
1cb0fb50 | 16 | INCLUDE: const-xs.inc |
8ce86de8 GS |
17 | |
18 | int | |
19 | LOG_FAC(p) | |
20 | INPUT: | |
21 | int p | |
22 | CODE: | |
23 | #ifdef LOG_FAC | |
24 | RETVAL = LOG_FAC(p); | |
25 | #else | |
26 | croak("Your vendor has not defined the Sys::Syslog macro LOG_FAC"); | |
b621ec8a | 27 | RETVAL = -1; |
8ce86de8 GS |
28 | #endif |
29 | OUTPUT: | |
30 | RETVAL | |
31 | ||
32 | int | |
33 | LOG_PRI(p) | |
34 | INPUT: | |
35 | int p | |
36 | CODE: | |
37 | #ifdef LOG_PRI | |
38 | RETVAL = LOG_PRI(p); | |
39 | #else | |
40 | croak("Your vendor has not defined the Sys::Syslog macro LOG_PRI"); | |
b621ec8a | 41 | RETVAL = -1; |
8ce86de8 GS |
42 | #endif |
43 | OUTPUT: | |
44 | RETVAL | |
45 | ||
46 | int | |
47 | LOG_MAKEPRI(fac,pri) | |
48 | INPUT: | |
49 | int fac | |
50 | int pri | |
51 | CODE: | |
52 | #ifdef LOG_MAKEPRI | |
53 | RETVAL = LOG_MAKEPRI(fac,pri); | |
54 | #else | |
55 | croak("Your vendor has not defined the Sys::Syslog macro LOG_MAKEPRI"); | |
b621ec8a | 56 | RETVAL = -1; |
8ce86de8 GS |
57 | #endif |
58 | OUTPUT: | |
59 | RETVAL | |
60 | ||
61 | int | |
62 | LOG_MASK(pri) | |
63 | INPUT: | |
64 | int pri | |
65 | CODE: | |
66 | #ifdef LOG_MASK | |
67 | RETVAL = LOG_MASK(pri); | |
68 | #else | |
69 | croak("Your vendor has not defined the Sys::Syslog macro LOG_MASK"); | |
b621ec8a | 70 | RETVAL = -1; |
8ce86de8 GS |
71 | #endif |
72 | OUTPUT: | |
73 | RETVAL | |
74 | ||
75 | int | |
76 | LOG_UPTO(pri) | |
77 | INPUT: | |
78 | int pri | |
79 | CODE: | |
80 | #ifdef LOG_UPTO | |
81 | RETVAL = LOG_UPTO(pri); | |
82 | #else | |
83 | croak("Your vendor has not defined the Sys::Syslog macro LOG_UPTO"); | |
b621ec8a | 84 | RETVAL = -1; |
8ce86de8 GS |
85 | #endif |
86 | OUTPUT: | |
87 | RETVAL | |
89c3c464 AT |
88 | |
89 | ||
90 | void | |
91 | openlog_xs(ident, option, facility) | |
92 | INPUT: | |
93 | SV* ident | |
94 | int option | |
95 | int facility | |
96 | PREINIT: | |
97 | STRLEN len; | |
98 | char* ident_pv; | |
99 | CODE: | |
100 | ident_svptr = newSVsv(ident); | |
101 | ident_pv = SvPV(ident_svptr, len); | |
102 | openlog(ident_pv, option, facility); | |
103 | ||
104 | void | |
105 | syslog_xs(priority, message) | |
106 | INPUT: | |
107 | int priority | |
108 | const char * message | |
109 | CODE: | |
110 | syslog(priority, "%s", message); | |
111 | ||
112 | int | |
113 | setlogmask_xs(mask) | |
114 | INPUT: | |
115 | int mask | |
116 | CODE: | |
117 | setlogmask(mask); | |
118 | ||
119 | void | |
120 | closelog_xs() | |
121 | CODE: | |
122 | closelog(); | |
123 | if (SvREFCNT(ident_svptr)) | |
124 | SvREFCNT_dec(ident_svptr); | |
125 |