a geicko-2 based round robin ranking system designed to test c++ battleship submissions
battleship.dunkirk.sh
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}