saprus update
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
//"bytes"
|
||||||
|
//"encoding/binary"
|
||||||
"log"
|
"log"
|
||||||
"net"
|
"net"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
@@ -8,6 +10,8 @@ import (
|
|||||||
"github.com/google/gopacket"
|
"github.com/google/gopacket"
|
||||||
"github.com/google/gopacket/layers"
|
"github.com/google/gopacket/layers"
|
||||||
"github.com/mdlayher/packet"
|
"github.com/mdlayher/packet"
|
||||||
|
|
||||||
|
"saprusserver/structs"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SocketCall struct {
|
type SocketCall struct {
|
||||||
@@ -44,11 +48,6 @@ func (c* SocketCall)init(data string) {
|
|||||||
iface, _ := net.InterfaceByName("virbr0")
|
iface, _ := net.InterfaceByName("virbr0")
|
||||||
conn, err := packet.Listen(iface, packet.Raw, int(layers.EthernetTypeIPv4), nil)
|
conn, err := packet.Listen(iface, packet.Raw, int(layers.EthernetTypeIPv4), nil)
|
||||||
|
|
||||||
payload := []byte(data)
|
|
||||||
if len(payload) > 1500 {
|
|
||||||
log.Printf("Larger than 1500 -- %d", len(payload))
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err)
|
log.Panic(err)
|
||||||
}
|
}
|
||||||
@@ -72,6 +71,10 @@ func (c* SocketCall)init(data string) {
|
|||||||
SrcPort: 6868,
|
SrcPort: 6868,
|
||||||
DstPort: 6767,
|
DstPort: 6767,
|
||||||
}
|
}
|
||||||
|
saprus := structs.SaprusHeaderFrame{
|
||||||
|
MagicNumber: 132,
|
||||||
|
Payload: []byte(data),
|
||||||
|
}
|
||||||
|
|
||||||
buf := gopacket.NewSerializeBuffer()
|
buf := gopacket.NewSerializeBuffer()
|
||||||
opts := gopacket.SerializeOptions{
|
opts := gopacket.SerializeOptions{
|
||||||
@@ -80,7 +83,7 @@ func (c* SocketCall)init(data string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
udp.SetNetworkLayerForChecksum(&ip)
|
udp.SetNetworkLayerForChecksum(&ip)
|
||||||
err = gopacket.SerializeLayers(buf, opts, ð, &ip, &udp, gopacket.Payload(payload))
|
err = gopacket.SerializeLayers(buf, opts, ð, &ip, &udp, gopacket.Payload(saprus.Bytes()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Panic(err)
|
log.Panic(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,3 @@ import (
|
|||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type SaprusPacket struct {
|
|
||||||
callType [2]string
|
|
||||||
}
|
|
||||||
|
|||||||
Reference in New Issue
Block a user