Added nanoseconds to dnstap plugin builder (#1583)

This commit is contained in:
Uladzimir Trehubenka
2018-03-02 15:50:31 +03:00
committed by Miek Gieben
parent a131c22d24
commit 5546dbf3c6

View File

@@ -18,6 +18,7 @@ type Builder struct {
Address net.IP Address net.IP
Port uint32 Port uint32
TimeSec uint64 TimeSec uint64
TimeNsec uint32
err error err error
} }
@@ -95,6 +96,7 @@ func (b *Builder) HostPort(addr string) *Builder {
// Time adds the timestamp to the message. // Time adds the timestamp to the message.
func (b *Builder) Time(ts time.Time) *Builder { func (b *Builder) Time(ts time.Time) *Builder {
b.TimeSec = uint64(ts.Unix()) b.TimeSec = uint64(ts.Unix())
b.TimeNsec = uint32(ts.Nanosecond())
return b return b
} }
@@ -102,13 +104,14 @@ func (b *Builder) Time(ts time.Time) *Builder {
func (b *Builder) ToClientResponse() (*tap.Message, error) { func (b *Builder) ToClientResponse() (*tap.Message, error) {
t := tap.Message_CLIENT_RESPONSE t := tap.Message_CLIENT_RESPONSE
return &tap.Message{ return &tap.Message{
Type: &t, Type: &t,
SocketFamily: &b.SocketFam, SocketFamily: &b.SocketFam,
SocketProtocol: &b.SocketProto, SocketProtocol: &b.SocketProto,
ResponseTimeSec: &b.TimeSec, ResponseTimeSec: &b.TimeSec,
ResponseMessage: b.Packed, ResponseTimeNsec: &b.TimeNsec,
QueryAddress: b.Address, ResponseMessage: b.Packed,
QueryPort: &b.Port, QueryAddress: b.Address,
QueryPort: &b.Port,
}, b.err }, b.err
} }
@@ -120,6 +123,7 @@ func (b *Builder) ToClientQuery() (*tap.Message, error) {
SocketFamily: &b.SocketFam, SocketFamily: &b.SocketFam,
SocketProtocol: &b.SocketProto, SocketProtocol: &b.SocketProto,
QueryTimeSec: &b.TimeSec, QueryTimeSec: &b.TimeSec,
QueryTimeNsec: &b.TimeNsec,
QueryMessage: b.Packed, QueryMessage: b.Packed,
QueryAddress: b.Address, QueryAddress: b.Address,
QueryPort: &b.Port, QueryPort: &b.Port,
@@ -133,6 +137,7 @@ func (b *Builder) ToOutsideQuery(t tap.Message_Type) (*tap.Message, error) {
SocketFamily: &b.SocketFam, SocketFamily: &b.SocketFam,
SocketProtocol: &b.SocketProto, SocketProtocol: &b.SocketProto,
QueryTimeSec: &b.TimeSec, QueryTimeSec: &b.TimeSec,
QueryTimeNsec: &b.TimeNsec,
QueryMessage: b.Packed, QueryMessage: b.Packed,
ResponseAddress: b.Address, ResponseAddress: b.Address,
ResponsePort: &b.Port, ResponsePort: &b.Port,
@@ -142,12 +147,13 @@ func (b *Builder) ToOutsideQuery(t tap.Message_Type) (*tap.Message, error) {
// ToOutsideResponse transforms the data into a forwarder or resolver response message. // ToOutsideResponse transforms the data into a forwarder or resolver response message.
func (b *Builder) ToOutsideResponse(t tap.Message_Type) (*tap.Message, error) { func (b *Builder) ToOutsideResponse(t tap.Message_Type) (*tap.Message, error) {
return &tap.Message{ return &tap.Message{
Type: &t, Type: &t,
SocketFamily: &b.SocketFam, SocketFamily: &b.SocketFam,
SocketProtocol: &b.SocketProto, SocketProtocol: &b.SocketProto,
ResponseTimeSec: &b.TimeSec, ResponseTimeSec: &b.TimeSec,
ResponseMessage: b.Packed, ResponseTimeNsec: &b.TimeNsec,
ResponseAddress: b.Address, ResponseMessage: b.Packed,
ResponsePort: &b.Port, ResponseAddress: b.Address,
ResponsePort: &b.Port,
}, b.err }, b.err
} }