refactor(c-libuv): Ajust Errno
This commit is contained in:
@@ -40,7 +40,7 @@ func main() {
|
|||||||
func onOpen(req *libuv.Fs) {
|
func onOpen(req *libuv.Fs) {
|
||||||
// Check for errors
|
// Check for errors
|
||||||
if libuv.FsGetResult(req) < 0 {
|
if libuv.FsGetResult(req) < 0 {
|
||||||
c.Fprintf(c.Stderr, c.Str("Error opening file: %s\n"), libuv.Strerror(libuv.LoopClose(loop)))
|
c.Fprintf(c.Stderr, c.Str("Error opening file: %s\n"), libuv.Strerror(libuv.Errno(libuv.LoopClose(loop))))
|
||||||
libuv.LoopClose(loop)
|
libuv.LoopClose(loop)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,7 @@ func onOpen(req *libuv.Fs) {
|
|||||||
// Read the file
|
// Read the file
|
||||||
readRes := libuv.FsRead(loop, &readReq, libuv.UvFile(libuv.FsGetResult(req)), &iov, 1, -1, onRead)
|
readRes := libuv.FsRead(loop, &readReq, libuv.UvFile(libuv.FsGetResult(req)), &iov, 1, -1, onRead)
|
||||||
if readRes != 0 {
|
if readRes != 0 {
|
||||||
c.Printf(c.Str("Error in FsRead: %s (code: %d)\n"), libuv.Strerror(c.Int(readRes)), readRes)
|
c.Printf(c.Str("Error in FsRead: %s (code: %d)\n"), libuv.Strerror(libuv.Errno(readRes)), readRes)
|
||||||
libuv.LoopClose(loop)
|
libuv.LoopClose(loop)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -58,7 +58,7 @@ func onOpen(req *libuv.Fs) {
|
|||||||
func onRead(req *libuv.Fs) {
|
func onRead(req *libuv.Fs) {
|
||||||
// Check for errors
|
// Check for errors
|
||||||
if libuv.FsGetResult(req) < 0 {
|
if libuv.FsGetResult(req) < 0 {
|
||||||
c.Fprintf(c.Stderr, c.Str("Read error: %s\n"), libuv.Strerror(libuv.FsGetResult(req)))
|
c.Fprintf(c.Stderr, c.Str("Read error: %s\n"), libuv.Strerror(libuv.Errno(libuv.FsGetResult(req))))
|
||||||
libuv.LoopClose(loop)
|
libuv.LoopClose(loop)
|
||||||
} else if libuv.FsGetResult(req) == 0 {
|
} else if libuv.FsGetResult(req) == 0 {
|
||||||
c.Printf(c.Str("EOF\n"))
|
c.Printf(c.Str("EOF\n"))
|
||||||
@@ -66,7 +66,7 @@ func onRead(req *libuv.Fs) {
|
|||||||
closeRes := libuv.FsClose(loop, &closeReq, libuv.UvFile(libuv.FsGetResult(&openReq)), onClose)
|
closeRes := libuv.FsClose(loop, &closeReq, libuv.UvFile(libuv.FsGetResult(&openReq)), onClose)
|
||||||
if closeRes != 0 {
|
if closeRes != 0 {
|
||||||
// Print the content
|
// Print the content
|
||||||
c.Printf(c.Str("Error in FsClose: %s (code: %d)\n"), libuv.Strerror(c.Int(closeRes)), closeRes)
|
c.Printf(c.Str("Error in FsClose: %s (code: %d)\n"), libuv.Strerror(libuv.Errno(closeRes)), closeRes)
|
||||||
libuv.LoopClose(loop)
|
libuv.LoopClose(loop)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -80,7 +80,7 @@ func onRead(req *libuv.Fs) {
|
|||||||
func onClose(req *libuv.Fs) {
|
func onClose(req *libuv.Fs) {
|
||||||
// Check for errors
|
// Check for errors
|
||||||
if libuv.FsGetResult(req) < 0 {
|
if libuv.FsGetResult(req) < 0 {
|
||||||
c.Fprintf(c.Stderr, c.Str("Error closing file: %s\n"), libuv.Strerror(libuv.FsGetResult(req)))
|
c.Fprintf(c.Stderr, c.Str("Error closing file: %s\n"), libuv.Strerror(libuv.Errno(libuv.FsGetResult(req))))
|
||||||
} else {
|
} else {
|
||||||
c.Printf(c.Str("\nFile closed successfully.\n"))
|
c.Printf(c.Str("\nFile closed successfully.\n"))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ func main() {
|
|||||||
(&server).Bind((*net.SockAddr)(c.Pointer(&addr)), 0)
|
(&server).Bind((*net.SockAddr)(c.Pointer(&addr)), 0)
|
||||||
res := (*libuv.Stream)(&server).Listen(DEFAULT_BACKLOG, OnNewConnection)
|
res := (*libuv.Stream)(&server).Listen(DEFAULT_BACKLOG, OnNewConnection)
|
||||||
if res != 0 {
|
if res != 0 {
|
||||||
c.Fprintf(c.Stderr, c.Str("Listen error: %s\n"), libuv.Strerror(res))
|
c.Fprintf(c.Stderr, c.Str("Listen error: %s\n"), libuv.Strerror((libuv.Errno(res))))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ func AllocBuffer(handle *libuv.Handle, suggestedSize uintptr, buf *libuv.Buf) {
|
|||||||
|
|
||||||
func EchoWrite(req *libuv.Write, status c.Int) {
|
func EchoWrite(req *libuv.Write, status c.Int) {
|
||||||
if status != 0 {
|
if status != 0 {
|
||||||
c.Fprintf(c.Stderr, c.Str("Write error: %s\n"), libuv.Strerror(status))
|
c.Fprintf(c.Stderr, c.Str("Write error: %s\n"), libuv.Strerror((libuv.Errno(status))))
|
||||||
}
|
}
|
||||||
FreeWriteReq(req)
|
FreeWriteReq(req)
|
||||||
}
|
}
|
||||||
@@ -80,7 +80,7 @@ func EchoRead(client *libuv.Stream, nread c.Long, buf *libuv.Buf) {
|
|||||||
if nread < 0 {
|
if nread < 0 {
|
||||||
// Handle read errors and EOF.
|
// Handle read errors and EOF.
|
||||||
if (libuv.Errno)(nread) != libuv.EOF {
|
if (libuv.Errno)(nread) != libuv.EOF {
|
||||||
c.Fprintf(c.Stderr, c.Str("Read error: %s\n"), libuv.Strerror(c.Int(nread)))
|
c.Fprintf(c.Stderr, c.Str("Read error: %s\n"), libuv.Strerror((libuv.Errno)(nread)))
|
||||||
}
|
}
|
||||||
(*libuv.Handle)(c.Pointer(client)).Close(nil)
|
(*libuv.Handle)(c.Pointer(client)).Close(nil)
|
||||||
}
|
}
|
||||||
@@ -92,7 +92,7 @@ func EchoRead(client *libuv.Stream, nread c.Long, buf *libuv.Buf) {
|
|||||||
|
|
||||||
func OnNewConnection(server *libuv.Stream, status c.Int) {
|
func OnNewConnection(server *libuv.Stream, status c.Int) {
|
||||||
if status < 0 {
|
if status < 0 {
|
||||||
c.Fprintf(c.Stderr, c.Str("New connection error: %s\n"), libuv.Strerror(status))
|
c.Fprintf(c.Stderr, c.Str("New connection error: %s\n"), libuv.Strerror(libuv.Errno(status)))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
181
c/libuv/error.go
181
c/libuv/error.go
@@ -2,110 +2,111 @@ package libuv
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/goplus/llgo/c"
|
"github.com/goplus/llgo/c"
|
||||||
|
"github.com/goplus/llgo/c/net"
|
||||||
|
"github.com/goplus/llgo/c/syscall"
|
||||||
_ "unsafe"
|
_ "unsafe"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
E2BIG Errno = iota
|
E2BIG Errno = (Errno)(syscall.E2BIG)
|
||||||
EACCES
|
EACCES Errno = (Errno)(syscall.EACCES)
|
||||||
EADDRINUSE
|
EADDRINUSE Errno = (Errno)(syscall.EADDRINUSE)
|
||||||
EADDRNOTAVAIL
|
EADDRNOTAVAIL Errno = (Errno)(syscall.EADDRNOTAVAIL)
|
||||||
EAFNOSUPPORT
|
EAFNOSUPPORT Errno = (Errno)(syscall.EAFNOSUPPORT)
|
||||||
EAGAIN
|
EAGAIN Errno = (Errno)(syscall.EAGAIN)
|
||||||
EAI_ADDRFAMILY
|
EAI_ADDRFAMILY Errno = net.EAI_ADDRFAMILY
|
||||||
EAI_AGAIN
|
EAI_AGAIN Errno = net.EAI_AGAIN
|
||||||
EAI_BADFLAGS
|
EAI_BADFLAGS Errno = net.EAI_BADFLAGS
|
||||||
EAI_BADHINTS
|
EAI_BADHINTS Errno = net.EAI_BADHINTS
|
||||||
EAI_CANCELED
|
EAI_CANCELED Errno = -3003
|
||||||
EAI_FAIL
|
EAI_FAIL Errno = net.EAI_FAIL
|
||||||
EAI_FAMILY
|
EAI_FAMILY Errno = net.EAI_FAMILY
|
||||||
EAI_MEMORY
|
EAI_MEMORY Errno = net.EAI_MEMORY
|
||||||
EAI_NODATA
|
EAI_NODATA Errno = net.EAI_NODATA
|
||||||
EAI_NONAME
|
EAI_NONAME Errno = net.EAI_NONAME
|
||||||
EAI_OVERFLOW
|
EAI_OVERFLOW Errno = net.EAI_OVERFLOW
|
||||||
EAI_PROTOCOL
|
EAI_PROTOCOL Errno = net.EAI_PROTOCOL
|
||||||
EAI_SERVICE
|
EAI_SERVICE Errno = net.EAI_SERVICE
|
||||||
EAI_SOCKTYPE
|
EAI_SOCKTYPE Errno = net.EAI_SOCKTYPE
|
||||||
EALREADY
|
EALREADY Errno = (Errno)(syscall.EALREADY)
|
||||||
EBADF
|
EBADF Errno = (Errno)(syscall.EBADF)
|
||||||
EBUSY
|
EBUSY Errno = (Errno)(syscall.EBUSY)
|
||||||
ECANCELED
|
ECANCELED Errno = (Errno)(syscall.ECANCELED)
|
||||||
ECHARSET
|
ECHARSET Errno = -4080
|
||||||
ECONNABORTED
|
ECONNABORTED Errno = (Errno)(syscall.ECONNABORTED)
|
||||||
ECONNREFUSED
|
ECONNREFUSED Errno = (Errno)(syscall.ECONNREFUSED)
|
||||||
ECONNRESET
|
ECONNRESET Errno = (Errno)(syscall.ECONNRESET)
|
||||||
EDESTADDRREQ
|
EDESTADDRREQ Errno = (Errno)(syscall.EDESTADDRREQ)
|
||||||
EEXIST
|
EEXIST Errno = (Errno)(syscall.EEXIST)
|
||||||
EFAULT
|
EFAULT Errno = (Errno)(syscall.EFAULT)
|
||||||
EFBIG
|
EFBIG Errno = (Errno)(syscall.EFBIG)
|
||||||
EHOSTUNREACH
|
EHOSTUNREACH Errno = (Errno)(syscall.EHOSTUNREACH)
|
||||||
EINTR
|
EINTR Errno = (Errno)(syscall.EINTR)
|
||||||
EINVAL
|
EINVAL Errno = (Errno)(syscall.EINVAL)
|
||||||
EIO
|
EIO Errno = (Errno)(syscall.EIO)
|
||||||
EISCONN
|
EISCONN Errno = (Errno)(syscall.EISCONN)
|
||||||
EISDIR
|
EISDIR Errno = (Errno)(syscall.EISDIR)
|
||||||
ELOOP
|
ELOOP Errno = (Errno)(syscall.ELOOP)
|
||||||
EMFILE
|
EMFILE Errno = (Errno)(syscall.EMFILE)
|
||||||
EMSGSIZE
|
EMSGSIZE Errno = (Errno)(syscall.EMSGSIZE)
|
||||||
ENAMETOOLONG
|
ENAMETOOLONG Errno = (Errno)(syscall.ENAMETOOLONG)
|
||||||
ENETDOWN
|
ENETDOWN Errno = (Errno)(syscall.ENETDOWN)
|
||||||
ENETUNREACH
|
ENETUNREACH Errno = (Errno)(syscall.ENETUNREACH)
|
||||||
ENFILE
|
ENFILE Errno = (Errno)(syscall.ENFILE)
|
||||||
ENOBUFS
|
ENOBUFS Errno = (Errno)(syscall.ENOBUFS)
|
||||||
ENODEV
|
ENODEV Errno = (Errno)(syscall.ENODEV)
|
||||||
ENOENT
|
ENOENT Errno = (Errno)(syscall.ENOENT)
|
||||||
ENOMEM
|
ENOMEM Errno = (Errno)(syscall.ENOMEM)
|
||||||
ENONET
|
ENONET Errno = -4056
|
||||||
ENOPROTOOPT
|
ENOPROTOOPT Errno = (Errno)(syscall.ENOPROTOOPT)
|
||||||
ENOSPC
|
ENOSPC Errno = (Errno)(syscall.ENOSPC)
|
||||||
ENOSYS
|
ENOSYS Errno = (Errno)(syscall.ENOSYS)
|
||||||
ENOTCONN
|
ENOTCONN Errno = (Errno)(syscall.ENOTCONN)
|
||||||
ENOTDIR
|
ENOTDIR Errno = (Errno)(syscall.ENOTDIR)
|
||||||
ENOTEMPTY
|
ENOTEMPTY Errno = (Errno)(syscall.ENOTEMPTY)
|
||||||
ENOTSOCK
|
ENOTSOCK Errno = (Errno)(syscall.ENOTSOCK)
|
||||||
ENOTSUP
|
ENOTSUP Errno = (Errno)(syscall.ENOTSUP)
|
||||||
EOVERFLOW
|
EOVERFLOW Errno = (Errno)(syscall.EOVERFLOW)
|
||||||
EPERM
|
EPERM Errno = (Errno)(syscall.EPERM)
|
||||||
EPIPE
|
EPIPE Errno = (Errno)(syscall.EPIPE)
|
||||||
EPROTO
|
EPROTO Errno = (Errno)(syscall.EPROTO)
|
||||||
EPROTONOSUPPORT
|
EPROTONOSUPPORT Errno = (Errno)(syscall.EPROTONOSUPPORT)
|
||||||
EPROTOTYPE
|
EPROTOTYPE Errno = (Errno)(syscall.EPROTOTYPE)
|
||||||
ERANGE
|
ERANGE Errno = (Errno)(syscall.ERANGE)
|
||||||
EROFS
|
EROFS Errno = (Errno)(syscall.EROFS)
|
||||||
ESHUTDOWN
|
ESHUTDOWN Errno = (Errno)(syscall.ESHUTDOWN)
|
||||||
ESPIPE
|
ESPIPE Errno = (Errno)(syscall.ESPIPE)
|
||||||
ESRCH
|
ESRCH Errno = (Errno)(syscall.ESRCH)
|
||||||
ETIMEDOUT
|
ETIMEDOUT Errno = (Errno)(syscall.ETIMEDOUT)
|
||||||
ETXTBSY
|
ETXTBSY Errno = (Errno)(syscall.ETXTBSY)
|
||||||
EXDEV
|
EXDEV Errno = (Errno)(syscall.EXDEV)
|
||||||
UNKNOWN
|
UNKNOWN Errno = -4094
|
||||||
EOF
|
EOF Errno = -1
|
||||||
ENXIO
|
ENXIO Errno = (Errno)(syscall.ENXIO)
|
||||||
EMLINK
|
EMLINK Errno = (Errno)(syscall.EMLINK)
|
||||||
EHOSTDOWN
|
EHOSTDOWN Errno = (Errno)(syscall.EHOSTDOWN)
|
||||||
EREMOTEIO
|
EREMOTEIO Errno = -4030
|
||||||
ENOTTY
|
ENOTTY Errno = (Errno)(syscall.ENOTTY)
|
||||||
EFTYPE
|
EFTYPE Errno = (Errno)(syscall.EFTYPE)
|
||||||
EILSEQ
|
EILSEQ Errno = (Errno)(syscall.EILSEQ)
|
||||||
ESOCKTNOSUPPORT
|
ESOCKTNOSUPPORT Errno = (Errno)(syscall.ESOCKTNOSUPPORT)
|
||||||
ENODATA
|
|
||||||
EUNATCH
|
ERRNO_MAX = EOF - 1
|
||||||
ERRNO_MAX
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Errno c.Int
|
type Errno c.Int
|
||||||
|
|
||||||
//go:linkname TranslateSysError C.uv_translate_sys_error
|
//go:linkname TranslateSysError C.uv_translate_sys_error
|
||||||
func TranslateSysError(sysErrno c.Int) c.Int
|
func TranslateSysError(sysErrno c.Int) Errno
|
||||||
|
|
||||||
//go:linkname Strerror C.uv_strerror
|
//go:linkname Strerror C.uv_strerror
|
||||||
func Strerror(err c.Int) *c.Char
|
func Strerror(err Errno) *c.Char
|
||||||
|
|
||||||
//go:linkname StrerrorR C.uv_strerror_r
|
//go:linkname StrerrorR C.uv_strerror_r
|
||||||
func StrerrorR(err c.Int, buf *c.Char, bufLen uintptr) *c.Char
|
func StrerrorR(err Errno, buf *c.Char, bufLen uintptr) *c.Char
|
||||||
|
|
||||||
//go:linkname ErrName C.uv_err_name
|
//go:linkname ErrName C.uv_err_name
|
||||||
func ErrName(err c.Int) *c.Char
|
func ErrName(err Errno) *c.Char
|
||||||
|
|
||||||
//go:linkname ErrNameR C.uv_err_name_r
|
//go:linkname ErrNameR C.uv_err_name_r
|
||||||
func ErrNameR(err c.Int, buf *c.Char, bufLen uintptr) *c.Char
|
func ErrNameR(err Errno, buf *c.Char, bufLen uintptr) *c.Char
|
||||||
|
|||||||
17
c/net/net.go
17
c/net/net.go
@@ -80,6 +80,23 @@ const (
|
|||||||
SOCK_SEQPACKET = 5 // sequenced packet stream
|
SOCK_SEQPACKET = 5 // sequenced packet stream
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
EAI_ADDRFAMILY = iota + 1 /* address family for hostname not supported */
|
||||||
|
EAI_AGAIN /* temporary failure in name resolution */
|
||||||
|
EAI_BADFLAGS /* invalid value for ai_flags */
|
||||||
|
EAI_FAIL /* non-recoverable failure in name resolution */
|
||||||
|
EAI_FAMILY /* ai_family not supported */
|
||||||
|
EAI_MEMORY /* memory allocation failure */
|
||||||
|
EAI_NODATA /* no address associated with hostname */
|
||||||
|
EAI_NONAME /* hostname nor servname provided, or not known */
|
||||||
|
EAI_SERVICE /* servname not supported for ai_socktype */
|
||||||
|
EAI_SOCKTYPE /* ai_socktype not supported */
|
||||||
|
EAI_SYSTEM /* system error returned in errno */
|
||||||
|
EAI_BADHINTS /* invalid value for hints */
|
||||||
|
EAI_PROTOCOL /* resolved protocol is unknown */
|
||||||
|
EAI_OVERFLOW /* argument buffer overflow */
|
||||||
|
)
|
||||||
|
|
||||||
// (TODO) merge to inet
|
// (TODO) merge to inet
|
||||||
const INET_ADDRSTRLEN = 16
|
const INET_ADDRSTRLEN = 16
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user