Commit Graph

25 Commits

Author SHA1 Message Date
Scott Feldman 1b87eff727 add ErrClosed error type for natiu-mqtt 2023-07-07 20:00:29 +02:00
Scott Feldman 6bb697535a Unexport net constants copied over from syscall 2023-07-07 20:00:29 +02:00
Scott Feldman 2d46776c18 move syscall constants for networking into net space to avoid windows build issue 2023-07-07 20:00:29 +02:00
Scott Feldman d939a800a7 BUG Fix: use port :80 if server.Addr is empty 2023-07-07 20:00:29 +02:00
Scott Feldman 7898c5e946 BUG Fix: return proper net.OpError's for Read/Write operations
Need to return the same error structure/content as regular Go for
net.Conn Read/Write operations.  Found/fixed when testing deadlines
on Read/Write operations.
2023-07-07 20:00:29 +02:00
Scott Feldman ad745d61ae udpsock: remove TODO comment on ephemeral ports being racy 2023-07-07 20:00:29 +02:00
Scott Feldman 331151cafe move IPPROTO_TLS to netdev to avoid src/syscall dependency 2023-07-07 20:00:29 +02:00
Scott Feldman 693edae782 Add network device driver model, netdev
This PR adds a network device driver model called netdev. There will be a companion PR for TinyGo drivers to update the netdev drivers and network examples. This PR covers the core "net" package.

An RFC for the work is here: #tinygo-org/drivers#487. Some things have changed from the RFC, but nothing major.

The "net" package is a partial port of Go's "net" package, version 1.19.3. The src/net/README file has details on what is modified from Go's "net" package.

Most "net" features are working as they would in normal Go. TCP/UDP/TLS protocol support is there. As well as HTTP client and server support. Standard Go network packages such as golang.org/x/net/websockets and Paho MQTT client work as-is. Other packages are likely to work as-is.

Testing results are here (https://docs.google.com/spreadsheets/d/e/2PACX-1vT0cCjBvwXf9HJf6aJV2Sw198F2ief02gmbMV0sQocKT4y4RpfKv3dh6Jyew8lQW64FouZ8GwA2yjxI/pubhtml?gid=1013173032&single=true).
2023-07-07 20:00:29 +02:00
Justin A. Wilson b46e2ec2ac Added missing TCPAddr and UDPAddr implementations to the net package 2023-05-04 13:35:26 +02:00
Yurii Soldak d6afd8a0f4 build: drop deprecated build tags 2023-05-04 13:35:26 +02:00
Hrishi Hiraskar f8c068c541 net: implement Pipe 2023-05-04 13:35:26 +02:00
Roman Volosatovs ca9cd0d2e5 net: sync net.go with Go 1.18 stdlib
Signed-off-by: Roman Volosatovs <roman@profian.com>
2023-05-04 13:35:26 +02:00
Ayke van Laethem 6787459018 all: format code according to Go 1.19 rules
Go 1.19 started reformatting code in a way that makes it more obvious
how it will be rendered on pkg.go.dev. It gets it almost right, but not
entirely. Therefore, I had to modify some of the comments so that they
are formatted correctly.
2023-05-04 13:35:26 +02:00
Ayke van Laethem 00d8c4d7df all: run gofmt on all source code
Some source code wasn't part of `FMT_PATHS` so wasn't checked for
correct formatting. This change includes all this source code and
excludes cgo/testdata because it contains files that can't be parsed.
2023-05-04 13:35:26 +02:00
Federico G. Schwindt 2953128831 Test net.Buffers{} 2023-05-04 13:35:26 +02:00
Federico G. Schwindt c954718d79 Add net.Buffers
Should fix https://github.com/mailru/easyjson/issues/335, for the
most part.
2023-05-04 13:35:26 +02:00
deadprogram c454821d41 net/interface: use internal implementation for itoa.Uitoa
Signed-off-by: deadprogram <ron@hybridgroup.com>
2023-05-04 13:35:26 +02:00
soypat 1714e7c7ab net: add bare Interface implementation 2023-05-04 13:35:26 +02:00
Dan Kegel 2ec51fb1f1 net/ip, syscall/errno: Reduce code duplication by switching to internal/itoa.
internal/itoa wasn't around back in go 1.12 days when tinygo's syscall/errno.go was written.
It was only added as of go 1.17 ( https://github.com/golang/go/commit/061a6903a232cb868780b )
so we have to have an internal copy for now.
The internal copy should be deleted when tinygo drops support for go 1.16.

FWIW, the new version seems nicer.
It uses no allocations when converting 0,
and although the optimizer might make this moot, uses
a multiplication x 10 instead of a mod operation.
2023-05-04 13:35:26 +02:00
soypat 641c70fa39 move xtoi2 to parse.go 2023-05-04 13:35:26 +02:00
Patricio Whittingslow 46ead638e7 add MAC address implementation to net 2023-05-04 13:35:26 +02:00
Federico G. Schwindt 6018d49fa2 net: os: add more stubs for 1.15
Fix importing net/http.
2023-05-04 13:35:26 +02:00
Federico G. Schwindt a51f3399cb Add more net compatibility
Required for net/http.
2023-05-04 13:35:26 +02:00
Federico G. Schwindt 9432cd8adb Add support for net.IP 2023-05-04 13:35:26 +02:00
Ron Evans 5ad867442b Initial commit 2023-05-04 13:07:35 +02:00