source: trunk/include/sh_files.h @ 457

Last change on this file since 457 was 457, checked in by katerina, 7 years ago

Fix for ticket #357 (Incorrect precedence for IgnoreAll?).

File size: 6.9 KB
Line 
1/* SAMHAIN file system integrity testing                                   */
2/* Copyright (C) 1999, 2000 Rainer Wichmann                                */
3/*                                                                         */
4/*  This program is free software; you can redistribute it                 */
5/*  and/or modify                                                          */
6/*  it under the terms of the GNU General Public License as                */
7/*  published by                                                           */
8/*  the Free Software Foundation; either version 2 of the License, or      */
9/*  (at your option) any later version.                                    */
10/*                                                                         */
11/*  This program is distributed in the hope that it will be useful,        */
12/*  but WITHOUT ANY WARRANTY; without even the implied warranty of         */
13/*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          */
14/*  GNU General Public License for more details.                           */
15/*                                                                         */
16/*  You should have received a copy of the GNU General Public License      */
17/*  along with this program; if not, write to the Free Software            */
18/*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.              */
19
20#ifndef SH_FILES_H
21#define SH_FILES_H
22
23void sh_audit_mark (const char * file);
24void sh_audit_commit ();
25void sh_audit_delete_all ();
26char * sh_audit_fetch (char * file, time_t time, char * result, size_t rsize);
27
28struct sh_dirent {
29  char             * sh_d_name;
30  struct sh_dirent * next;
31};
32
33/* Check whether a file is in the config
34 */
35char * sh_files_findfile(const char * path);
36
37/* Find the most specific directory in the config
38 */
39char * sh_files_find_mostspecific_dir(const char * path);
40
41/* free a directory listing
42 */
43void kill_sh_dirlist (struct sh_dirent * dirlist);
44
45#ifdef NEED_ADD_DIRENT
46/* add an entry to a directory listing
47 */
48struct sh_dirent * addto_sh_dirlist (struct dirent * thisEntry, 
49                                     struct sh_dirent * dirlist);
50#endif
51
52/* register exceptions to hardlink check
53 */
54int sh_files_hle_reg (const char * str);
55
56/* Check for new files/dirs matching configured glob patterns.
57 */
58void sh_files_check_globPatterns();
59
60/* Check for new files (only) matching configured glob patterns.
61 */
62void sh_files_check_globFilePatterns();
63
64/* check the setup
65 */
66int sh_files_test_setup (void);
67
68/* check if allignore
69 */
70int sh_files_is_allignore (char * str);
71
72/* activate hardlink check
73 */
74int sh_files_check_hardlinks (const char * opt);
75
76/* check  rsrc fork (Mac OS X)
77 */
78int sh_files_use_rsrc(const char * str);
79
80/* set recursion depth
81 */
82int sh_files_setrec (void);
83
84/* report only once
85 */
86int sh_files_reportonce(const char * c);
87
88/* report full details
89 */
90int sh_files_fulldetail(const char * c);
91
92/* reset the 'checked' flag
93 */
94void sh_dirs_reset(void);
95
96/* reset the 'checked' flag
97 */
98void sh_files_reset(void);
99
100/* set maximum recursion level
101 */
102int sh_files_setrecursion (const char * flag_s);
103
104/* select a directory stack 2=Two, else One (standard)
105 */
106int set_dirList (int which);
107
108/* push a directory on the stack USER0
109 */
110int  sh_files_pushdir_user0 (const char * dirName);
111
112/* push a directory on the stack USER1
113 */
114int  sh_files_pushdir_user1 (const char * dirName);
115
116/* push a directory on the stack USER2
117 */
118int  sh_files_pushdir_user2 (const char * dirName);
119
120/* push a directory on the stack USER3
121 */
122int  sh_files_pushdir_user3 (const char * dirName);
123
124/* push a directory on the stack USER4
125 */
126int  sh_files_pushdir_user4 (const char * dirName);
127
128/* push a directory on the stack PRELINK
129 */
130int  sh_files_pushdir_prelink (const char * dirName);
131
132/* push a directory on the stack ATTR
133 */
134int  sh_files_pushdir_attr (const char * dirName);
135
136/* push a directory on the stack READONLY
137 */
138int  sh_files_pushdir_ro (const char * dirName);
139
140/* push a directory on the stack LOGFILE
141 */
142int  sh_files_pushdir_log (const char * dirName);
143
144/* push a directory on the stack GROWING LOGFILE
145 */
146int  sh_files_pushdir_glog (const char * dirName);
147
148/* push a directory on the stack IGNORE NONE
149 */
150int  sh_files_pushdir_noig (const char * dirName);
151
152/* push a directory on the stack IGNORE ALL
153 */
154int  sh_files_pushdir_allig (const char * dirName);
155
156
157/* push a file on the stack USER0
158 */
159int  sh_files_pushfile_user0 (const char * dirName);
160
161/* push a file on the stack USER1
162 */
163int  sh_files_pushfile_user1 (const char * dirName);
164
165/* push a file on the stack USER2
166 */
167int  sh_files_pushfile_user2 (const char * dirName);
168
169/* push a file on the stack USER3
170 */
171int  sh_files_pushfile_user3 (const char * dirName);
172
173/* push a file on the stack USER4
174 */
175int  sh_files_pushfile_user4 (const char * dirName);
176
177/* push a file on the stack PRELINK
178 */
179int  sh_files_pushfile_prelink (const char * dirName);
180
181/* push a file on the stack ATTR
182 */
183int  sh_files_pushfile_attr (const char * dirName);
184
185/* push a file on the stack READONLY
186 */
187int  sh_files_pushfile_ro (const char * dirName);
188
189/* push a file on the stack LOGFILE
190 */
191int  sh_files_pushfile_log (const char * dirName);
192
193/* push a file on the stack GROWING LOGFILE
194 */
195int  sh_files_pushfile_glog (const char * dirName);
196
197/* push a file on the stack IGNORE NONE
198 */
199int  sh_files_pushfile_noig (const char * dirName);
200
201/* push a file on the stack IGNORE ALL
202 */
203int  sh_files_pushfile_allig (const char * dirName);
204
205
206/* check directories on the stack
207 */
208unsigned long sh_dirs_chk       (int which);
209
210/* check files on the stack
211 */
212unsigned long sh_files_chk       (void);
213
214int sh_files_delglobstack (void);
215
216int sh_files_deldirstack (void);
217
218int sh_files_delfilestack (void);
219
220/* redefine policies
221 */
222int sh_files_redef_user0(const char * str);
223int sh_files_redef_user1(const char * str);
224int sh_files_redef_user2(const char * str);
225int sh_files_redef_user3(const char * str);
226int sh_files_redef_user4(const char * str);
227int sh_files_redef_prelink(const char * str);
228int sh_files_redef_readonly(const char * str);
229int sh_files_redef_loggrow(const char * str);
230int sh_files_redef_logfiles(const char * str);
231int sh_files_redef_attributes(const char * str);
232int sh_files_redef_noignore(const char * str);
233int sh_files_redef_allignore(const char * str);
234
235ShFileType sh_files_filecheck (int class, unsigned long check_mask,
236                               const char * dirName, 
237                               const char * infileName,
238                               int * reported, 
239                               int rsrcflag);
240
241int sh_files_checkdir (int iclass, unsigned long check_mask, 
242                       int idepth, char * iname, 
243                       char * relativeName);
244
245int sh_files_search_file(char * name, int * class, 
246                         unsigned long *check_mask, int * reported);
247int sh_files_search_dir(char * name, int * class, 
248                        unsigned long *check_mask, int *reported,
249                        int * rdepth);
250void sh_files_set_file_reported(const char * name);
251void sh_files_clear_file_reported(const char * name);
252
253#endif
254
255
256
257
Note: See TracBrowser for help on using the repository browser.