package utils import ( "encoding/base64" "log" "net" "strings" "saprusserver/structs" ) func (c *SocketCall) GatherSaprusHeader(buf []byte) structs.SaprusHeaderFrame { data := structs.SaprusHeaderFrame { PacketType: [2]byte{buf[0], buf[1]}, Length: [2]byte{buf[2], buf[3]}, } return data } func ProcessRequests(buf []byte, addr net.Addr) { c := SocketCall{} msg := "hello world" b64Msg := base64.StdEncoding.EncodeToString([]byte(msg)) saprusHeader := c.GatherSaprusHeader(buf) remoteAddr := strings.Split(addr.String(), ":") switch { case strings.Contains(string(buf), "here"): log.Printf("Sending Data to %s\n", remoteAddr) c.SendData(b64Msg) case saprusHeader.PacketType == [2]byte{0x88, 0x88}: log.Printf("New find:: %s\n", remoteAddr) c.SendData(base64.StdEncoding.EncodeToString([]byte("hello\n"))) case saprusHeader.PacketType == [2]byte{0x00, 0x3C}: log.Printf("Broadcast message::%s\n", remoteAddr) default: log.Printf("Packet type not found::%x\n", string(saprusHeader.PacketType[:])) } return }