diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c
index 38a9cfd..0af89b4 100644
--- a/src/hlua_fcn.c
+++ b/src/hlua_fcn.c
@@ -1055,7 +1055,7 @@
 		port = NULL;
 
 	HA_SPIN_LOCK(SERVER_LOCK, &srv->lock);
-	err = update_server_addr_port(srv, addr, port, "Lua script");
+	err = srv_update_addr_port(srv, addr, port, "Lua script");
 	HA_SPIN_UNLOCK(SERVER_LOCK, &srv->lock);
 	if (!err)
 		lua_pushnil(L);
diff --git a/src/resolvers.c b/src/resolvers.c
index a268701..ab7159f 100644
--- a/src/resolvers.c
+++ b/src/resolvers.c
@@ -637,10 +637,10 @@
 
 					switch (item->ar_item->type) {
 						case DNS_RTYPE_A:
-							update_server_addr(srv, &(((struct sockaddr_in*)&item->ar_item->address)->sin_addr), AF_INET, "DNS additional record");
+							srv_update_addr(srv, &(((struct sockaddr_in*)&item->ar_item->address)->sin_addr), AF_INET, "DNS additional record");
 						break;
 						case DNS_RTYPE_AAAA:
-							update_server_addr(srv, &(((struct sockaddr_in6*)&item->ar_item->address)->sin6_addr), AF_INET6, "DNS additional record");
+							srv_update_addr(srv, &(((struct sockaddr_in6*)&item->ar_item->address)->sin6_addr), AF_INET6, "DNS additional record");
 						break;
 					}
 
@@ -656,7 +656,7 @@
 						HA_SPIN_UNLOCK(SERVER_LOCK, &srv->lock);
 						continue;
 					}
-					msg = update_server_fqdn(srv, hostname, "SRV record", 1);
+					msg = srv_update_fqdn(srv, hostname, "SRV record", 1);
 					if (msg)
 						send_log(srv->proxy, LOG_NOTICE, "%s", msg);
 				}
diff --git a/src/server.c b/src/server.c
index 6f57cb4..d31062f 100644
--- a/src/server.c
+++ b/src/server.c
@@ -50,14 +50,9 @@
 static void srv_update_status(struct server *s);
 static void srv_update_state(struct server *srv, int version, char **params);
 static int srv_apply_lastaddr(struct server *srv, int *err_code);
-static int srv_set_fqdn(struct server *srv, const char *fqdn, int resolv_locked);
 static int srv_state_parse_line(char *buf, const int version, char **params);
 static int srv_state_get_version(FILE *f);
 static void srv_cleanup_connections(struct server *srv);
-static const char *update_server_check_addr_port(struct server *s, const char *addr,
-						 const char *port);
-static const char *update_server_agent_addr_port(struct server *s, const char *addr,
-						 const char *port);
 
 /* List head of all known server keywords */
 static struct srv_kw_list srv_keywords = {
@@ -1377,11 +1372,11 @@
 	unsigned char ip[INET6_ADDRSTRLEN];
 
 	if (inet_pton(AF_INET6, addr_str, ip)) {
-		update_server_addr(sv, ip, AF_INET6, updater);
+		srv_update_addr(sv, ip, AF_INET6, updater);
 		return NULL;
 	}
 	if (inet_pton(AF_INET, addr_str, ip)) {
-		update_server_addr(sv, ip, AF_INET, updater);
+		srv_update_addr(sv, ip, AF_INET, updater);
 		return NULL;
 	}
 
@@ -1588,7 +1583,7 @@
  * May be safely called with a default server as <src> argument (without hostname).
  * Returns -1 in case of any allocation failure, 0 if not.
  */
-static int srv_prepare_for_resolution(struct server *srv, const char *hostname)
+int srv_prepare_for_resolution(struct server *srv, const char *hostname)
 {
 	char *hostname_dn;
 	int   hostname_len, hostname_dn_len;
@@ -3007,7 +3002,7 @@
 	if (params[18] && strcmp(params[18], "-") != 0)
 		addr = params[18];
 	if (addr || port_st) {
-		warning = update_server_check_addr_port(srv, addr, port_st);
+		warning = srv_update_check_addr_port(srv, addr, port_st);
 		if (warning) {
 			chunk_appendf(msg, ", %s", warning);
 			goto out;
@@ -3021,7 +3016,7 @@
 	if (params[19] && strcmp(params[19], "-") != 0)
 		addr = params[19];
 	if (addr || port_st) {
-		warning = update_server_agent_addr_port(srv, addr, port_st);
+		warning = srv_update_agent_addr_port(srv, addr, port_st);
 		if (warning) {
 			chunk_appendf(msg, ", %s", warning);
 			goto out;
@@ -3359,7 +3354,7 @@
 		goto close_globalfile;
 	}
 
-	for (linenum = 0; fgets(mybuf, SRV_STATE_LINE_MAXLEN, f); linenum++) {
+	for (linenum = 1; fgets(mybuf, SRV_STATE_LINE_MAXLEN, f); linenum++) {
 		int ret;
 
 		ret = srv_state_parse_and_store_line(mybuf, global_vsn, &global_state_tree, NULL);
@@ -3428,7 +3423,7 @@
 		}
 
 		/* First, parse lines of the local server-state file and store them in a eb-tree */
-		for (linenum = 0; fgets(mybuf, SRV_STATE_LINE_MAXLEN, f); linenum++) {
+		for (linenum = 1; fgets(mybuf, SRV_STATE_LINE_MAXLEN, f); linenum++) {
 			int ret;
 
 			ret = srv_state_parse_and_store_line(mybuf, local_vsn, &local_state_tree, curproxy);
@@ -3489,7 +3484,7 @@
  *
  * Must be called with the server lock held.
  */
-int update_server_addr(struct server *s, void *ip, int ip_sin_family, const char *updater)
+int srv_update_addr(struct server *s, void *ip, int ip_sin_family, const char *updater)
 {
 	/* save the new IP family & address if necessary */
 	switch (ip_sin_family) {
@@ -3570,8 +3565,7 @@
  * if one error occurs, don't apply anything
  * must be called with the server lock held.
  */
-static const char *update_server_agent_addr_port(struct server *s, const char *addr,
-						 const char *port)
+const char *srv_update_agent_addr_port(struct server *s, const char *addr, const char *port)
 {
 	struct sockaddr_storage sk;
 	struct buffer *msg;
@@ -3618,8 +3612,7 @@
  * if one error occurs, don't apply anything
  * must be called with the server lock held.
  */
-static const char *update_server_check_addr_port(struct server *s, const char *addr,
-						 const char *port)
+const char *srv_update_check_addr_port(struct server *s, const char *addr, const char *port)
 {
 	struct sockaddr_storage sk;
 	struct buffer *msg;
@@ -3685,7 +3678,7 @@
  *
  * Must be called with the server lock held.
  */
-const char *update_server_addr_port(struct server *s, const char *addr, const char *port, char *updater)
+const char *srv_update_addr_port(struct server *s, const char *addr, const char *port, char *updater)
 {
 	struct sockaddr_storage sa;
 	int ret, port_change_required;
@@ -4025,7 +4018,7 @@
 	}
 	else
 		chunk_printf(chk, "DNS cache");
-	update_server_addr(s, firstip, firstip_sin_family, (char *) chk->area);
+	srv_update_addr(s, firstip, firstip_sin_family, (char *) chk->area);
 
  update_status:
 	snr_update_srv_status(s, has_no_ip);
@@ -4414,7 +4407,7 @@
 /*
  * Must be called with the server lock held.
  */
-const char *update_server_fqdn(struct server *server, const char *fqdn, const char *updater, int resolv_locked)
+const char *srv_update_fqdn(struct server *server, const char *fqdn, const char *updater, int resolv_locked)
 {
 
 	struct buffer *msg;
@@ -4565,7 +4558,7 @@
 		addr = args[4];
 		if (strcmp(args[5], "port") == 0)
 			port = args[6];
-		warning = update_server_agent_addr_port(sv, addr, port);
+		warning = srv_update_agent_addr_port(sv, addr, port);
 		if (warning)
 			cli_msg(appctx, LOG_WARNING, warning);
 	}
@@ -4577,7 +4570,7 @@
 			goto out_unlock;
 		}
 		port = args[4];
-		warning = update_server_agent_addr_port(sv, NULL, port);
+		warning = srv_update_agent_addr_port(sv, NULL, port);
 		if (warning)
 			cli_msg(appctx, LOG_WARNING, warning);
 	}
@@ -4600,7 +4593,7 @@
 		addr = args[4];
 		if (strcmp(args[5], "port") == 0)
 			port = args[6];
-		warning = update_server_check_addr_port(sv, addr, port);
+		warning = srv_update_check_addr_port(sv, addr, port);
 		if (warning)
 			cli_msg(appctx, LOG_WARNING, warning);
 	}
@@ -4612,7 +4605,7 @@
 			goto out_unlock;
 		}
 		port = args[4];
-		warning = update_server_check_addr_port(sv, NULL, port);
+		warning = srv_update_check_addr_port(sv, NULL, port);
 		if (warning)
 			cli_msg(appctx, LOG_WARNING, warning);
 	}
@@ -4629,7 +4622,7 @@
 		if (strcmp(args[5], "port") == 0) {
 			port = args[6];
 		}
-		warning = update_server_addr_port(sv, addr, port, "stats socket command");
+		warning = srv_update_addr_port(sv, addr, port, "stats socket command");
 		if (warning)
 			cli_msg(appctx, LOG_WARNING, warning);
 		srv_clr_admin_flag(sv, SRV_ADMF_RMAINT);
@@ -4643,7 +4636,7 @@
 		if (sv->flags & SRV_F_NO_RESOLUTION) {
 			sv->flags &= ~SRV_F_NO_RESOLUTION;
 		}
-		warning = update_server_fqdn(sv, args[4], "stats socket command", 0);
+		warning = srv_update_fqdn(sv, args[4], "stats socket command", 0);
 		if (warning)
 			cli_msg(appctx, LOG_WARNING, warning);
 	}
