Skip to content

Commit

Permalink
Make recvMsg and xmitMsg ordinary variables.
Browse files Browse the repository at this point in the history
Include ReferenceTime and lie so we look fresh.
  • Loading branch information
mchackorg committed Dec 10, 2018
1 parent f942ab4 commit 111bfb7
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions ntpserver/ntpserver.go
Expand Up @@ -152,14 +152,14 @@ func toNtpTime(t time.Time) ntpTime {
}

func main() {
xmitMsg := new(msg)
var xmitMsg msg
xmitMsg.setMode(server)
xmitMsg.setVersion(4)
// xmitMsg.setLeap(LeapNotInSync)
xmitMsg.Stratum = 1

// Allocate a message to hold the response.
recvMsg := new(msg)
var recvMsg msg

pc, err := net.ListenPacket("udp", "localhost:123")
if err != nil {
Expand All @@ -171,27 +171,32 @@ func main() {

for {
_, addr, err := pc.ReadFrom(recbuf)
fmt.Printf("Received data from %v: %v\n", addr, recbuf)
if err != nil {
fmt.Println("Error: ", err)
continue
}

reader := bytes.NewReader(recbuf)

xmitMsg.ReceiveTime = toNtpTime(time.Now())

binary.Read(bytes.NewReader(recbuf), binary.BigEndian, recvMsg)
fmt.Printf("recMsg %v\n", recvMsg)
binary.Read(reader, binary.BigEndian, &recvMsg)
fmt.Printf("recMsg %#v\n", recvMsg)

xmitMsg.OriginTime = recvMsg.TransmitTime

xmitMsg.TransmitTime = toNtpTime(time.Now())

// Lie that we were just set.
xmitMsg.ReferenceTime = xmitMsg.TransmitTime

buf := new(bytes.Buffer)
err = binary.Write(buf, binary.BigEndian, xmitMsg)
if err != nil {
log.Fatal("Couldn't binary write")
}

fmt.Printf("xmitMsg: %v\n", xmitMsg)
fmt.Printf("xmitMsg: %#v\n", xmitMsg)

pc.WriteTo(buf.Bytes(), addr)
}
Expand Down

0 comments on commit 111bfb7

Please sign in to comment.