Skip to content

Commit f64374c

Browse files
authored
Parse efs (#331)
1 parent 5933807 commit f64374c

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

parser/user_traffic.go

+5
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ type UserTraffic struct {
3737
SSLVersion string `json:"ssl_version"`
3838
SSLCipher string `json:"ssl_cipher"`
3939
ENC string `json:"enc"`
40+
EFS int `json:"efs"`
4041
UserAgent string `json:"ua"`
4142
Unparsed []string `json:"unparsed"`
4243
}
@@ -137,6 +138,10 @@ func ParseUserTrafficRecord(raw string) (*UserTraffic, error) {
137138
ut.SSLCipher = strings.TrimSuffix(parts[1], ",")
138139
case "enc":
139140
ut.ENC = strings.TrimSuffix(parts[1], ",")
141+
case "efs":
142+
if ut.EFS, err = strconv.Atoi(parts[1]); err != nil {
143+
return nil, fmt.Errorf("malformed field (%s) value: %s", parts[0], parts[1])
144+
}
140145
default:
141146
ut.Unparsed = append(ut.Unparsed, field)
142147
}

parser/user_traffic_test.go

+5-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
//raw record to test against as a fail-safe (incase the template drifts)
14-
var rawUTRecord = "request_id=c9948493-1ece-4d21-a2d1-f96a9feded3c @timestamp=1585844380.949 timing=1 result=TCP_MEM_HIT cid=- ccid=12345 status=200 request_size=1 response_size=66000 proto=http/2 method=GET url=http://localhost/something/1591294965428966000/something.jpg sid=18bb190b-6727-497a-af8b-f03287d14caf, aid=1591294965428966000 did=5e85df2043933dd053ebec6f cancel=- proxy_type=- stuff=things oneother=\"onething\" fid=- content_type=text/plain address=2605:6000:1714:56e:c98a:445c:febd:6baf country=US referrer=localhost cw=- ssl_version=TLSv1.2 ssl_cipher=ECDHE-RSA-AES256-GCM-SHA384 enc=- ua=Mozilla/5.0 (X11; CrOS x86_64 12239.92.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.136 Safari/537.36"
14+
var rawUTRecord = "request_id=c9948493-1ece-4d21-a2d1-f96a9feded3c @timestamp=1585844380.949 timing=1 result=TCP_MEM_HIT cid=- ccid=12345 status=200 request_size=1 response_size=66000 proto=http/2 method=GET url=http://localhost/something/1591294965428966000/something.jpg sid=18bb190b-6727-497a-af8b-f03287d14caf, aid=1591294965428966000 did=5e85df2043933dd053ebec6f cancel=- proxy_type=- stuff=things oneother=\"onething\" fid=- content_type=text/plain address=2605:6000:1714:56e:c98a:445c:febd:6baf country=US referrer=localhost cw=- ssl_version=TLSv1.2 ssl_cipher=ECDHE-RSA-AES256-GCM-SHA384 enc=- efs=1 ua=Mozilla/5.0 (X11; CrOS x86_64 12239.92.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.136 Safari/537.36"
1515

1616
var utLineTemplateStr = "request_id={{.requestIDField}} " +
1717
"@timestamp={{.atTimestampField}} " +
@@ -40,6 +40,7 @@ var utLineTemplateStr = "request_id={{.requestIDField}} " +
4040
"ssl_version={{.sslVersionField}} " +
4141
"ssl_cipher={{.sslCipherField}} " +
4242
"enc={{.encField}} " +
43+
"efs={{.efs}} " +
4344
"ua={{.uaField}}"
4445

4546
var utLineTemplate = template.Must(template.New("user_traffic").Parse(utLineTemplateStr))
@@ -73,6 +74,7 @@ var (
7374
sslVersionField = "TLSv1.2"
7475
sslCipherField = "ECDHE-RSA-AES256-GCM-SHA384"
7576
encField = "-"
77+
efs = "1"
7678
)
7779

7880
func defaultValues() map[string]string {
@@ -105,6 +107,7 @@ func defaultValues() map[string]string {
105107
"sslVersionField": sslVersionField,
106108
"sslCipherField": sslCipherField,
107109
"encField": encField,
110+
"efs": efs,
108111
}
109112
}
110113

@@ -144,6 +147,7 @@ func TestParseUserTrafficPayload(t *testing.T) {
144147
SSLVersion: "TLSv1.2",
145148
ENC: "-",
146149
CW: "-",
150+
EFS: 1,
147151
UserAgent: "Mozilla/5.0 (X11; CrOS x86_64 12239.92.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.136 Safari/537.36",
148152
Unparsed: []string{"stuff=things", "oneother=\"onething\""},
149153
}

0 commit comments

Comments
 (0)