forked from jshiffer/matterbridge
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
package sftp
|
|
|
|
// Error types that match the SFTP's SSH_FXP_STATUS codes. Gives you more
|
|
// direct control of the errors being sent vs. letting the library work them
|
|
// out from the standard os/io errors.
|
|
|
|
type fxerr uint32
|
|
|
|
const (
|
|
ErrSshFxOk = fxerr(ssh_FX_OK)
|
|
ErrSshFxEof = fxerr(ssh_FX_EOF)
|
|
ErrSshFxNoSuchFile = fxerr(ssh_FX_NO_SUCH_FILE)
|
|
ErrSshFxPermissionDenied = fxerr(ssh_FX_PERMISSION_DENIED)
|
|
ErrSshFxFailure = fxerr(ssh_FX_FAILURE)
|
|
ErrSshFxBadMessage = fxerr(ssh_FX_BAD_MESSAGE)
|
|
ErrSshFxNoConnection = fxerr(ssh_FX_NO_CONNECTION)
|
|
ErrSshFxConnectionLost = fxerr(ssh_FX_CONNECTION_LOST)
|
|
ErrSshFxOpUnsupported = fxerr(ssh_FX_OP_UNSUPPORTED)
|
|
)
|
|
|
|
func (e fxerr) Error() string {
|
|
switch e {
|
|
case ErrSshFxOk:
|
|
return "OK"
|
|
case ErrSshFxEof:
|
|
return "EOF"
|
|
case ErrSshFxNoSuchFile:
|
|
return "No Such File"
|
|
case ErrSshFxPermissionDenied:
|
|
return "Permission Denied"
|
|
case ErrSshFxBadMessage:
|
|
return "Bad Message"
|
|
case ErrSshFxNoConnection:
|
|
return "No Connection"
|
|
case ErrSshFxConnectionLost:
|
|
return "Connection Lost"
|
|
case ErrSshFxOpUnsupported:
|
|
return "Operation Unsupported"
|
|
default:
|
|
return "Failure"
|
|
}
|
|
}
|