63 lines
1.9 KiB
Diff
63 lines
1.9 KiB
Diff
Add timeouts to logger
|
|
|
|
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
Upstream-Status: Pending
|
|
|
|
diff -r -u go/src/log/syslog/syslog.go /home/achang/GOCOPY/go/src/log/syslog/syslog.go
|
|
--- go/src/log/syslog/syslog.go 2013-11-28 13:38:28.000000000 -0800
|
|
+++ /home/achang/GOCOPY/go/src/log/syslog/syslog.go 2014-10-03 11:44:37.710403200 -0700
|
|
@@ -33,6 +33,9 @@
|
|
const severityMask = 0x07
|
|
const facilityMask = 0xf8
|
|
|
|
+var writeTimeout = 1 * time.Second
|
|
+var connectTimeout = 1 * time.Second
|
|
+
|
|
const (
|
|
// Severity.
|
|
|
|
@@ -100,6 +103,7 @@
|
|
type serverConn interface {
|
|
writeString(p Priority, hostname, tag, s, nl string) error
|
|
close() error
|
|
+ setWriteDeadline(t time.Time) error
|
|
}
|
|
|
|
type netConn struct {
|
|
@@ -273,7 +277,11 @@
|
|
nl = "\n"
|
|
}
|
|
|
|
- err := w.conn.writeString(p, w.hostname, w.tag, msg, nl)
|
|
+ err := w.conn.setWriteDeadline(time.Now().Add(writeTimeout))
|
|
+ if err != nil {
|
|
+ return 0, err
|
|
+ }
|
|
+ err = w.conn.writeString(p, w.hostname, w.tag, msg, nl)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
@@ -305,6 +313,10 @@
|
|
return n.conn.Close()
|
|
}
|
|
|
|
+func (n *netConn) setWriteDeadline(t time.Time) error {
|
|
+ return n.conn.SetWriteDeadline(t)
|
|
+}
|
|
+
|
|
// NewLogger creates a log.Logger whose output is written to
|
|
// the system log service with the specified priority. The logFlag
|
|
// argument is the flag set passed through to log.New to create
|
|
diff -r -u go/src/log/syslog/syslog_unix.go /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go
|
|
--- go/src/log/syslog/syslog_unix.go 2013-11-28 13:38:28.000000000 -0800
|
|
+++ /home/achang/GOCOPY/go/src/log/syslog/syslog_unix.go 2014-10-03 11:44:39.010403175 -0700
|
|
@@ -19,7 +19,7 @@
|
|
logPaths := []string{"/dev/log", "/var/run/syslog"}
|
|
for _, network := range logTypes {
|
|
for _, path := range logPaths {
|
|
- conn, err := net.Dial(network, path)
|
|
+ conn, err := net.DialTimeout(network, path, connectTimeout)
|
|
if err != nil {
|
|
continue
|
|
} else {
|