From: Nikolay Denev Date: Fri, 24 Feb 2012 13:50:43 +0000 (+0200) Subject: Convert config entries using underscores to dashes and emit deprecation warnings. X-Git-Tag: suricata-1.3beta1~153 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=32e898f2e3a117b99924451725e17a82c887e90e;p=thirdparty%2Fsuricata.git Convert config entries using underscores to dashes and emit deprecation warnings. --- diff --git a/src/conf-yaml-loader.c b/src/conf-yaml-loader.c index b991afdbb2..33c2569686 100644 --- a/src/conf-yaml-loader.c +++ b/src/conf-yaml-loader.c @@ -43,6 +43,24 @@ enum conf_state { CONF_VAL, }; +/** + * \brief Mangle unsupported characters. + * + * \param string A pointer to an null terminated string. + * + * \retval none + */ +static void +Mangle(char *string) +{ + char *c; + + while ((c = strchr(string, '_'))) + *c = '-'; + + return; +} + /** * \brief Parse a YAML layer. * @@ -105,6 +123,8 @@ ConfYamlParse(yaml_parser_t *parser, ConfNode *parent, int inseq) if (parent->is_seq) { if (parent->val == NULL) { parent->val = SCStrdup(value); + if (parent->val && strchr(parent->val, '_')) + Mangle(parent->val); } } ConfNode *n0 = ConfNodeLookupChild(parent, value); @@ -114,6 +134,16 @@ ConfYamlParse(yaml_parser_t *parser, ConfNode *parent, int inseq) else { node = ConfNodeNew(); node->name = SCStrdup(value); + if (node->name && strchr(node->name, '_')) { + if (!(parent->name && + ((strcmp(parent->name, "address-groups") == 0) || + (strcmp(parent->name, "port-groups") == 0)))) { + Mangle(node->name); + SCLogWarning(SC_WARN_DEPRECATED, + "%s is deprecated. Please use %s", + value, node->name); + } + } TAILQ_INSERT_TAIL(&parent->head, node, next); } state = CONF_VAL; diff --git a/src/util-error.c b/src/util-error.c index ea5fff9d1b..2d064f61fd 100644 --- a/src/util-error.c +++ b/src/util-error.c @@ -221,6 +221,7 @@ const char * SCErrorToString(SCError err) CASE_CODE (SC_ERR_SOCKET); CASE_CODE (SC_ERR_PCAP_TRANSLATE); CASE_CODE (SC_WARN_OUTDATED_LIBHTP); + CASE_CODE (SC_WARN_DEPRECATED); default: return "UNKNOWN_ERROR"; diff --git a/src/util-error.h b/src/util-error.h index 4477018a9b..0fa52d26fb 100644 --- a/src/util-error.h +++ b/src/util-error.h @@ -236,6 +236,7 @@ typedef enum { SC_ERR_SOCKET, SC_ERR_PCAP_TRANSLATE, /* failed to translate ip to dev */ SC_WARN_OUTDATED_LIBHTP, + SC_WARN_DEPRECATED, } SCError; const char *SCErrorToString(SCError);