Skip to content

在 nginx C module 中,如何判断是否在 openresty 环境下并且向 lua 注册 C 函数 #2447

@zhwaaaaaa

Description

@zhwaaaaaa

请问在 nginx module 中,如何判断 是在 openresty 环境下,并且向 lua 注册 C 函数。
ngx_lua_foo_module:

#include <ngx_config.h>
#include <ngx_core.h>

// ... some C code running in pure nginx


// 如何判断??
#ifdef OPENRESTY

#include <lauxlib.h>
#include "ngx_http_lua_api.h"

static int
ngx_http_lua_foo_module(lua_State * L)
{
    lua_createtable(L, 0, 6);

    lua_pushcfunction(L, ngx_http_lua_foo);
    lua_setfield(L, -2, "foo");

    return 1;
}

#endif

在 编译 CONFIG 文件中 如何判断是在 openresty 环境下“
nginx compile config:

ngx_module_type=EVENT
ngx_module_name=ngx_foo_module
ngx_module_incs=
ngx_module_deps=
ngx_module_srcs=$ngx_addon_dir/ngx_foo_module.c
ngx_module_libs=
ngx_module_order=
ngx_module_link=ADDON

. auto/module

if [ "$OPENRESTY" = ”yes“ ];then # 如何判断 ??
  ngx_module_type=EVENT
  ngx_module_name=ngx_foo_lua_module
  ngx_module_incs=
  ngx_module_deps=
  ngx_module_srcs=$ngx_addon_dir/ngx_foo_lua_module.c
  ngx_module_libs=
  ngx_module_order=
  ngx_module_link=ADDON
fi

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions