]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
added package_version() in Lua, removed version module
authorMarek Vavruša <mvavrusa@cloudflare.com>
Sat, 2 Dec 2017 04:00:03 +0000 (20:00 -0800)
committerTomas Krizek <tomas.krizek@nic.cz>
Mon, 16 Jul 2018 09:26:13 +0000 (11:26 +0200)
The package_version() function returns current build information.
Removed the version module instead of fixing, as it's being obsoleted.

.gitignore
.luacheckrc
config.mk
daemon/README.rst
daemon/engine.c
doc/modules.rst
modules/modules.mk
modules/version/README.rst [deleted file]
modules/version/version.lua.in [deleted file]
modules/version/version.mk [deleted file]

index 00338f46b56a85623f01a81d05f55cd038f071c8..da695c3bfd5ae486fdfd80041b914ddf63f7c6d5 100644 (file)
@@ -65,7 +65,6 @@ kresd.amalg.c
 libkres.amalg.c
 /doc/kresd.8
 /libkres.pc
-/modules/version/version.lua
 /tags
 /coverage
 /coverage.stats
index 1140b878358bb0422f5eda6a0f6b1ffc8bcfec6c..db1471c44caccdb6e78e86c529867a07c77f6edf 100644 (file)
@@ -3,6 +3,7 @@ new_read_globals = {
        'help',
        'quit',
        'hostname',
+       'package_version',
        'moduledir',
        'user',
        'verbose',
index b2c5455afff1a211f90be75d094996b35deb545c..fb28be39a459801e089aab3b978b167934d76286 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -2,7 +2,7 @@
 MAJOR := 2
 MINOR := 4
 PATCH := 0
-EXTRA :=
+EXTRA ?=
 ABIVER := 7
 BUILDMODE := dynamic
 HARDENING := yes
index 3ed2b8f41cbe607f27680f45837757cdd0b350d9..4c775d68add5f136592cad977293bc68345139c2 100644 (file)
@@ -349,6 +349,18 @@ Environment
          end
       end)
 
+.. function:: package_version()
+
+   :return: Current package version.
+
+   This returns current package version (the version of the binary) as a string.
+
+      .. code-block:: lua
+
+         > package_version()
+         2.1.1
+
+
 Network configuration
 ^^^^^^^^^^^^^^^^^^^^^
 
index 05c078dba82da4851f51ea5ca0f00f7421f22be1..0e73747b4fad2361225fb992bc0acd9a75a8def6 100644 (file)
@@ -70,6 +70,7 @@ static int l_help(lua_State *L)
                "help()\n    show this help\n"
                "quit()\n    quit\n"
                "hostname()\n    hostname\n"
+               "package_version()\n    return package version\n"
                "user(name[, group])\n    change process user (and group)\n"
                "verbose(true|false)\n    toggle verbose mode\n"
                "option(opt[, new_val])\n    get/set server option\n"
@@ -209,6 +210,13 @@ static int l_hostname(lua_State *L)
        return 1;
 }
 
+/** Return server package version. */
+static int l_package_version(lua_State *L)
+{
+       lua_pushliteral(L, PACKAGE_VERSION);
+       return 1;
+}
+
 char *engine_get_moduledir(struct engine *engine) {
        return engine->moduledir;
 }
@@ -646,6 +654,8 @@ static int init_state(struct engine *engine)
        lua_setglobal(engine->L, "quit");
        lua_pushcfunction(engine->L, l_hostname);
        lua_setglobal(engine->L, "hostname");
+       lua_pushcfunction(engine->L, l_package_version);
+       lua_setglobal(engine->L, "package_version");
        lua_pushcfunction(engine->L, l_moduledir);
        lua_setglobal(engine->L, "moduledir");
        lua_pushcfunction(engine->L, l_verbose);
index 9480b9c8139f464eb84e9a2f63fb63754ec8a136..4d4c23624c00a874606706f31d6d392a66b815f1 100644 (file)
@@ -23,7 +23,6 @@ Knot DNS Resolver modules
 .. include:: ../modules/dns64/README.rst
 .. include:: ../modules/renumber/README.rst
 .. include:: ../modules/cookies/README.rst
-.. include:: ../modules/version/README.rst
 .. include:: ../modules/bogus_log/README.rst
 .. include:: ../modules/workarounds/README.rst
 .. include:: ../modules/dnstap/README.rst
index 1764f2658be5e63b4e663c9d23dd22eb97974d56..c6c1174ad8b57148708327ed6b4aaa3eb73f2a16 100644 (file)
@@ -35,7 +35,6 @@ modules_TARGETS += bogus_log \
                    http \
                    daf \
                    workarounds \
-                   version \
                    ta_signal_query \
                    priming \
                    serve_stale \
diff --git a/modules/version/README.rst b/modules/version/README.rst
deleted file mode 100644 (file)
index 152d1e7..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-.. _mod-version:
-
-Version
--------
-
-Module checks for new version and CVE_, and issues warning messages.
-
-Configuration
-^^^^^^^^^^^^^
-.. code-block:: lua
-
-          version.config(2*day)
-       -- configure period of check (defaults to 1*day)
-
-Running
-^^^^^^^
-
-.. code-block:: lua
-
-          modules.load("version")
-
-.. _cve: https://cve.mitre.org/
diff --git a/modules/version/version.lua.in b/modules/version/version.lua.in
deleted file mode 100644 (file)
index 3585c35..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-local M = {}
-
-local function parseCVE(str)
-    local _, last = str:find("CVE")
-    local position = last+2
-    return str:sub(position,-1)
-end
-
-local function parseVersion(str)
-    local branch = "stable"
-    local _, last = str:find(branch)
-    local position = last+3
-    local delimiter = #str
-    if str:find("|",position) then
-        delimiter = str:find("|",position)-1
-    end
-    return str:sub(position, delimiter)
-end
-
---Parses version from server and compares it to the installed one
-local function parse(record)
-    local output = ""
-    local str = record:tostring(0)
-    local CVE = parseCVE(str)
-    local version = parseVersion(str)
-    local localVersion = '@VERSION@'
-    if version ~= localVersion then
-        output = output .. string.format(
-                       "[version] Current version of Knot DNS Resolver is different from the latest stable one available."
-                               .. " (Current: %s, Latest stable: %s)\n",
-                       localVersion, version)
-               if CVE ~= "N/A" then
-                       output = output .. string.format("[version] CVE: %s\n", CVE)
-               end
-    end
-    io.write(output)
-end
-
---Parses record from answer
-local function request (answer)
-    local pkt = kres.pkt_t(answer)
-    if pkt:rcode() == kres.rcode.NOERROR then
-        parse(pkt:rrsets(kres.section.ANSWER)[1])
-    else
-        log('[version] Request for version ended with rcode: ', pkt:rcode())
-        return
-    end
-end
-
-local function callhome()
-    resolve('et.knot-resolver.cz', kres.type.TXT, kres.class.IN, 0, request)
-end
-
-function M.config(period)
-    if not period or type(period) ~= "number" then
-        log("[version] Using default version.config(1*day)")
-        return
-    end
-    M.period = period
-    if M.ev then event.cancel(M.ev) end
-    M.ev = event.recurrent(M.period, callhome)
-end
-
-
-function M.init()
-    M.period = M.period or 1 * day
-    M.ev = event.recurrent(M.period, callhome)
-end
-
-function M.deinit()
-    if M.ev then event.cancel(M.ev) end
-end
-
-return M
diff --git a/modules/version/version.mk b/modules/version/version.mk
deleted file mode 100644 (file)
index 41d3234..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-version_SOURCES := version.lua
-
-modules/version/version.lua: modules/version/version.lua.in
-       @$(call quiet,SED,$<) -e "s/@VERSION@/$(VERSION)/" $< > $@
-
-$(call make_lua_module,version)
-
-version-clean:
-       @$(call quiet,RM,modules/version/version.lua) modules/version/version.lua
-
-.PHONY: version-clean