| 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 { |