[Aide] Allow ARF as opposite to ANF?
Virolainen Pablo
pablo at cs.tut.fi
Tue Nov 15 17:55:05 EET 2005
On Tue, 15 Nov 2005, Richard van den Berg wrote:
> Virolainen Pablo wrote:
>> Well.. Someone might implement it.
>
> Thanks, but this is not a clean patch against the current aide source. 3
> chunks fail, but even when I apply them by hand, there are still errors:
>
> gen_list.c: In function `add_file_to_tree':
> gen_list.c:1105: error: `DB_RMFILE' undeclared (first use in this function)
> gen_list.c:1105: error: (Each undeclared identifier is reported only once
> gen_list.c:1105: error: for each function it appears in.)
> gen_list.c:1125: error: `NODE_ALLOW_NEW' undeclared (first use in this
> function)gen_list.c:1130: error: `NODE_ALLOW_RM' undeclared (first use
> in this function)
> make[2]: *** [gen_list.o] Error 1
>
> Please post a patch against the current CVS or aide 0.11-rc2.
Ok. Lets try again.
Duke NEMO / C.O.M.A
alias pablo the pallo virolainen
-------------- next part --------------
diff -ru aide/src/Makefile.am aide-with-ARF/src/Makefile.am
--- aide/src/Makefile.am Tue Nov 15 17:45:40 2005
+++ aide-with-ARF/src/Makefile.am Tue Nov 15 13:40:08 2005
@@ -68,6 +68,8 @@
conf_yacc.c:conf_yacc.y
${YACC} ${YFLAGS} -d -p conf -o conf_yacc.c $(top_srcdir)/src/conf_yacc.y
+conf_yacc.h: conf_yacc.c
+
conf_lex2.c:conf_lex.c
conf_lex.c:conf_lex.l
diff -ru aide/src/aide.c aide-with-ARF/src/aide.c
--- aide/src/aide.c Tue Nov 15 17:45:40 2005
+++ aide-with-ARF/src/aide.c Tue Nov 15 13:40:57 2005
@@ -330,6 +330,7 @@
conf->start_time=time(&(conf->start_time));
do_groupdef("ANF",DB_NEWFILE);
+ do_groupdef("ARF",DB_RMFILE);
do_groupdef("p",DB_PERM);
do_groupdef("i",DB_INODE);
do_groupdef("I",DB_CHECKINODE);
diff -ru aide/src/base64.c aide-with-ARF/src/base64.c
--- aide/src/base64.c Tue Nov 15 17:45:40 2005
+++ aide-with-ARF/src/base64.c Tue Nov 15 13:50:53 2005
@@ -267,7 +267,7 @@
error(210, "decode base64\n");
/* Exit on empty input */
if (!ssize||src==NULL)
- return NULL;
+ return 0;
@@ -290,7 +290,7 @@
case FAIL:
error(3, "length_base64: Illegal character: %c\n", *inb);
error(230, "length_base64: Illegal line:\n%s\n", src);
- return NULL;
+ return 0;
break;
case SKIP:
break;
diff -ru aide/src/compare_db.c aide-with-ARF/src/compare_db.c
--- aide/src/compare_db.c Tue Nov 15 17:45:41 2005
+++ aide-with-ARF/src/compare_db.c Tue Nov 15 13:46:22 2005
@@ -690,8 +690,8 @@
}else {
int localignorelist=old->attr ^ ((db_line*)r->data)->attr;
- if (localignorelist!=0) {
- error(2,"File %s in databases has different attributes, %i,%i\n",old->filename,old->attr,((db_line*)r->data)->attr);
+ if ((localignorelist&(~(DB_NEWFILE|DB_RMFILE)))!=0) {
+ error(2,"File %s in databases has different attributes, %i,%i\n",old->filename,old->attr,((db_line*)r->data)->attr);
}
localignorelist|=ignorelist;
@@ -822,14 +822,14 @@
}else if(!(node->checked&DB_OLD)&&(node->checked&DB_NEW)){
/* File is in new db but not old. (ADDED) */
/* unless it was moved in */
- if(!(node->checked&NODE_MOVED_IN)){
+ if((!(node->checked&NODE_MOVED_IN))&&(!node->checked&NODE_ALLOW_NEW)){
stat[2]++;
node->checked|=NODE_ADDED;
}
}else if((node->checked&DB_OLD)&&!(node->checked&DB_NEW)){
/* File is in old db but not new. (REMOVED) */
/* unless it was moved out */
- if(!(node->checked&NODE_MOVED_OUT)) {
+ if(!(node->checked&NODE_MOVED_OUT)&&(!node->checked&NODE_ALLOW_RM)) {
stat[3]++;
node->checked|=NODE_REMOVED;
}
@@ -839,10 +839,10 @@
if(!(node->checked&(NODE_MOVED_IN|NODE_MOVED_OUT))){
stat[4]++;
node->checked|=NODE_CHANGED;
- }else if(!(node->checked&NODE_MOVED_IN)) {
+ }else if((!(node->checked&NODE_MOVED_IN))&&(!node->checked&NODE_ALLOW_NEW)) {
stat[2]++;
node->checked|=NODE_ADDED;
- }else if(!(node->checked&NODE_MOVED_OUT)) {
+ }else if((!(node->checked&NODE_MOVED_OUT))&&(!node->checked&NODE_ALLOW_RM)) {
stat[3]++;
node->checked|=NODE_REMOVED;
}
diff -ru aide/src/gen_list.c aide-with-ARF/src/gen_list.c
--- aide/src/gen_list.c Tue Nov 15 17:45:41 2005
+++ aide-with-ARF/src/gen_list.c Tue Nov 15 13:45:57 2005
@@ -1058,7 +1058,7 @@
if((node->checked&DB_OLD)&&(node->checked&DB_NEW)){
localignorelist=(node->new_data->attr^node->old_data->attr);
if (localignorelist!=0) {
- error(2,"File %s in databases has different attributes, %i,%i\n",node->old_data->filename,node->old_data->attr,node->new_data->attr);
+ error(2,"File %s in databases has different attributes, %i,%i\n",node->old_data->filename,node->old_data->attr,node->new_data->attr);
}
localignorelist|=ignorelist;
@@ -1102,11 +1102,11 @@
oldData = node->old_data;
}
- localignorelist=(oldData->attr^newData->attr);
+ localignorelist=(oldData->attr^newData->attr)&(~(DB_NEWFILE|DB_RMFILE));
if (localignorelist!=0) {
- error(5,"File %s in databases has different attributes, %i,%i\n",
- oldData->filename,oldData->attr,newData->attr);
+ error(5,"File \"%s\" \"%s\" in databases has different attributes (here3), %i,%i\n",
+ newData->filename,oldData->filename,oldData->attr,newData->attr);
}
localignorelist|=ignorelist|DB_CTIME;
@@ -1120,9 +1120,13 @@
}
if( (db == DB_NEW) &&
(file->attr & DB_NEWFILE) &&
- (node->new_data!=NULL) &&
- (node->old_data==NULL)) {
- node->checked|=DB_NEW;
+ (node->new_data!=NULL) ){
+ node->checked|=NODE_ALLOW_NEW;
+ }
+ if( (db == DB_OLD) &&
+ (file->attr & DB_RMFILE) &&
+ (node->old_data!=NULL) ){
+ node->checked|=NODE_ALLOW_RM;
}
}
diff -ru aide/include/db.h aide-with-ARF/include/db.h
--- aide/include/db.h Tue Nov 15 17:45:42 2005
+++ aide-with-ARF/include/db.h Tue Nov 15 13:49:48 2005
@@ -52,6 +52,7 @@
#define NODE_CHECKED (1<<10)
#define NODE_MOVED_OUT (1<<11)
#define NODE_MOVED_IN (1<<12)
-
+#define NODE_ALLOW_NEW (1<<13)
+#define NODE_ALLOW_RM (1<<14)
#endif
diff -ru aide/include/db_config.h aide-with-ARF/include/db_config.h
--- aide/include/db_config.h Tue Nov 15 17:45:42 2005
+++ aide-with-ARF/include/db_config.h Tue Nov 15 13:42:20 2005
@@ -103,6 +103,7 @@
db_dev, /* "dev" */
db_checkmask, /* "checkmask"*/
db_allownewfile, /* "allownewfile */
+ db_allowrmfile, /* "allowrmfile" */
db_unknown } DB_FIELD; /* "unknown" */
/* db_unknown must be last because it is used to determine size of
@@ -144,6 +145,7 @@
#define DB_SIZEG (1<<26) /* "unknown" */
#define DB_CHECKINODE (1<<27) /* "checkinode"*/
#define DB_NEWFILE (1<<28) /* "allow new file" */
+#define DB_RMFILE (1<<29) /* "allot rm file" */
#define DB_HASHES (DB_MD5|DB_SHA1|DB_RMD160|DB_TIGER|DB_CRC32|DB_HAVAL| \
DB_GOST|DB_CRC32B)
@@ -206,6 +208,7 @@
db_dev, /* "dev" */
db_checkmask, /* "checkmask" */
db_allownewfile, /* "allownewfile" */
+ db_allowrmfile, /* "allowrmfile" */
db_unknown }; /* "unknown" */
/* db_namealias && db_aliasvalue are here to support earlier database
More information about the Aide
mailing list