libapi.go 645 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package utp
  2. /*
  3. #include "utp.h"
  4. */
  5. import "C"
  6. import (
  7. "errors"
  8. "github.com/anacrolix/sync"
  9. )
  10. type Option = C.int
  11. const (
  12. LogNormal Option = C.UTP_LOG_NORMAL
  13. LogMtu Option = C.UTP_LOG_MTU
  14. LogDebug Option = C.UTP_LOG_DEBUG
  15. SendBuffer Option = C.UTP_SNDBUF
  16. RecvBuffer Option = C.UTP_RCVBUF
  17. TargetDelay Option = C.UTP_TARGET_DELAY
  18. TimedOut = C.UTP_ETIMEDOUT
  19. )
  20. var (
  21. mu sync.Mutex
  22. libContextToSocket = map[*utpContext]*Socket{}
  23. )
  24. func getSocketForLibContext(uc *utpContext) *Socket {
  25. return libContextToSocket[uc]
  26. }
  27. func errorForCode(code C.int) error {
  28. return errors.New(libErrorCodeNames(code))
  29. }