write ensures the conn Deadline has been setup before making a call to conn.Write
(buf []byte)
| 1058 | // write ensures the conn Deadline has been setup before making a |
| 1059 | // call to conn.Write |
| 1060 | func (b *Broker) write(buf []byte) (n int, err error) { |
| 1061 | now := time.Now() |
| 1062 | if err := b.conn.SetWriteDeadline(now.Add(b.conf.Net.WriteTimeout)); err != nil { |
| 1063 | return 0, err |
| 1064 | } |
| 1065 | // TLS connections require both read and write deadlines to be set |
| 1066 | // to avoid handshake indefinite blocking |
| 1067 | // see https://github.com/golang/go/blob/go1.23.0/src/crypto/tls/conn.go#L1192-L1195 |
| 1068 | if b.conf.Net.TLS.Enable { |
| 1069 | if err := b.conn.SetReadDeadline(now.Add(b.conf.Net.ReadTimeout)); err != nil { |
| 1070 | return 0, err |
| 1071 | } |
| 1072 | } |
| 1073 | |
| 1074 | return b.conn.Write(buf) |
| 1075 | } |
| 1076 | |
| 1077 | // b.lock must be held by caller |
| 1078 | // |
no test coverage detected