コード例 #1
0
ファイル: rules.c プロジェクト: joshuabergeron/ClosedBSD
int 
insert_rule(struct ruleset rule)
{
	DB *db;
	DBT data, key;
	int id = next_rule();

	db = dbopen(RULESCRIPT, O_CREAT | O_RDWR, 0600, DB_BTREE, NULL);

	bzero(&key, sizeof(key));
	key.data = &id;
	key.size = sizeof(rule.id);

	bzero(&data, sizeof(data));
	data.data = &rule;
	data.size = sizeof(rule);

	if ((db->put)(db, &key, &data, 0)) {
		db->close(db);

		return -1;
	}
	db->close(db);

	return 0;
}
コード例 #2
0
ファイル: real.cpp プロジェクト: andyTsing/freedownload
/*
 * finds rule which matches bandwidth.
 *          return value:    number of matched rules
 * rulearray contains its rule numbers.
 */
int find_asmrule_match(char *asmrule,int **matched,int bw)
{
    int i;
    int rules;
    int matchedrules = 0;

    rules = count_rules(asmrule);
  
    *matched = (int *)xmalloc(sizeof(int) * rules);
  
    for(i = 0; i < rules ;i++) {
	/* copy one rule to string*/
	if(asmrule_match(asmrule,bw)) { /* match!! */
	    display(MSDL_DBG,"rule[%d] = %d matched\n",matchedrules,i);
	    (*matched)[matchedrules] = i;
	    matchedrules++;
	}
	asmrule = next_rule(asmrule);
    }
  
    return matchedrules;
}