summaryrefslogtreecommitdiff
path: root/plugins/http/errors.go
blob: fb8762efda4e2419e9c3c25125dd3b456244e010 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// +build !windows

package http

import (
	"errors"
	"net"
	"os"
	"syscall"
)

// Broken pipe
var errEPIPE = errors.New("EPIPE(32) -> connection reset by peer")

// handleWriteError just check if error was caused by aborted connection on linux
func handleWriteError(err error) error {
	if netErr, ok2 := err.(*net.OpError); ok2 {
		if syscallErr, ok3 := netErr.Err.(*os.SyscallError); ok3 {
			if syscallErr.Err == syscall.EPIPE {
				return errEPIPE
			}
		}
	}
	return err
}