Skip to content

Commit

Permalink
Cleanups
Browse files Browse the repository at this point in the history
* use fmt.String as the interface
* use encoding/binary
  • Loading branch information
miekg committed Apr 26, 2012
1 parent 0a58f84 commit 79a0465
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 22 deletions.
6 changes: 1 addition & 5 deletions decode.go
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -57,10 +57,6 @@ type addrHdr interface {
Len() int Len() int
} }


type stringer interface {
String() string
}

type addrStringer interface { type addrStringer interface {
String(addr addrHdr) string String(addr addrHdr) string
} }
Expand Down Expand Up @@ -99,7 +95,7 @@ func (p *Packet) TimeString() string {
func (p *Packet) headerString(headers []interface{}) string { func (p *Packet) headerString(headers []interface{}) string {
// If there's just one header, return that. // If there's just one header, return that.
if len(headers) == 1 { if len(headers) == 1 {
if hdr, ok := headers[0].(stringer); ok { if hdr, ok := headers[0].(fmt.Stringer); ok {
return hdr.String() return hdr.String()
} }
} }
Expand Down
27 changes: 10 additions & 17 deletions io.go
Original file line number Original file line Diff line number Diff line change
@@ -1,6 +1,7 @@
package pcap package pcap


import ( import (
"encoding/binary"
"fmt" "fmt"
"io" "io"
) )
Expand Down Expand Up @@ -89,8 +90,7 @@ func (r *Reader) Next() *Packet {
origLen := asUint32(d[12:16], r.flip) origLen := asUint32(d[12:16], r.flip)


data := make([]byte, capLen) data := make([]byte, capLen)
r.err = r.read(data) if r.err = r.read(data); r.err != nil {
if r.err != nil {
return nil return nil
} }
return &Packet{ return &Packet{
Expand Down Expand Up @@ -120,26 +120,23 @@ func (r *Reader) read(data []byte) error {


func (r *Reader) readUint32() uint32 { func (r *Reader) readUint32() uint32 {
data := r.fourBytes data := r.fourBytes
r.err = r.read(data) if r.err = r.read(data); r.err != nil {
if r.err != nil {
return 0 return 0
} }
return asUint32(data, r.flip) return asUint32(data, r.flip)
} }


func (r *Reader) readInt32() int32 { func (r *Reader) readInt32() int32 {
data := r.fourBytes data := r.fourBytes
r.err = r.read(data) if r.err = r.read(data); r.err != nil {
if r.err != nil {
return 0 return 0
} }
return asInt32(data, r.flip) return int32(asUint32(data, r.flip))
} }


func (r *Reader) readUint16() uint16 { func (r *Reader) readUint16() uint16 {
data := r.twoBytes data := r.twoBytes
r.err = r.read(data) if r.err = r.read(data); r.err != nil {
if r.err != nil {
return 0 return 0
} }
return asUint16(data, r.flip) return asUint16(data, r.flip)
Expand Down Expand Up @@ -208,18 +205,14 @@ func (e *encoder) put2(v uint16) {


func asUint32(data []byte, flip bool) uint32 { func asUint32(data []byte, flip bool) uint32 {
if flip { if flip {
return uint32(uint32(data[0])<<24 | uint32(data[1])<<16 | uint32(data[2])<<8 | uint32(data[3])) return binary.BigEndian.Uint32(data)
} }
return uint32(uint32(data[0]) | uint32(data[1])<<8 | uint32(data[2])<<16 | uint32(data[3])<<24) return binary.LittleEndian.Uint32(data)
}

func asInt32(data []byte, flip bool) int32 {
return int32(asUint32(data, flip))
} }


func asUint16(data []byte, flip bool) uint16 { func asUint16(data []byte, flip bool) uint16 {
if flip { if flip {
return uint16(uint16(data[0])<<8 | uint16(data[1])) return binary.BigEndian.Uint16(data)
} }
return uint16(uint16(data[0]) | uint16(data[1])<<8) return binary.LittleEndian.Uint16(data)
} }

0 comments on commit 79a0465

Please sign in to comment.