begin adding NTP client node

This commit is contained in:
soypat
2025-06-12 02:19:52 -03:00
parent 1fcdd9a7b3
commit 29ac9a3a1a
5 changed files with 81 additions and 60 deletions
+23 -23
View File
@@ -112,29 +112,6 @@ func (conn *Conn) Abort() {
}
}
func (conn *Conn) Demux(buf []byte, off int) (err error) {
conn.trace("tcpconn.Recv:start")
if off >= len(buf) {
return errors.New("bad offset in TCPConn.Recv")
}
raddr, id, err := internal.GetIPSourceAddr(buf[:off])
if err != nil {
return err
}
if conn.isRaddrSet() && !bytes.Equal(conn.remoteAddr, raddr) {
return errors.New("IP addr mismatch on TCPConn")
}
err = conn.h.Recv(buf[off:])
if err != nil {
return err
}
if !conn.isRaddrSet() && conn.h.RemotePort() != 0 {
conn.remoteAddr = append(conn.remoteAddr[:0], raddr...)
conn.ipID = ^(id - 1)
}
return nil
}
// Write writes argument data to the TCPConns's output buffer which is queued to be sent.
func (conn *Conn) Write(b []byte) (int, error) {
err := conn.checkPipeOpen()
@@ -212,6 +189,29 @@ func (conn *Conn) checkPipeOpen() error {
return nil
}
func (conn *Conn) Demux(buf []byte, off int) (err error) {
conn.trace("tcpconn.Recv:start")
if off >= len(buf) {
return errors.New("bad offset in TCPConn.Recv")
}
raddr, id, err := internal.GetIPSourceAddr(buf[:off])
if err != nil {
return err
}
if conn.isRaddrSet() && !bytes.Equal(conn.remoteAddr, raddr) {
return errors.New("IP addr mismatch on TCPConn")
}
err = conn.h.Recv(buf[off:])
if err != nil {
return err
}
if !conn.isRaddrSet() && conn.h.RemotePort() != 0 {
conn.remoteAddr = append(conn.remoteAddr[:0], raddr...)
conn.ipID = ^(id - 1)
}
return nil
}
func (conn *Conn) Encapsulate(buf []byte, off int) (n int, err error) {
if len(conn.remoteAddr) == 0 {
return 0, errors.New("unset IP address")