json compatible for debugging
This commit is contained in:
parent
7cfb6f83ac
commit
0166c01eba
2 changed files with 8 additions and 7 deletions
10
lib/debug.ml
10
lib/debug.ml
|
@ -1,7 +1,7 @@
|
||||||
let dns_header (header : Types.dns_header) =
|
let dns_header (header : Types.dns_header) =
|
||||||
Printf.sprintf
|
Printf.sprintf
|
||||||
"{ id = %d; flags = %d; num_questions = %d; num_answers = %d; num_authorities = %d; \
|
"{ \"id\": %d, \"flags\": %d, \"num_questions\": %d, \"num_answers\": %d, \
|
||||||
num_additionals = %d }"
|
\"num_authorities\": %d, \"num_additionals\": %d }"
|
||||||
header.id
|
header.id
|
||||||
header.flags
|
header.flags
|
||||||
header.num_questions
|
header.num_questions
|
||||||
|
@ -12,7 +12,7 @@ let dns_header (header : Types.dns_header) =
|
||||||
|
|
||||||
let dns_question (question : Types.dns_question) =
|
let dns_question (question : Types.dns_question) =
|
||||||
Printf.sprintf
|
Printf.sprintf
|
||||||
"{ name = '%s'; type_ = %d; class_ = %d }"
|
"{ \"name\": \"%s\", \"type_\": %d, \"class_\": %d }"
|
||||||
(Bytes.to_string question.name)
|
(Bytes.to_string question.name)
|
||||||
question.type_
|
question.type_
|
||||||
question.class_
|
question.class_
|
||||||
|
@ -20,10 +20,10 @@ let dns_question (question : Types.dns_question) =
|
||||||
|
|
||||||
let dns_record (record : Types.dns_record) =
|
let dns_record (record : Types.dns_record) =
|
||||||
Printf.sprintf
|
Printf.sprintf
|
||||||
"{ name = '%s'; type_ = %d; class_ = %d; ttl = %d; data = '%s' }"
|
"{ \"name\": \"%s\", \"type_\": %d, \"class_\": %d, \"ttl\": %d, \"data\": \"%s\" }"
|
||||||
(Bytes.to_string record.name)
|
(Bytes.to_string record.name)
|
||||||
record.type_
|
record.type_
|
||||||
record.class_
|
record.class_
|
||||||
record.ttl
|
record.ttl
|
||||||
(Utils.get_bytecode record.data)
|
(Utils.get_bytecode ~json:true record.data)
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
let get_bytecode data =
|
let get_bytecode ?(json = false) data =
|
||||||
|
let backslash = if json then "\\\\" else "\\" in
|
||||||
let result =
|
let result =
|
||||||
List.map
|
List.map
|
||||||
(fun byte ->
|
(fun byte ->
|
||||||
let code = Char.code byte in
|
let code = Char.code byte in
|
||||||
if code >= 65 && code <= 122
|
if code >= 65 && code <= 122
|
||||||
then String.make 1 byte
|
then String.make 1 byte
|
||||||
else Printf.sprintf "\\x%02X" code)
|
else Printf.sprintf "%sx%02X" backslash code)
|
||||||
(List.of_seq (Bytes.to_seq data))
|
(List.of_seq (Bytes.to_seq data))
|
||||||
in
|
in
|
||||||
String.concat "" result
|
String.concat "" result
|
||||||
|
|
Reference in a new issue