diff options
author | Timo Teräs <timo.teras@iki.fi> | 2017-05-18 10:43:31 +0300 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2017-05-18 10:44:08 +0300 |
commit | e20f9d2f6aa8485e0c5a051bcaa395141332cab6 (patch) | |
tree | 7820b01ef1b3a8b0e00b771d7a722c9078aa3bf6 /testing | |
parent | c159dac24ccc8160ce22914620b1148ac18801b6 (diff) | |
download | aports-e20f9d2f6aa8485e0c5a051bcaa395141332cab6.tar.bz2 aports-e20f9d2f6aa8485e0c5a051bcaa395141332cab6.tar.xz |
community/lua-resty-dns: moved from testing
Diffstat (limited to 'testing')
-rw-r--r-- | testing/lua-resty-dns/APKBUILD | 55 | ||||
-rw-r--r-- | testing/lua-resty-dns/add-naptr.patch | 244 |
2 files changed, 0 insertions, 299 deletions
diff --git a/testing/lua-resty-dns/APKBUILD b/testing/lua-resty-dns/APKBUILD deleted file mode 100644 index 6555d23668..0000000000 --- a/testing/lua-resty-dns/APKBUILD +++ /dev/null @@ -1,55 +0,0 @@ -# Contributor: Timo Teräs <timo.teras@iki.fi> -# Maintainer: Timo Teräs <timo.teras@iki.fi> -_luaversions="5.1" -pkgname=lua-resty-dns -pkgver=0.18 -pkgrel=0 -pkgdesc="DNS resolver for the nginx lua module" -url="https://github.com/openresty/lua-resty-dns" -arch="noarch" -license="BSD" -depends="nginx-mod-http-lua" -makedepends="" -install="" -subpackages="" -source="lua-resty-dns-$pkgver.tar.gz::https://github.com/openresty/lua-resty-dns/archive/v$pkgver.tar.gz - add-naptr.patch" -builddir="$srcdir/lua-resty-dns-$pkgver" - -for _v in $_luaversions; do - subpackages="$subpackages lua${_v}-resty-dns:split_${_v/./_}" -done - -build() { - cd "$builddir" -} - -package() { - cd "$builddir" - local _i - for _i in $_luaversions; do - mkdir -p "$pkgdir"/usr/share/lua/$_i - make DESTDIR="$pkgdir" LUA_LIB_DIR="/usr/share/lua/$_i" install \ - || return 1 - done -} - -_split() { - local d= _ver=$1 - pkgdesc="$pkgdesc for Lua $_ver" - install_if="lua$_ver $pkgname=$pkgver-r$pkgrel" - depends= - for d in usr/lib/lua usr/share/lua; do - if [ -d "$pkgdir"/$d/$_ver ]; then - mkdir -p "$subpkgdir"/$d - mv "$pkgdir"/$d/$_ver "$subpkgdir"/$d/ || return 1 - fi - done -} - -for _v in $_luaversions; do - eval "split_${_v/./_}() { _split $_v; }" -done - -sha512sums="c825b34428aa50d1640b76bac4c39e4f39de042b3f7beef3eb764a01f09e173e439e5e0560bc49daa01891ea0f2c44ef993fe9839939bc0d06025a8aa1b0c005 lua-resty-dns-0.18.tar.gz -9f245faff407938965cd0b719ca0952678468cb9f34c1cbb6809b9ed8806c0f6441c1dee0950fd5e21b5f65666c0f651e84a01f9f69f05a4df3e65757a744669 add-naptr.patch" diff --git a/testing/lua-resty-dns/add-naptr.patch b/testing/lua-resty-dns/add-naptr.patch deleted file mode 100644 index 3ef1985197..0000000000 --- a/testing/lua-resty-dns/add-naptr.patch +++ /dev/null @@ -1,244 +0,0 @@ -From 2d39a1bc09441c2b77d6911f43f94e9438c2d96c Mon Sep 17 00:00:00 2001 -From: Sergey Lukin <sergey.lukin@inbox.lv> -Date: Fri, 5 Aug 2016 12:09:11 +0300 -Subject: [PATCH] add NAPTR record support - ---- - README.markdown | 11 +++++++++ - lib/resty/dns/resolver.lua | 61 ++++++++++++++++++++++++++++++++++++++++++++++ - t/TestDNS.pm | 19 ++++++++++++++- - t/mock.t | 51 ++++++++++++++++++++++++++++++++++++++ - 4 files changed, 141 insertions(+), 1 deletion(-) - -diff --git a/README.markdown b/README.markdown -index 78c4632..1699f77 100644 ---- a/README.markdown -+++ b/README.markdown -@@ -28,6 +28,7 @@ Table of Contents - * [TYPE_TXT](#type_txt) - * [TYPE_AAAA](#type_aaaa) - * [TYPE_SRV](#type_srv) -+ * [TYPE_NAPTR](#type_naptr) - * [TYPE_SPF](#type_spf) - * [CLASS_IN](#class_in) - * [SECTION_AN](#section_an) -@@ -375,6 +376,16 @@ See RFC 2782 for details. - - [Back to TOC](#table-of-contents) - -+TYPE_NAPTR -+---------- -+`syntax: typ = r.TYPE_NAPTR` -+ -+The `NAPTR` resource record type, equal to the decimal number `35`. -+ -+See RFC 2915 for details. -+ -+[Back to TOC](#table-of-contents) -+ - TYPE_SPF - --------- - `syntax: typ = r.TYPE_SPF` -diff --git a/lib/resty/dns/resolver.lua b/lib/resty/dns/resolver.lua -index cecb7e3..576db03 100644 ---- a/lib/resty/dns/resolver.lua -+++ b/lib/resty/dns/resolver.lua -@@ -46,6 +46,7 @@ local TYPE_MX = 15 - local TYPE_TXT = 16 - local TYPE_AAAA = 28 - local TYPE_SRV = 33 -+local TYPE_NAPTR = 35 - local TYPE_SPF = 99 - - local CLASS_IN = 1 -@@ -65,6 +66,7 @@ local _M = { - TYPE_TXT = TYPE_TXT, - TYPE_AAAA = TYPE_AAAA, - TYPE_SRV = TYPE_SRV, -+ TYPE_NAPTR = TYPE_NAPTR, - TYPE_SPF = TYPE_SPF, - CLASS_IN = CLASS_IN, - SECTION_AN = SECTION_AN, -@@ -208,6 +210,21 @@ local function _encode_name(s) - end - - -+local function _decode_string(buf, pos) -+ local slen = byte(buf, pos) -+ -+ if slen == 0 then -+ return "", pos + 1 -+ end -+ -+ if pos + 1 + slen > #buf then -+ return nil, 'truncated' -+ end -+ -+ return sub(buf, pos + 1, pos + slen), pos + slen + 1 -+end -+ -+ - local function _decode_name(buf, pos) - local labels = {} - local nptrs = 0 -@@ -481,6 +498,50 @@ local function parse_section(answers, section, buf, start_pos, size, - - pos = p - -+ elseif typ == TYPE_NAPTR then -+ if len < 7 then -+ return nil, "bad NAPTR record value length: " .. len -+ end -+ -+ local order_hi = byte(buf, pos) -+ local order_lo = byte(buf, pos + 1) -+ ans.order = lshift(order_hi, 8) + order_lo -+ -+ local preference_hi = byte(buf, pos + 2) -+ local preference_lo = byte(buf, pos + 3) -+ ans.preference = lshift(preference_hi, 8) + preference_lo -+ -+ local flags_str, p = _decode_string(buf, pos + 4) -+ if not flags_str then -+ return nil, pos -+ end -+ ans.flags = flags_str -+ -+ local services_str, p = _decode_string(buf, p) -+ if not services_str then -+ return nil, pos -+ end -+ ans.services = services_str -+ -+ local regexp_str, p = _decode_string(buf, p) -+ if not regexp_str then -+ return nil, pos -+ end -+ ans.regexp = regexp_str -+ -+ local replacements_str,p = _decode_name(buf, p) -+ if not replacements_str then -+ return nil, pos -+ end -+ ans.replacements = replacements_str -+ -+ if p - pos ~= len then -+ return nil, format("bad NAPTR record length: %d ~= %d", -+ p - pos, len) -+ end -+ -+ pos = p -+ - elseif typ == TYPE_NS then - - local name, p = _decode_name(buf, pos) -diff --git a/t/TestDNS.pm b/t/TestDNS.pm -index cf01f29..9971c80 100644 ---- a/t/TestDNS.pm -+++ b/t/TestDNS.pm -@@ -13,6 +13,7 @@ use constant { - TYPE_CNAME => 5, - TYPE_AAAA => 28, - TYPE_SRV => 33, -+ TYPE_NAPTR => 35, - CLASS_INTERNET => 1, - }; - -@@ -261,6 +262,11 @@ sub encode_name ($) { - return $name; - } - -+sub encode_str ($) { -+ my $str = shift; -+ return chr(length($str)) . $str; -+} -+ - sub encode_record ($) { - my $ans = shift; - my $name = $ans->{name}; -@@ -304,7 +310,6 @@ sub encode_record ($) { - $class //= CLASS_INTERNET; - } - -- - my $srv = $ans->{srv}; - if (defined $srv) { - $rddata //= pack("nnn", $ans->{priority}, $ans->{weight}, $ans->{port}) . encode_name($srv); -@@ -313,6 +318,18 @@ sub encode_record ($) { - $class //= CLASS_INTERNET; - } - -+ my $services = $ans->{services}; -+ if (defined $services) { -+ $rddata //= pack("nn", $ans->{order}, $ans->{preference}) -+ . encode_str($ans->{flags}) -+ . encode_str($ans->{services}) -+ . encode_str($ans->{regexp}) -+ . encode_name($ans->{replacements}); -+ $rdlength //= length $rddata; -+ $type //= TYPE_NAPTR; -+ $class //= CLASS_INTERNET; -+ } -+ - $type //= 0; - $class //= 0; - $ttl //= 0; -diff --git a/t/mock.t b/t/mock.t -index 6d43c6f..cc727f0 100644 ---- a/t/mock.t -+++ b/t/mock.t -@@ -1721,3 +1721,54 @@ GET /t - records: [{"address":"127.0.0.1","section":1,"type":1,"class":1,"name":"www.google.com","ttl":123456}] - --- no_error_log - [error] -+ -+ -+=== TEST 35: NAPTR -+--- http_config eval: $::HttpConfig -+--- config -+ location /t { -+ content_by_lua ' -+ local resolver = require "resty.dns.resolver" -+ -+ local r, err = resolver:new{ -+ nameservers = { {"127.0.0.1", 1953} } -+ } -+ if not r then -+ ngx.say("failed to instantiate resolver: ", err) -+ return -+ end -+ -+ r._id = 125 -+ -+ local ans, err = r:query("5.4.3.2.1.e164.arpa", { qtype = r.TYPE_NAPTR }) -+ if not ans then -+ ngx.say("failed to query: ", err) -+ return -+ end -+ -+ local cjson = require "cjson" -+ ngx.say("records: ", cjson.encode(ans)) -+ '; -+ } -+--- udp_listen: 1953 -+--- udp_reply dns -+{ -+ id => 125, -+ opcode => 0, -+ qtype => 35, # NAPTR -+ qname => '5.4.3.2.1.e164.arpa', -+ answer => [ -+ { name => "5.4.3.2.1.e164.arpa", ttl => 2, order => 10, preference => 100, -+ flags => "u", -+ services => "E2U+sip", -+ regexp => "!^\\+123456(.*)\$!sip:\\1\@example.org!", -+ replacements => "" -+ } -+ ], -+} -+--- request -+GET /t -+--- response_body -+records: [{"order":10,"preference":100,"class":1,"regexp":"!^\\+123456(.*)$!sip:\\1@example.org!","replacements":"","section":1,"flags":"u","type":35,"ttl":2,"name":"5.4.3.2.1.e164.arpa","services":"E2U+sip"}] -+--- no_error_log -+[error] |