File: utils.go

package info (click to toggle)
golang-github-evilsocket-recording 0.0~git20190408.3ce1dcf-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 120 kB
  • sloc: makefile: 3
file content (33 lines) | stat: -rw-r--r-- 664 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package recording

import (
	"bytes"
	"github.com/kr/binarydist"
)

type patch []byte
type frame []byte

func doDiff(prev, next []byte) (err error, p patch) {
	oldReader := bytes.NewReader(prev)
	newReader := bytes.NewReader(next)
	writer := new(bytes.Buffer)

	if err = binarydist.Diff(oldReader, newReader, writer); err != nil {
		return
	}

	return nil, patch(writer.Bytes())
}

func doPatch(cur []byte, p patch) (err error, f frame) {
	oldReader := bytes.NewReader(cur)
	patchReader := bytes.NewReader(p)
	newWriter := new(bytes.Buffer)

	if err = binarydist.Patch(oldReader, newWriter, patchReader); err != nil {
		return
	}

	return nil, newWriter.Bytes()
}