summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.adoc150
-rw-r--r--share.go2
2 files changed, 139 insertions, 13 deletions
diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc
index 42517eb5..c9b7a81d 100644
--- a/CHANGELOG.adoc
+++ b/CHANGELOG.adoc
@@ -20,18 +20,71 @@ This is changelog for share module since v0.1.0 until v0.11.0.
[#v0_45_0]
-== share v0.45.0-dev (2023-04-xx)
+== share v0.45.0 (2023-04-01)
+
+This release set the Go version to 1.19.
+
+[#v0_45_0__breaking_changes]
+=== Breaking changes
+
+lib/net: changes the PopulateQuery logic::
++
+--
+Previously, PopulateQuery only add the passed dname if the number of dots
+is greater than 0.
+After inspecting the result from dig and getenv, the dots seems does not
+affect the query.
+For example, if we have A record for domain "kilabit", both of those tools
+query name "kilabit" without adding local domain or domain in search.
+--
[#v0_45_0__new_features]
=== New features
-lib/telemetry: package for collecting and forwarding metrics::
+_bin: add shell script go-test-lint.sh to run test and lint sequentially::
+
-Package telemetry is a library for collecting various Metric, for example
-from standard runtime/metrics, and send or write it to one or more
-Forwarder.
-Each Forwarder has capability to format the Metric before sending or
-writing it using Formatter.
+--
+The go-test-lint.sh run Go test and if its success it will run
+predefined linter, in the current directory.
+
+Arg 1: the method or function to test, default to ".".
+
+The linter program and its argument is derived from environment variable
+GO_LINT.
+If its empty, it will try the following linter in order: revive and then
+golangci-lint.
+
+To add additional arguments to Go test set the environment variable
+GO_TEST_ARGS.
+--
+
+lib/bytes: add function DumpPrettyTable::
++
+The DumpPrettyTable write each byte in slice data as hexadecimal, ASCII
+character, and integer with 8 columns width.
+
+lib/bytes: add function SplitEach::
++
+The SplitEach funciton split the slice of byte into n number of bytes.
+If n is less or equal than zero, it will return the data as chunks.
+
+lib/dns: add function ParseZone::
++
+--
+The ParseZone parse the content of zone from raw bytes.
+
+Now that we have ParseZone, all tests that use zoneParser now can be
+replaced using combination of test.Data and ParseZone.
+--
+
+lib/dns: add method WriteTo to Zone::
++
+--
+The WriteTo method write the zone as text into io.Writer.
+
+The result of WriteTo will be different with original content of zone
+file, since it does not preserve comment and indentation.
+--
lib/http: add function to parse multipart Range response for Client::
+
@@ -47,20 +100,25 @@ For HTTP Server using HandleFS, the Range request is handled
automatically.
For other HTTP server, user can use the HandleRange function.
-The HandleRange function handle [HTTP Range] request using "bytes" unit.
+The HandleRange function handle
+https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests[HTTP Range]
+request using "bytes" unit.
The body parameter contains the content of resource being requested that
accept Seek method.
If the Request method is not GET, or no Range in header request it will
-return all the body [RFC7233 S-3.1].
+return all the body
+https://datatracker.ietf.org/doc/html/rfc7233#section-3.1[RFC7233 S-3.1].
The contentType is optional, if its empty, it will detected by
http.ResponseWriter during Write.
-
-[HTTP Range]: https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
-[RFC7233 S-3.1]: https://datatracker.ietf.org/doc/html/rfc7233#section-3.1
--
+lib/io: add method ReplaceAll on Reader::
++
+The ReplaceAll method behave like standard bytes.ReplaceAll but start
+from current index.
+
lib/parser: add method TokenTrimSpace::
+
The TokenTrimSpace read the next token until one of the delimiter found,
@@ -70,9 +128,77 @@ lib/parser: add method SetDelimiters::
+
The SetDelimiters replace the current delimiters.
+lib/telemetry: package for collecting and forwarding metrics::
++
+Package telemetry is a library for collecting various Metric, for example
+from standard runtime/metrics, and send or write it to one or more
+Forwarder.
+Each Forwarder has capability to format the Metric before sending or
+writing it using Formatter.
+
+
+[#v0_45_0__bug_Fixes]
+=== Bug fixes
+
+lib/dns: fix packing, parsing, and saving MINFO resource data::
++
+--
+Even thought the MINFO record not formally obsolete, according to
+https://en.wikipedia.org/wiki/List_of_DNS_record_types#Obsolete_record_types[Wikipedia],
+we still need to support this for backward compatibility.
+
+When packing the resource data length does not include total length.
+When parsing, the RMailBox and EmailBox should be added the origin suffix
+if its not end with dot.
+When saving, the origin should be trimmed from RMailBox and EmailBox.
+--
+
+lib/dns: fix packing and unpacking resource record HINFO::
++
+--
+The rdata for HINFO contains two character-strings: CPU and OS.
+Previously, we pack the rdata section sequentially, without adding length
+on each of them: <RDLEN><CPU><OS>.
+The correct pack format should <RDLEN><LENGTH><CPU><LENGTH><OS>.
+--
+
+lib/dns: fix parsing SRV record from zone file::
++
+--
+Previous parseSRV start by parsing the _Service from tok, but the
+actual value of parameter tok is the Priority.
+
+This changes fix this and as testing we use the example from RFC 2782.
+--
+
[#v0_45_0__enhancements]
=== Enhancements
+lib/dns: allow parsing TXT rdata without quote in zone file::
++
+--
+Previously, the zone only parsing TXT record with double quote since
+most of the example that we found during implementation all use double
+quote.
+
+This changes allow non-double quoted text in zone file with consequence
+that any spaces will terminated the rdata immediately.
+
+Fixes #6
+--
+
+lib/dns: handle zone file with CRLF line ending::
++
+--
+While at it, fix parsing multiline SOA record where closing parentheses
+end on next lines.
+
+Fixes #6
+--
+
+
+
+
lib/test: simplify the string diff output from Assert::
+
--
diff --git a/share.go b/share.go
index 685a40dd..3a90d3fd 100644
--- a/share.go
+++ b/share.go
@@ -8,5 +8,5 @@ package share
var (
// Version of this module.
- Version = `0.44.0`
+ Version = `0.45.0`
)