35 #define G_LOG_DOMAIN "gsad vali"
61 rule->
regex = g_strdup (regex);
92 return g_hash_table_new_full (g_str_hash,
110 g_hash_table_insert (validator,
111 (gpointer) g_strdup (name),
129 gpointer key, value_rule;
131 if (g_hash_table_lookup_extended (validator, name, &key, &value_rule))
139 g_hash_table_insert (validator,
140 (gpointer) g_strdup (alias),
141 (gpointer) alias_rule);
159 gpointer key, value_rule;
161 if (g_hash_table_lookup_extended (validator, alias, &key, &value_rule))
184 gpointer key, value_rule;
186 if (name != NULL && g_utf8_validate (name, -1, NULL) == FALSE)
188 g_debug (
"%s: name is not valid UTF-8", __FUNCTION__);
191 else if (value != NULL && g_utf8_validate (value, -1, NULL) == FALSE)
193 g_debug (
"%s: value is not valid UTF-8", __FUNCTION__);
197 g_debug (
"%s: name %s value %s", __FUNCTION__, name, value);
199 if (g_hash_table_lookup_extended (validator, name, &key, &value_rule))
207 if (rule->
regex == NULL)
211 g_debug (
"%s: matched, regex NULL", __FUNCTION__);
214 g_debug (
"%s: failed to match, regex NULL", __FUNCTION__);
220 g_debug (
"%s: failed to match, value NULL", __FUNCTION__);
224 g_debug (
"matching <%s> against <%s>: ", (
char *) rule->
regex, value);
225 if (g_regex_match_simple (rule->
regex,
226 (
const gchar *) value,
230 g_debug (
"%s: matched", __FUNCTION__);
233 g_debug (
"%s: failed to match\n", __FUNCTION__);
237 g_debug (
"%s: failed to find name: %s", __FUNCTION__, name);
249 if (validator) g_hash_table_destroy (validator);
int openvas_validator_alias(validator_t validator, const char *alias, const char *name)
Make an alias for a rule name.
gchar * regex
Regular expression.
validator_t openvas_validator_new()
Create a new validator.
void openvas_validator_add(validator_t validator, const char *name, const char *regex)
Add or overwrite a validation rule.
gchar * openvas_validator_alias_for(validator_t validator, const char *alias)
Get the name of the rule for which a rule is an alias.
Headers/structs for a string validator.
int openvas_validate(validator_t validator, const char *name, const char *value)
Validate a string for a given rule.
validator_t validator
Parameter validator.
gchar * alias_for
Name of the rule for which this is an alias.
validator_rule_t * openvas_validator_rule_new(const char *regex)
Create a new validator rule.
void openvas_validator_free(validator_t validator)
Free a validator.
GHashTable * validator_t
A set of name rule pairs.
void openvas_validator_rule_free(validator_rule_t *rule)
Free a validator rule.