mirror of
https://github.com/adulau/pdns-qof.git
synced 2024-11-22 10:07:09 +00:00
Merge pull request #29 from pstray/master
Corrections to the ABNF and a few field type spesifications
This commit is contained in:
commit
5986f1f904
1 changed files with 16 additions and 14 deletions
|
@ -178,33 +178,35 @@ The document does not describe the protocol (e.g. <xref target="RFC3912">WHOIS</
|
||||||
<section title="ABNF grammar">
|
<section title="ABNF grammar">
|
||||||
<figure><preamble>Formal grammar as defined in <xref target="RFC2234">ABNF</xref></preamble><artwork><![CDATA[
|
<figure><preamble>Formal grammar as defined in <xref target="RFC2234">ABNF</xref></preamble><artwork><![CDATA[
|
||||||
answer = entries
|
answer = entries
|
||||||
entries = * ( entry CR)
|
entries = * ( entry newline )
|
||||||
entry = "{" keyvallist "}"
|
entry = ws "{" ws keyvallist ws "}" ws
|
||||||
keyvallist = [ member *( value-separator member ) ]
|
keyvallist = [ member *( value-separator member ) ]
|
||||||
member = qm field qm name-separator value
|
member = field name-separator value
|
||||||
name-separator = ws %x3A ws ; a ":" colon
|
name-separator = ws %x3A ws ; : colon
|
||||||
value = value ; as defined in the JSON RFC
|
value-separator = ws %x2C ws ; , comma
|
||||||
value-separator = ws %x2C ws ; , comma. As defined in JSON
|
field = field-name | futureField
|
||||||
field = "rrname" | "rrtype" | "rdata" | "time_first" |
|
field-name = "rrname" | "rrtype" | "rdata" | "time_first" |
|
||||||
"time_last" | "count" | "bailiwick" | "sensor_id" |
|
"time_last" | "count" | "bailiwick" | "sensor_id" |
|
||||||
"zone_time_first" | "zone_time_last" | "origin" |
|
"zone_time_first" | "zone_time_last" | "origin" |
|
||||||
"time_first_ms" | "time_last_ms" | futureField
|
"time_first_ms" | "time_last_ms"
|
||||||
futureField = string
|
futureField = string
|
||||||
CR = %x0D
|
newline = [ CR ] LF
|
||||||
qm = %x22 ; " a quotation mark
|
CR = %x0D ; Carrige return
|
||||||
|
LF = %x0A ; Line feed or New line
|
||||||
|
qm = %x22 ; " Quotation mark
|
||||||
ws = *(
|
ws = *(
|
||||||
%x20 | ; Space
|
%x20 | ; Space
|
||||||
%x09 ; Horizontal tab
|
%x09 ; Horizontal tab
|
||||||
)
|
)
|
||||||
|
|
||||||
]]></artwork></figure>
|
]]></artwork></figure>
|
||||||
<t>Note that value is defined in <xref target="RFC4627">JSON</xref> and has the exact same specification as there. The same goes for the definition of string.</t>
|
<t>Note that value is defined in <xref target="RFC4627">JSON</xref> and has the exact same specification as there. The same goes for the definition of string. Note the changed definition of ws dows not include CR or LF as those are NOT allowed in NDJSON, and thus the definition here MUST be used for other ABNF defitions in <xref target="RFC4627">JSON</xref>.</t>
|
||||||
</section>
|
</section>
|
||||||
<section title="Mandatory Fields">
|
<section title="Mandatory Fields">
|
||||||
<t>Implementation MUST support all the mandatory fields.</t>
|
<t>Implementation MUST support all the mandatory fields.</t>
|
||||||
<t>Uniqueness property: the tuple (rrname,rrtype,rdata) will always be unique within one answer per server. While rrname and rrtype are always individual JSON primitive types (strings, numbers, booleans or null), rdata MAY return multiple resource records or a single record. When multiple resource records are returned, rdata MUST be a JSON array. In the case of a single resource record is returned, rdata MUST be a JSON string or a JSON array containing one JSON string. Senders SHOULD send an array for rdata, but receivers MUST be able to accept a single-string result for rdata.</t>
|
<t>Uniqueness property: the tuple (rrname,rrtype,rdata) will always be unique within one answer per server. While rrname and rrtype are always individual JSON primitive types (strings, numbers, booleans or null), rdata MAY return multiple resource records or a single record. When multiple resource records are returned, rdata MUST be a JSON array. In the case of a single resource record is returned, rdata MUST be a JSON string or a JSON array containing one JSON string. Senders SHOULD send an array for rdata, but receivers MUST be able to accept a single-string result for rdata.</t>
|
||||||
<section title="rrname">
|
<section title="rrname">
|
||||||
<t>This field returns the name of the queried resource. <xref target="RFC4627">JSON</xref> string.</t>
|
<t>This field returns the name of the queried resource. Represented as a <xref target="RFC4627">JSON</xref> string.</t>
|
||||||
</section>
|
</section>
|
||||||
<section title="rrtype">
|
<section title="rrtype">
|
||||||
<t>This field returns the resource record type as seen by the passive DNS. The key is rrtype and the value is in the interpreted record type represented as a <xref target="RFC4627">JSON</xref> string. If the value cannot be interpreted, the decimal value is returned following the principle of transparency as described in <xref target="RFC3597">RFC 3597</xref>. Then the decimal value is represented as a <xref target="RFC4627">JSON</xref> number.
|
<t>This field returns the resource record type as seen by the passive DNS. The key is rrtype and the value is in the interpreted record type represented as a <xref target="RFC4627">JSON</xref> string. If the value cannot be interpreted, the decimal value is returned following the principle of transparency as described in <xref target="RFC3597">RFC 3597</xref>. Then the decimal value is represented as a <xref target="RFC4627">JSON</xref> number.
|
||||||
|
@ -230,7 +232,7 @@ ws = *(
|
||||||
<t>Specifies how many authoritative DNS answers were received at the Passive DNS Server's collectors with exactly the given set of values as answers (i.e. same data in the answer set - compare with the uniqueness property in "Mandatory Fields"). The number of requests is expressed as a decimal value. This field is represented as a <xref target="RFC4627">JSON</xref> number.</t>
|
<t>Specifies how many authoritative DNS answers were received at the Passive DNS Server's collectors with exactly the given set of values as answers (i.e. same data in the answer set - compare with the uniqueness property in "Mandatory Fields"). The number of requests is expressed as a decimal value. This field is represented as a <xref target="RFC4627">JSON</xref> number.</t>
|
||||||
</section>
|
</section>
|
||||||
<section title="bailiwick">
|
<section title="bailiwick">
|
||||||
<t>The bailiwick is the best estimate of the apex of the zone where this data is authoritative.</t>
|
<t>The bailiwick is the best estimate of the apex of the zone where this data is authoritative. This field is represented as a <xref target="RFC4627">JSON</xref> string.</t>
|
||||||
</section>
|
</section>
|
||||||
</section>
|
</section>
|
||||||
<section title="Additional Fields">
|
<section title="Additional Fields">
|
||||||
|
@ -246,7 +248,7 @@ ws = *(
|
||||||
<t>This field returns the last time that the unique tuple (rrname, rrtype, rdata) record has been seen via master file import. The date is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. This field is represented as a <xref target="RFC4627">JSON</xref> number.</t>
|
<t>This field returns the last time that the unique tuple (rrname, rrtype, rdata) record has been seen via master file import. The date is expressed in seconds (decimal) since 1st of January 1970 (Unix timestamp). The time zone MUST be UTC. This field is represented as a <xref target="RFC4627">JSON</xref> number.</t>
|
||||||
</section>
|
</section>
|
||||||
<section title="origin">
|
<section title="origin">
|
||||||
<t>Specifies the resource origin of the Passive DNS response. This field is represented as a <xref target="RFC3986">Uniform Resource Identifier</xref> (URI).
|
<t>Specifies the resource origin of the Passive DNS response. This field is represented as a <xref target="RFC3986">Uniform Resource Identifier</xref> (URI) in the form of a <xref target="RFC4627">JSON</xref> string.
|
||||||
</t>
|
</t>
|
||||||
</section>
|
</section>
|
||||||
<section title="time_first_ms">
|
<section title="time_first_ms">
|
||||||
|
|
Loading…
Reference in a new issue