Commit Graph

89 Commits

Author SHA1 Message Date
Daniel Morsing 433ab7b569 Reduce amount of work done when unpacking unprintable characters.
Instead of going through the fmt package, we can use append int,
which saves an allocation.

benchmark                                old ns/op     new ns/op     delta
BenchmarkUnpackDomainNameUnprintable     2147          506           -76.43%
2014-11-06 13:51:29 +00:00
Miek Gieben a945149fab Print unknown record type with CLASSX and TYPEX
When printing unknown records it is best to print the entire thing
as unknown, instead of relying on the internal defined type. An
example A record, printed as an unknown one:
    miek.nl.      3600    CLASS1  TYPE1   \# 4 0a000101
2014-11-02 11:06:05 +00:00
Miek Gieben 02dd474056 Dont export typeToRR (old rr_mk) 2014-09-16 07:31:20 +01:00
Miek Gieben bcb640ccaf Make rr_mk public and call it TypeToRR 2014-09-16 07:15:06 +01:00
Miek Gieben 0aa3021a83 Remove all copyright notices
Use the central COPYRIGHT file.
2014-09-11 20:57:37 +01:00
Miek Gieben 06fc321c2c fmt 2014-08-30 08:45:10 +01:00
Miek Gieben 34f5a12bfc Don't crash on emtpy string in compressionLenSearch
Fixes #105
2014-08-22 08:46:24 +00:00
Miek Gieben 9f5fcf8459 Add extra length test for issue #105 2014-08-22 08:15:35 +01:00
Miek Gieben f5fe400c53 Lowercase all test output.
Add Shutdown tests as well
2014-08-19 08:39:04 +00:00
Miek Gieben 5a8fe5d5f7 Add Copy test 2014-06-06 21:10:38 +01:00
Andrew Tunnell-Jones 8772f9064c Make PackRR enforce RR data length limit
• Make rawSetRdlength return false if length would overflow
• Make PackRR assume rawSetRdlength returning false indicates an overflow
2014-04-29 05:03:01 +00:00
Miek Gieben 87b380cad5 Revert "Use dLen for domain name length"
This reverts commit b595183834.

Fix up the tests too.
2014-02-14 20:20:22 +00:00
Miek Gieben c46b0e07c3 Normalize names a bit 2014-02-12 13:36:04 +00:00
Miek Gieben 89cc033428 Be much more precice in msg.Len()
There is still a one-off in EDNS0 records, but I'm not too bothered with
that one.
2014-02-12 12:59:42 +00:00
Miek Gieben b595183834 Use dLen for domain name length 2014-02-12 12:50:16 +00:00
Miek Gieben 31102c38b7 Make Len() much more accurate for compressed messages.
Lots of changes made and bugs fixed.
2014-02-11 23:01:47 +00:00
Miek Gieben d0fa099d08 Document and disable the test 2014-02-10 20:28:17 +00:00
Miek Gieben d24565edc8 Merge branch 'len'
Cleanup the rest and add the test.
2014-02-10 20:20:08 +00:00
Miek Gieben 21283d2192 Improve msg.Len() accuracy
Currently msg.Len() overshoots a _lot_ when compression is
enabled. The main problem is that once a part of a domain is found to
be compressed, the whole domain is _not_ added back to compression
dictionary.

That means if we once cache ".microsoft.com" we won't cache
"blah.microsoft.com".

Ammended a bit: put the test in dns_test.go
2014-02-10 20:16:05 +00:00
Miek Gieben 372e3d55c3 More tests lenght 2014-02-10 12:29:33 +00:00
Miek Gieben 56e0bb46d8 Remove packLen() and fix bug in Len()
packLen() was a featureless mirror of Len(). Remove it, and just use
Len() internally too.
Fix bug in Len() too, where the length of the additional section was
not counted.
2014-02-10 12:23:53 +00:00
Alex Ciuba 008c1d5916 Add domain unpacking benchmark 2014-02-01 01:29:10 -05:00
Miek Gieben dd35496669 dont care about padding for benchmark function 2014-01-29 07:56:21 +00:00
Miek Gieben 876680216e Revert "Revert "Add benchmark for message unpacking""
This reverts commit ca87093b6d.
2014-01-29 07:52:43 +00:00
Miek Gieben 509a6ff9e2 Revert "Revert "Fix benchmark alignment""
This reverts commit b8e6bd45be.
2014-01-29 07:52:23 +00:00
Miek Gieben f2f9d43da5 Revert "Revert "Add more benchmarks""
This reverts commit 58a3a82b8e.
2014-01-29 07:51:36 +00:00
Miek Gieben 58a3a82b8e Revert "Add more benchmarks"
This reverts commit 5a3bf3d749.
2014-01-28 22:44:07 +00:00
Miek Gieben b8e6bd45be Revert "Fix benchmark alignment"
This reverts commit 008dfb4ee8.
2014-01-28 22:43:57 +00:00
Miek Gieben ca87093b6d Revert "Add benchmark for message unpacking"
This reverts commit dc4eddaf9a.
2014-01-28 22:43:37 +00:00
Alex Ciuba dc4eddaf9a Add benchmark for message unpacking 2014-01-27 20:55:15 -05:00
Alex Ciuba 008dfb4ee8 Fix benchmark alignment 2014-01-27 17:40:57 -05:00
Alex Ciuba 5a3bf3d749 Add more benchmarks 2014-01-27 17:33:14 -05:00
Miek Gieben c17b6e8905 Merge pull request #68 from soh335/fix/empty-txt
if txt rdlength is 0, not read anymore
2014-01-04 06:41:58 -08:00
Miek Gieben 5b8a651bf0 Fix typo in comment 2014-01-04 11:53:50 +00:00
Miek Gieben 9e73cb688f Fix NAPTR's length function
Add the 3 bytes for the length byte of the strings.

Close issue #67.
2014-01-04 11:30:20 +00:00
soh335 e8a5f90957 if txt rdlength is 0, not read anymore 2014-01-04 17:30:08 +09:00
Miek Gieben 675f170a3d Fix axfr tsig 2013-10-12 14:00:10 +01:00
Miek Gieben bf37f92d4a Some test tweaking 2013-09-29 11:30:03 +01:00
Miek Gieben 29232adf26 better comment 2013-08-31 20:26:24 +01:00
Miek Gieben b6a2d1fb5e Allow empty rdata in records
Empty or no rdata is allowed for dynamic updates, so test if this
works for packing/unpacking. It only fails for TSIG (which is
never seen in zone files), SOA (which is not seen like this in dyn.
updates) and WKS (just an old record).
2013-08-31 20:24:52 +01:00
Miek Gieben 401a5e6429 Add unpack test too 2013-08-26 21:24:06 -07:00
Miek Gieben fdcdc6dbf6 Add test to zero rdata (for dyn updates)
This triggerd a bunch of failures, the most important one
is the packing and zero length domain name now works.
2013-08-26 21:11:24 -07:00
Miek Gieben cb9ec711f5 Add (failing) test for zero rdata 2013-08-25 21:38:10 -07:00
Miek Gieben 3f40afaafd Print the actual error 2013-06-27 20:01:32 +01:00
Miek Gieben 53789814d0 Add benchmarking tests - Len() is ~4 times after then packing and getting a length from that 2013-06-27 09:47:53 +00:00
Miek Gieben 1ad76fe65b Added packLen
packLen() returns the length of an uncompressed packet buffer, this
is used when packing a packet. This is needed for compression. When
compression is used, we first create the full packet and *then*
compress it. If we use Len() which accounts for compression, we can
get buffer overruns, when packing the (then still uncompressed) packet.
2013-06-26 22:18:09 +01:00
Ray Bejjani d83e816f30 Changed TestLenCompress to use error inducing name
Long labels cause a packing out of bounds error. It is thrown at msg.go:268 in
the PackDomain function. It happens with messages of any construction (no RR
data, some RR data etc.).
2013-06-26 20:38:55 +01:00
Miek Gieben b9f82b0a36 Cherry-pick specific hunks 2013-06-26 20:33:01 +01:00
Miek Gieben 38ea608d79 Rename the Label* functions
SplitLabels -> SplitDomainName
CompareLabels -> CompareDomainName
LenLabels -> CountLabel
          -> NextLabel was added as a simple iterator-like function
2013-06-22 07:21:15 +00:00
Miek Gieben f595bf7a06 Set license on test files 2013-05-12 16:09:52 +02:00