File tree Expand file tree Collapse file tree 2 files changed +42
-35
lines changed Expand file tree Collapse file tree 2 files changed +42
-35
lines changed Original file line number Diff line number Diff line change @@ -552,47 +552,53 @@ func randomFallbackServer() string {
552552}
553553
554554func formatMessageAnswerSection (section []dns.RR ) string {
555- ret := "[ "
555+ var sb strings.Builder
556+ sb .WriteByte ('[' )
557+ sb .WriteByte (' ' )
556558 for idx , rr := range section {
557- ret += fmt .Sprintf (
558- "< %s >" ,
559- strings .ReplaceAll (
560- strings .TrimPrefix (
561- rr .String (),
562- ";" ,
563- ),
564- "\t " ,
565- " " ,
559+ sb .WriteByte ('<' )
560+ sb .WriteByte (' ' )
561+ sb .WriteString (strings .ReplaceAll (
562+ strings .TrimPrefix (
563+ rr .String (),
564+ ";" ,
566565 ),
567- )
566+ "\t " ,
567+ " " ,
568+ ))
569+ sb .WriteByte ('>' )
570+ sb .WriteByte (' ' )
568571 if idx != len (section )- 1 {
569- ret += `,`
572+ sb . WriteByte ( ',' )
570573 }
571- ret += ` `
574+ sb . WriteByte ( ' ' )
572575 }
573- ret += "]"
574- return ret
576+ sb . WriteByte ( ']' )
577+ return sb . String ()
575578}
576579
577580func formatMessageQuestionSection (section []dns.Question ) string {
578- ret := "[ "
581+ var sb strings.Builder
582+ sb .WriteByte ('[' )
583+ sb .WriteByte (' ' )
579584 for idx , question := range section {
580- ret += fmt .Sprintf (
581- "< %s >" ,
582- strings .ReplaceAll (
583- strings .TrimPrefix (
584- question .String (),
585- ";" ,
586- ),
587- "\t " ,
588- " " ,
585+ sb .WriteByte ('<' )
586+ sb .WriteByte (' ' )
587+ sb .WriteString (strings .ReplaceAll (
588+ strings .TrimPrefix (
589+ question .String (),
590+ ";" ,
589591 ),
590- )
592+ "\t " ,
593+ " " ,
594+ ))
595+ sb .WriteByte ('>' )
596+ sb .WriteByte (' ' )
591597 if idx != len (section )- 1 {
592- ret += `,`
598+ sb . WriteByte ( ',' )
593599 }
594- ret += ` `
600+ sb . WriteByte ( ' ' )
595601 }
596- ret += "]"
597- return ret
602+ sb . WriteByte ( ']' )
603+ return sb . String ()
598604}
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ import (
1313 "fmt"
1414 "io"
1515 "net"
16+ "strings"
1617)
1718
1819const (
@@ -282,8 +283,8 @@ func domainRecordIPv6Decode(r *BytesReader) (net.IP, error) {
282283}
283284
284285func domainRecordNameDecode (r * BytesReader ) (string , error ) {
286+ var sb strings.Builder
285287 // NOTE: this function is mostly ported straight from hnsd
286- var name string
287288 for {
288289 c , err := r .ReadByte ()
289290 if err != nil {
@@ -311,10 +312,10 @@ func domainRecordNameDecode(r *BytesReader) (string, error) {
311312 if b == 0x2e {
312313 b = 0xfe
313314 }
314- name += string ([] byte { b } )
315+ sb . WriteByte ( b )
315316 }
316- if len ( name ) > 0 {
317- name += "."
317+ if sb . Len ( ) > 0 {
318+ sb . WriteByte ( '.' )
318319 }
319320 case 0xc0 :
320321 // Lookup name from earlier in the buffer
@@ -338,5 +339,5 @@ func domainRecordNameDecode(r *BytesReader) (string, error) {
338339 return "" , errors .New ("unexpected value" )
339340 }
340341 }
341- return name , nil
342+ return sb . String () , nil
342343}
You can’t perform that action at this time.
0 commit comments