diff --git a/test.zone.miek.nl.signed b/test.zone.miek.nl.signed index a2e6b376..2dd768d6 100644 --- a/test.zone.miek.nl.signed +++ b/test.zone.miek.nl.signed @@ -26336,6 +26336,4 @@ miek.nl. 345600 IN NS ext.ns.whyscream.net. miek.nl. 345600 IN NS open.nlnetlabs.nl. miek.nl. 345600 IN NS omval.tednet.nl. miek.nl. 345600 IN NS elektron.atoom.net. -2miek.nl. 345600 IN RRSIG SOA 8 2 345600 20110823011301 20110724011301 12051 miek.nl. r7f+/sWHR8g8y50XHDzOaOjXlpixIzUzBDbOVkCKhnOKhgSHeudWxCF7ZsfxfWNTe2kRgPJeVSgAWOc9KnPAORbBEpRAO6LtzQrqi99yuVTTNCL0+7+LwTLlG6kYkAGctJzlWEvEjCyN+r8Kq9sKa9VZSegQHxHsdCfCMsjR/3U= ;{id = 12051} -;; Added 6275 DS records (percentage was 25) to 10000 NS RRset's (from input-zone: 0, from added: 10000) -;; lines in original input-zone: 64 +2miek.nl. 345600 IN RRSIG SOA 8 2 345600 20110823011301 20110724011301 12051 miek.nl. r7f+/sWHR8g8y50XHDzOaOjXlpixIzUzBDbOVkCKhnOKhgSHeudWxCF7ZsfxfWNTe2kRgPJeVSgAWOc9KnPAORbBEpRAO6LtzQrqi99yuVTTNCL0+7+LwTLlG6kYkAGctJzlWEvEjCyN+r8Kq9sKa9VZSegQHxHsdCfCMsjR/3U= diff --git a/zscan.go b/zscan.go index a543c4a4..1b6d7258 100644 --- a/zscan.go +++ b/zscan.go @@ -296,14 +296,24 @@ func zlexer(r io.Reader, c chan lex) { rrtype := false owner := true brace := 0 + stop := false p, q := 0, 0 buf := make([]byte, MaxMsgSize) n, err := r.Read(buf) - for err != io.EOF { - l.column = 0 - l.line = 0 + if err == io.EOF { + stop = true + } + l.column = 0 + l.line = 1 // Yeah, start at one + for { + l.column++ switch buf[q] { case ' ', '\t': + // Awkward + if buf[q] == '\t' { // Tabs are eight + // Go to the first tabstop + l.column = (1 + (l.column / 8)) * 8 + } escape = false if commt { p++ @@ -365,6 +375,8 @@ func zlexer(r io.Reader, c chan lex) { commt = true case '\n': // Hmmm, escape newline + l.line++ + l.column = 0 escape = false if commt { // Reset a comment @@ -472,26 +484,43 @@ func zlexer(r io.Reader, c chan lex) { } // tok, err = r.ReadByte() read extra bytes q++ - if q > n-1 { // Funny, 'cause q starts at zero + if q > n-1 { // Funny, 'cause q starts at zero + if stop { + break + } + +// println("N", n) // Read in a new chunk. Every thing before p // can be discarded. - n1 := copy(buf, buf[p:]) +// println("PQ", p, q, string(buf[p:q])) + n1 := copy(buf, buf[p:]) +// println("copied n1", n1) // Reset the indices q = q - p p = 0 // Read a new chunk - n, err = r.Read(buf[n1:]) + n2, err := r.Read(buf[n1:]) + if err != nil { + // println("OOK NOG een error") + // println("err", err.Error()) + if err == io.EOF { + stop = true + } + } + n = n1 + n2/// JAJAJA +// println("****Wat heb ik", string(buf[:q]), "Q", "n:", n) +// println("****Wat heb ik", string(buf[:q+10]), "Q") + // println("wat is n nu", n) } } // It this need anymore??? - /* - if p != q { - // Send remainder - l.token = string(buf[p:q]) - l.value = _STRING - c <- l - } - */ +// println("pq", p, q) + if p != q { +// println("OVER", string(buf[p:q])) + l.token = string(buf[p:q]) + l.value = _STRING + c <- l + } } func stringToTtl(l lex, t chan Token) (uint32, bool) {