Skip to content

Commit f6ea08a

Browse files
committed
Marshal should not have extension after delete
1 parent 44cd517 commit f6ea08a

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

packet_test.go

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,44 @@ func TestBasic(t *testing.T) { // nolint:maintidx,cyclop
266266
buf, err = parsedPacket.Marshal()
267267
assert.NoError(t, err)
268268
assert.Equal(t, rawPkt, buf)
269+
270+
// marshal packet after deleting extensions
271+
rawPkt = []byte{
272+
0xb0, 0xe0, 0x69, 0x8f, 0xd9, 0xc2, 0x93, 0xda, 0x1c, 0x64,
273+
0x27, 0x82, 0xBE, 0xDE, 0x00, 0x01, 0x10, 0xAA, 0x00, 0x00, 0x98, 0x00, 0x00, 0x00, 0x04,
274+
}
275+
parsedPacket = &Packet{
276+
Header: Header{
277+
Padding: true,
278+
Marker: true,
279+
Extension: true,
280+
ExtensionProfile: 0xBEDE,
281+
Extensions: []Extension{
282+
{1, []byte{
283+
0xAA,
284+
}},
285+
},
286+
Version: 2,
287+
PayloadType: 96,
288+
SequenceNumber: 27023,
289+
Timestamp: 3653407706,
290+
SSRC: 476325762,
291+
PaddingSize: 4,
292+
},
293+
Payload: rawPkt[20:21],
294+
}
295+
buf, err = parsedPacket.Marshal()
296+
assert.NoError(t, err)
297+
assert.Equal(t, rawPkt, buf)
298+
assert.NoError(t, parsedPacket.DelExtension(1), "Should successfully delete extension")
299+
// should not include extensions and X bit should be unset after deleting all extensions
300+
rawPkt = []byte{
301+
0xa0, 0xe0, 0x69, 0x8f, 0xd9, 0xc2, 0x93, 0xda, 0x1c, 0x64,
302+
0x27, 0x82, 0x98, 0x00, 0x00, 0x00, 0x04,
303+
}
304+
buf, err = parsedPacket.Marshal()
305+
assert.NoError(t, err)
306+
assert.Equal(t, rawPkt, buf)
269307
}
270308

271309
func TestExtension(t *testing.T) {

0 commit comments

Comments
 (0)