MINOR: hlua_fcn: add Server.tracking()

This function returns the currently tracked server, if any.
diff --git a/doc/lua-api/index.rst b/doc/lua-api/index.rst
index 5c05871..4055ac2 100644
--- a/doc/lua-api/index.rst
+++ b/doc/lua-api/index.rst
@@ -1337,6 +1337,15 @@
   :param class_server sv: A :ref:`server_class` which indicates the manipulated
    server.
 
+.. js:function:: Server.tracking(sv)
+
+  Check if the current server is tracking another server.
+
+  :param class_server sv: A :ref:`server_class` which indicates the manipulated
+   server.
+  :returns: A :ref:`server_class` which indicates the tracked server or nil if
+   the server doesn't track another one.
+
 .. js:function:: Server.event_sub(sv, event_types, func)
 
   Register a function that will be called on specific server events.
diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c
index 61eb580..931b609 100644
--- a/src/hlua_fcn.c
+++ b/src/hlua_fcn.c
@@ -1410,6 +1410,26 @@
 	return 0;
 }
 
+/* returns the tracked server, if any */
+int hlua_server_tracking(lua_State *L)
+{
+	struct server *sv;
+	struct server *tracked;
+
+	sv = hlua_check_server(L, 1);
+	if (sv == NULL) {
+		return 0;
+	}
+
+	tracked = sv->track;
+	if (tracked == NULL)
+		lua_pushnil(L);
+	else
+		hlua_fcn_new_server(L, tracked);
+
+	return 1;
+}
+
 /* hlua_event_sub wrapper for per-server subscription:
  *
  * hlua_event_sub() is called with sv->e_subs subscription list and
@@ -1472,6 +1492,7 @@
 	hlua_class_function(L, "agent_disable", hlua_server_agent_disable);
 	hlua_class_function(L, "agent_force_up", hlua_server_agent_force_up);
 	hlua_class_function(L, "agent_force_down", hlua_server_agent_force_down);
+	hlua_class_function(L, "tracking", hlua_server_tracking);
 	hlua_class_function(L, "event_sub", hlua_server_event_sub);
 
 	return 1;