@@ -395,15 +395,8 @@ function _doBatch(items) {
395395 }
396396 var fallbackReq = fetchArgs [ j ] ;
397397 var fallbackUrl = fallbackReq . url ;
398- var fallbackOpts = { } ;
399- for ( var key in fallbackReq ) {
400- if (
401- Object . prototype . hasOwnProperty . call ( fallbackReq , key ) &&
402- key !== "url"
403- ) {
404- fallbackOpts [ key ] = fallbackReq [ key ] ;
405- }
406- }
398+ var fallbackOpts = Object . assign ( { } , fallbackReq ) ;
399+ delete fallbackOpts . url ;
407400 responses [ j ] = UrlFetchApp . fetch ( fallbackUrl , fallbackOpts ) ;
408401 } catch ( singleErr ) {
409402 errorMap [ fetchIndex [ j ] ] = String ( singleErr ) ;
@@ -608,12 +601,12 @@ function _edgeDnsResolve(prep, cachedReplyB64, cache, localMap) {
608601function _sha256Hex ( s ) {
609602 var d = Utilities . computeDigest (
610603 Utilities . DigestAlgorithm . SHA_256 , s , Utilities . Charset . UTF_8 ) ;
611- var hex = "" ;
604+ var parts = [ ] ;
612605 for ( var i = 0 ; i < d . length ; i ++ ) {
613606 var b = d [ i ] & 0xFF ;
614- hex += ( b < 16 ? "0" : "" ) + b . toString ( 16 ) ;
607+ parts . push ( ( b < 16 ? "0" : "" ) + b . toString ( 16 ) ) ;
615608 }
616- return hex ;
609+ return parts . join ( "" ) ;
617610}
618611
619612// Single DoH GET against `url`. Returns the reply as a byte array, or null
@@ -656,13 +649,13 @@ function _dnsParseQuestion(bytes) {
656649 if ( len > 63 ) return null ;
657650 off ++ ;
658651 if ( off + len > bytes . length ) return null ;
659- var label = "" ;
652+ var labelChars = [ ] ;
660653 for ( var i = 0 ; i < len ; i ++ ) {
661654 var c = bytes [ off + i ] & 0xFF ;
662655 if ( c >= 0x41 && c <= 0x5A ) c += 0x20 ; // ASCII lowercase
663- label += String . fromCharCode ( c ) ;
656+ labelChars . push ( String . fromCharCode ( c ) ) ;
664657 }
665- labels . push ( label ) ;
658+ labels . push ( labelChars . join ( "" ) ) ;
666659 off += len ;
667660 nameLen += len + 1 ;
668661 if ( nameLen > 255 ) return null ;
@@ -743,8 +736,7 @@ function _dnsSkipName(bytes, off) {
743736// cheap (~100 bytes for a typical DNS reply) compared to the surrounding
744737// base64 encode/decode work.
745738function _dnsRewriteTxid ( bytes , txid ) {
746- var out = [ ] ;
747- for ( var i = 0 ; i < bytes . length ; i ++ ) out . push ( bytes [ i ] ) ;
739+ var out = Array . prototype . slice . call ( bytes ) ;
748740 var hi = ( txid >> 8 ) & 0xFF ;
749741 var lo = txid & 0xFF ;
750742 out [ 0 ] = hi > 127 ? hi - 256 : hi ;
0 commit comments