MINOR: lua: add "now" time function

This function returns the current time in the Lua.
diff --git a/doc/lua-api/index.rst b/doc/lua-api/index.rst
index 7a1f44e..d41451f 100644
--- a/doc/lua-api/index.rst
+++ b/doc/lua-api/index.rst
@@ -270,6 +270,20 @@
   :param string filename: the filename that reference the map entries.
   :param string key: the key which will be deleted.
 
+.. js:function:: core.now()
+
+  **context**: body, init, task, action
+
+  This function returns the current time. The time returned is fixed by the
+  HAProxy core and assures than the hour will be monotnic and that the system
+  call 'gettimeofday' will not be called too. The time is refreshed between each
+  Lua execution or resume, so two consecutive call to the function "now" will
+  probably returns the same result.
+
+  :returns: an array which contains two entries "sec" and "usec". "sec"
+    contains the current at the epoch format, and "usec" contains the
+    current microseconds.
+
 .. js:function:: core.msleep(milliseconds)
 
   **context**: body, init, task, action
diff --git a/src/hlua_fcn.c b/src/hlua_fcn.c
index 6078031..b4df09a 100644
--- a/src/hlua_fcn.c
+++ b/src/hlua_fcn.c
@@ -7,6 +7,21 @@
 #include <lua.h>
 #include <lualib.h>
 
+#include <common/time.h>
+
+/* This function return the current date at epoch format in milliseconds. */
+int hlua_now(lua_State *L)
+{
+	lua_newtable(L);
+	lua_pushstring(L, "sec");
+	lua_pushinteger(L, now.tv_sec);
+	lua_rawset(L, -3);
+	lua_pushstring(L, "usec");
+	lua_pushinteger(L, now.tv_usec);
+	lua_rawset(L, -3);
+	return 1;
+}
+
 static void hlua_array_add_fcn(lua_State *L, const char *name,
                                int (*function)(lua_State *L))
 {
@@ -17,5 +32,6 @@
 
 int hlua_fcn_reg_core_fcn(lua_State *L)
 {
-	return 0;
+	hlua_array_add_fcn(L, "now", hlua_now);
+	return 1;
 }