Added more documentation to fwfilter.c

This commit is contained in:
Markus Makela
2014-11-04 18:44:07 +02:00
parent f378c61948
commit 349557c264

View File

@ -294,6 +294,7 @@ static void* hrulefree(void* fval)
*/ */
bool valid_ip(char* str) bool valid_ip(char* str)
{ {
/**TODO: Obsolete code*/
assert(str != NULL); assert(str != NULL);
int octval = 0; int octval = 0;
@ -340,6 +341,9 @@ bool valid_ip(char* str)
*/ */
char* strip_tags(char* str) char* strip_tags(char* str)
{ {
/**TODO: repurpose for regex unquoting*/
assert(str != NULL); assert(str != NULL);
char *ptr = str, *lead = str, *tail = NULL; char *ptr = str, *lead = str, *tail = NULL;
@ -378,6 +382,9 @@ char* strip_tags(char* str)
*/ */
int get_octet(char* str) int get_octet(char* str)
{ {
/**TODO: Obsolete code*/
assert(str != NULL); assert(str != NULL);
int octval = 0,retval = -1; int octval = 0,retval = -1;
@ -426,9 +433,10 @@ int get_octet(char* str)
} }
/** /**
* Parses a string that contains an IP address and converts the last octet to '%' * Parses a string that contains an IP address and converts the last octet to '%'.
* This modifies the string passed as the parameter.
* @param str String to parse * @param str String to parse
* @return Pointer to modified string * @return Pointer to modified string or NULL if an error occurred
*/ */
char* next_ip_class(char* str) char* next_ip_class(char* str)
{ {
@ -466,6 +474,8 @@ char* next_ip_class(char* str)
*/ */
uint32_t strtoip(char* str) uint32_t strtoip(char* str)
{ {
/**TODO: Obsolete code*/
assert(str != NULL); assert(str != NULL);
uint32_t ip = 0,octet = 0; uint32_t ip = 0,octet = 0;
@ -493,6 +503,9 @@ uint32_t strtoip(char* str)
*/ */
uint32_t strtosubmask(char* str) uint32_t strtosubmask(char* str)
{ {
/**TODO: Obsolete code*/
assert(str != NULL); assert(str != NULL);
uint32_t mask = 0; uint32_t mask = 0;
@ -677,9 +690,14 @@ RULE* find_rule(char* tok, FW_INSTANCE* instance)
} }
rlist = rlist->next; rlist = rlist->next;
} }
skygw_log_write(LOGFILE_ERROR, "fwfilter: Rule not found: %s",tok);
return NULL; return NULL;
} }
/**
* Adds the given rule string to the list of strings to be parsed for users.
* @param rule The rule string, assumed to be null-terminated
* @param instance The FW_FILTER instance
*/
void add_users(char* rule, FW_INSTANCE* instance) void add_users(char* rule, FW_INSTANCE* instance)
{ {
assert(rule != NULL && instance != NULL); assert(rule != NULL && instance != NULL);
@ -690,6 +708,12 @@ void add_users(char* rule, FW_INSTANCE* instance)
instance->userstrings = link; instance->userstrings = link;
} }
/**
* Parses the list of rule strings for users and links them against the listed rules.
* Only adds those rules that are found. If the rule isn't found a message is written to the error log.
* @param rule Rule string to parse
* @param instance The FW_FILTER instance
*/
void link_rules(char* rule, FW_INSTANCE* instance) void link_rules(char* rule, FW_INSTANCE* instance)
{ {
assert(rule != NULL && instance != NULL); assert(rule != NULL && instance != NULL);
@ -792,6 +816,12 @@ void link_rules(char* rule, FW_INSTANCE* instance)
} }
/**
* Parse the configuration value either as a new rule or a list of users.
* @param rule The string to parse
* @param instance The FW_FILTER instance
*/
void parse_rule(char* rule, FW_INSTANCE* instance) void parse_rule(char* rule, FW_INSTANCE* instance)
{ {
assert(rule != NULL && instance != NULL); assert(rule != NULL && instance != NULL);
@ -1060,7 +1090,6 @@ newSession(FILTER *instance, SESSION *session)
static void static void
closeSession(FILTER *instance, void *session) closeSession(FILTER *instance, void *session)
{ {
//FW_SESSION *my_session = (FW_SESSION *)session;
} }
/** /**
@ -1092,7 +1121,9 @@ setDownstream(FILTER *instance, void *session, DOWNSTREAM *downstream)
} }
/** /**
* Generates a dummy error packet for the client. * Generates a dummy error packet for the client with a custom message.
* @param session The FW_SESSION object
* @param msg Custom error message for the packet.
* @return The dummy packet or NULL if an error occurred * @return The dummy packet or NULL if an error occurred
*/ */
GWBUF* gen_dummy_error(FW_SESSION* session, char* msg) GWBUF* gen_dummy_error(FW_SESSION* session, char* msg)
@ -1151,6 +1182,10 @@ GWBUF* gen_dummy_error(FW_SESSION* session, char* msg)
return buf; return buf;
} }
/**
* Checks if the timerange object is active.
* @return Whether the timerange is active
*/
bool inside_timerange(TIMERANGE* comp) bool inside_timerange(TIMERANGE* comp)
{ {
@ -1185,6 +1220,11 @@ bool inside_timerange(TIMERANGE* comp)
return false; return false;
} }
/**
* Checks for active timeranges for a given rule.
* @param rule Pointer to a RULE object
* @return true if the rule is active
*/
bool rule_is_active(RULE* rule) bool rule_is_active(RULE* rule)
{ {
TIMERANGE* times; TIMERANGE* times;
@ -1552,6 +1592,7 @@ routeQuery(FILTER *instance, void *session, GWBUF *queue)
free(ipaddr); free(ipaddr);
free(fullquery); free(fullquery);
if(accept){ if(accept){
return my_session->down.routeQuery(my_session->down.instance, return my_session->down.routeQuery(my_session->down.instance,