if err != nil {
panic(err)
}
- _, err = s.Socket.WriteTo(b, addr)
+ err = s.writeToNode(b, addr)
if err != nil {
panic(err)
}
return
}
+func (s *Server) writeToNode(b []byte, node *net.UDPAddr) (err error) {
+ n, err := s.Socket.WriteTo(b, node)
+ if err != nil {
+ return
+ }
+ if n != len(b) {
+ err = io.ErrShortWrite
+ return
+ }
+ s.sentToNode(node)
+ return
+}
+
func (s *Server) sentToNode(addr *net.UDPAddr) {
n := s.getNode(addr)
n.lastSentTo = time.Now()
}
t.response = t.Response
s.addTransaction(t)
- n, err := s.Socket.WriteTo(b, node)
+ err = s.writeToNode(b, node)
if err != nil {
s.removeTransaction(t)
- return
- }
- if n != len(b) {
- err = io.ErrShortWrite
- s.removeTransaction(t)
- return
}
- s.sentToNode(node)
return
}