REORG: server: rename internal functions from parse_server
Use a standard convention for the functions used through parse_server.
Use the prefix _srv_parse and specify their private scope in a comment.
diff --git a/src/server.c b/src/server.c
index 2b80f6f..3fa3845 100644
--- a/src/server.c
+++ b/src/server.c
@@ -2212,70 +2212,11 @@
srv = NULL;
}
-#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
-static int server_sni_expr_init(char **args, int cur_arg,
- struct server *srv, struct proxy *proxy,
- char **errmsg)
-{
- int ret;
-
- if (!srv->sni_expr)
- return 0;
-
- ret = server_parse_sni_expr(srv, proxy, errmsg);
- if (!ret)
- return 0;
-
- return ret;
-}
-#endif
-
-/*
- * Server initializations finalization.
- * Initialize health check, agent check and SNI expression if enabled.
- * Must not be called for a default server instance.
- */
-static int server_finalize_init(char **args, int cur_arg,
- struct server *srv, struct proxy *px,
- char **errmsg)
-{
-#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
- int ret;
-#endif
-
- if (srv->do_check && srv->trackit) {
- memprintf(errmsg, "unable to enable checks and tracking at the same time!");
- return ERR_ALERT | ERR_FATAL;
- }
-
- if (srv->do_agent && !srv->agent.port) {
- memprintf(errmsg, "server %s does not have agent port. Agent check has been disabled.",
- srv->id);
- return ERR_ALERT | ERR_FATAL;
- }
-
-#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
- if ((ret = server_sni_expr_init(args, cur_arg, srv, px, errmsg)) != 0)
- return ret;
-#endif
-
- if (srv->flags & SRV_F_BACKUP)
- px->srv_bck++;
- else
- px->srv_act++;
- srv_lb_commit_status(srv);
-
- return 0;
-}
-
-/*
- * Parse as much as possible such a range string argument: low[-high]
- * Set <nb_low> and <nb_high> values so that they may be reused by this loop
- * for(int i = nb_low; i <= nb_high; i++)... with nb_low >= 1.
- * Fails if 'low' < 0 or 'high' is present and not higher than 'low'.
- * Returns 0 if succeeded, -1 if not.
+/* This function is first intented to be used through parse_server to
+ * initialize a new server on startup.
*/
-static int srv_tmpl_parse_range(struct server *srv, const char *arg, int *nb_low, int *nb_high)
+static int _srv_parse_tmpl_range(struct server *srv, const char *arg,
+ int *nb_low, int *nb_high)
{
char *nb_high_arg;
@@ -2298,22 +2239,36 @@
return 0;
}
-static inline void srv_set_id_from_prefix(struct server *srv, const char *prefix, int nb)
+/* Parse as much as possible such a range string argument: low[-high]
+ * Set <nb_low> and <nb_high> values so that they may be reused by this loop
+ * for(int i = nb_low; i <= nb_high; i++)... with nb_low >= 1.
+ *
+ * This function is first intented to be used through parse_server to
+ * initialize a new server on startup.
+ *
+ * Fails if 'low' < 0 or 'high' is present and not higher than 'low'.
+ * Returns 0 if succeeded, -1 if not.
+ */
+static inline void _srv_parse_set_id_from_prefix(struct server *srv,
+ const char *prefix, int nb)
{
chunk_printf(&trash, "%s%d", prefix, nb);
free(srv->id);
srv->id = strdup(trash.area);
}
-/*
- * Initialize as much as possible servers from <srv> server template.
+/* Initialize as much as possible servers from <srv> server template.
* Note that a server template is a special server with
* a few different parameters than a server which has
* been parsed mostly the same way as a server.
+ *
+ * This function is first intented to be used through parse_server to
+ * initialize a new server on startup.
+ *
* Returns the number of servers successfully allocated,
* 'srv' template included.
*/
-static int server_template_init(struct server *srv, struct proxy *px)
+static int _srv_parse_tmpl_init(struct server *srv, struct proxy *px)
{
int i;
struct server *newsrv;
@@ -2336,18 +2291,18 @@
}
#endif
/* Set this new server ID. */
- srv_set_id_from_prefix(newsrv, srv->tmpl_info.prefix, i);
+ _srv_parse_set_id_from_prefix(newsrv, srv->tmpl_info.prefix, i);
/* Linked backwards first. This will be restablished after parsing. */
newsrv->next = px->srv;
px->srv = newsrv;
}
- srv_set_id_from_prefix(srv, srv->tmpl_info.prefix, srv->tmpl_info.nb_low);
+ _srv_parse_set_id_from_prefix(srv, srv->tmpl_info.prefix, srv->tmpl_info.nb_low);
return i - srv->tmpl_info.nb_low;
err:
- srv_set_id_from_prefix(srv, srv->tmpl_info.prefix, srv->tmpl_info.nb_low);
+ _srv_parse_set_id_from_prefix(srv, srv->tmpl_info.prefix, srv->tmpl_info.nb_low);
if (newsrv) {
#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
release_sample_expr(newsrv->ssl_ctx.sni);
@@ -2425,7 +2380,7 @@
*cur_arg = 2;
if (srv_tmpl) {
/* Parse server-template <nb | range> arg. */
- if (srv_tmpl_parse_range(newsrv, args[*cur_arg], &tmpl_range_low, &tmpl_range_high) < 0) {
+ if (_srv_parse_tmpl_range(newsrv, args[*cur_arg], &tmpl_range_low, &tmpl_range_high) < 0) {
memprintf(errmsg, "Wrong %s number or range arg '%s'.",
args[0], args[*cur_arg]);
err_code |= ERR_ALERT | ERR_FATAL;
@@ -2593,6 +2548,67 @@
return err_code;
}
+#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
+/* This function is first intented to be used through parse_server to
+ * initialize a new server on startup.
+ */
+static int _srv_parse_sni_expr_init(char **args, int cur_arg,
+ struct server *srv, struct proxy *proxy,
+ char **errmsg)
+{
+ int ret;
+
+ if (!srv->sni_expr)
+ return 0;
+
+ ret = server_parse_sni_expr(srv, proxy, errmsg);
+ if (!ret)
+ return 0;
+
+ return ret;
+}
+#endif
+
+/* Server initializations finalization.
+ * Initialize health check, agent check and SNI expression if enabled.
+ * Must not be called for a default server instance.
+ *
+ * This function is first intented to be used through parse_server to
+ * initialize a new server on startup.
+ */
+static int _srv_parse_finalize(char **args, int cur_arg,
+ struct server *srv, struct proxy *px,
+ char **errmsg)
+{
+#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
+ int ret;
+#endif
+
+ if (srv->do_check && srv->trackit) {
+ memprintf(errmsg, "unable to enable checks and tracking at the same time!");
+ return ERR_ALERT | ERR_FATAL;
+ }
+
+ if (srv->do_agent && !srv->agent.port) {
+ memprintf(errmsg, "server %s does not have agent port. Agent check has been disabled.",
+ srv->id);
+ return ERR_ALERT | ERR_FATAL;
+ }
+
+#ifdef SSL_CTRL_SET_TLSEXT_HOSTNAME
+ if ((ret = _srv_parse_sni_expr_init(args, cur_arg, srv, px, errmsg)) != 0)
+ return ret;
+#endif
+
+ if (srv->flags & SRV_F_BACKUP)
+ px->srv_bck++;
+ else
+ px->srv_act++;
+ srv_lb_commit_status(srv);
+
+ return 0;
+}
+
int parse_server(const char *file, int linenum, char **args, struct proxy *curproxy,
const struct proxy *defproxy, int parse_addr, int in_peers_section, int initial_resolve)
{
@@ -2654,7 +2670,7 @@
}
if (!defsrv) {
- err_code |= server_finalize_init(args, cur_arg, newsrv, curproxy, &errmsg);
+ err_code |= _srv_parse_finalize(args, cur_arg, newsrv, curproxy, &errmsg);
if (err_code) {
display_parser_err(file, linenum, args, cur_arg, err_code, &errmsg);
free(errmsg);
@@ -2665,7 +2681,7 @@
}
if (srv_tmpl)
- server_template_init(newsrv, curproxy);
+ _srv_parse_tmpl_init(newsrv, curproxy);
}
return 0;