deal all auth packet

This commit is contained in:
hebo
2019-11-12 18:34:41 +08:00
parent 2b42cd4b3a
commit 1b0d2c8e91
3 changed files with 25 additions and 11 deletions

View File

@@ -31,17 +31,17 @@ func init() {
// networkCard is network device
type networkCard struct {
name string
name string
listenPort int
receiver chan model.QueryPiece
receiver chan model.QueryPiece
}
func NewNetworkCard() (nc *networkCard) {
// init device
return &networkCard{
name: DeviceName,
name: DeviceName,
listenPort: snifferPort,
receiver: make(chan model.QueryPiece, 100),
receiver: make(chan model.QueryPiece, 100),
}
}
@@ -97,7 +97,6 @@ func (nc *networkCard) Listen() (receiver chan model.QueryPiece) {
return nc.receiver
}
// Listen get a connection.
func (nc *networkCard) listenNormal() {
go func() {
@@ -112,7 +111,7 @@ func (nc *networkCard) listenNormal() {
// capture packets according to a certain probability
capturePacketRate := communicator.GetTCPCapturePacketRate()
if capturePacketRate <= 0 {
time.Sleep(time.Second*1)
time.Sleep(time.Second * 1)
aliveCounter += 1
if aliveCounter >= checkCount {
aliveCounter = 0
@@ -124,7 +123,7 @@ func (nc *networkCard) listenNormal() {
data, ci, err = handler.ZeroCopyReadPacketData()
if err != nil {
log.Error(err.Error())
time.Sleep(time.Second*3)
time.Sleep(time.Second * 3)
continue
}
@@ -135,7 +134,10 @@ func (nc *networkCard) listenNormal() {
// send FIN tcp packet to avoid not complete session cannot be released
tcpPkt := packet.TransportLayer().(*layers.TCP)
if tcpPkt.FIN {
payLoad := tcpPkt.Payload
// deal FIN packet
// deal auth packet
if tcpPkt.FIN || (len(payLoad) >= 5 && sd.IsAuthPacket(payLoad[4])) {
nc.parseTCPPackage(packet)
continue
}
@@ -274,4 +276,3 @@ func readToServerPackage(
return
}