]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: lua: Add hlua_prepend_path function
authorTim Duesterhus <tim@bastelstu.be>
Sun, 12 Jan 2020 12:55:39 +0000 (13:55 +0100)
committerWilly Tarreau <w@1wt.eu>
Fri, 24 Jan 2020 08:21:35 +0000 (09:21 +0100)
This function is added in preparation for following patches.

src/hlua.c

index 900bad71b731d4640a84ce6c8648b9887599df73..0d943fb620018ecb6288291f6375192343e13395 100644 (file)
@@ -7458,6 +7458,22 @@ static int hlua_load(char **args, int section_type, struct proxy *curpx,
        return 0;
 }
 
+/* Prepend the given <path> followed by a semicolon to the `package.<type>` variable
+ * in the given <ctx>.
+ */
+static int hlua_prepend_path(struct hlua ctx, char *type, char *path)
+{
+       lua_getglobal(ctx.T, "package"); /* push package variable   */
+       lua_pushstring(ctx.T, path);     /* push given path         */
+       lua_pushstring(ctx.T, ";");      /* push semicolon          */
+       lua_getfield(ctx.T, -3, type);   /* push old path           */
+       lua_concat(ctx.T, 3);            /* concatenate to new path */
+       lua_setfield(ctx.T, -2, type);   /* store new path          */
+       lua_pop(ctx.T, 1);               /* pop package variable    */
+
+       return 0;
+}
+
 /* configuration keywords declaration */
 static struct cfg_kw_list cfg_kws = {{ },{
        { CFG_GLOBAL, "lua-load",                 hlua_load },