a geicko-2 based round robin ranking system designed to test c++ battleship submissions battleship.dunkirk.sh
at main 923 B view raw
1package sftp 2 3import ( 4 "os" 5 "syscall" 6) 7 8var EBADF = syscall.NewError("fd out of range or not open") 9 10func wrapPathError(filepath string, err error) error { 11 if errno, ok := err.(syscall.ErrorString); ok { 12 return &os.PathError{Path: filepath, Err: errno} 13 } 14 return err 15} 16 17// translateErrno translates a syscall error number to a SFTP error code. 18func translateErrno(errno syscall.ErrorString) uint32 { 19 switch errno { 20 case "": 21 return sshFxOk 22 case syscall.ENOENT: 23 return sshFxNoSuchFile 24 case syscall.EPERM: 25 return sshFxPermissionDenied 26 } 27 28 return sshFxFailure 29} 30 31func translateSyscallError(err error) (uint32, bool) { 32 switch e := err.(type) { 33 case syscall.ErrorString: 34 return translateErrno(e), true 35 case *os.PathError: 36 debug("statusFromError,pathError: error is %T %#v", e.Err, e.Err) 37 if errno, ok := e.Err.(syscall.ErrorString); ok { 38 return translateErrno(errno), true 39 } 40 } 41 return 0, false 42}