mirror of
https://github.com/tinygo-org/net.git
synced 2026-07-26 08:18:39 +00:00
35e809e0e5
Backport upstream Go standard library changes to TinyGo's net package. Unmodified files (18) replaced directly from Go 1.26.2 source. Modified files (22) merged via 3-way diff, preserving all TinyGo netdev adaptations, TINYGO markers, and embedded-device constraints. Notable upstream changes included: - net/http: cookie handling improvements, fs enhancements, reverse proxy updates, chunked encoding fixes - net/http: ServeMux routing and pattern matching updates - net: IP parsing and MAC address handling improvements - Various doc link syntax modernization (e.g. [Dial], [Buffers]) TinyGo-only files (netdev.go, tlssock.go) unchanged. All TINYGO comment markers preserved.
61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
// TINYGO: The following is copied and modified from Go 1.26.2 official implementation.
|
|
|
|
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package net
|
|
|
|
// BUG(mikio): On JS, WASIP1 and Plan 9, methods and functions related
|
|
// to UnixConn and UnixListener are not implemented.
|
|
|
|
// BUG(mikio): On Windows, methods and functions related to UnixConn
|
|
// and UnixListener don't work for "unixgram" and "unixpacket".
|
|
|
|
// BUG(paralin): On TinyGo, Unix sockets are not implemented.
|
|
|
|
// UnixAddr represents the address of a Unix domain socket end point.
|
|
type UnixAddr struct {
|
|
Name string
|
|
Net string
|
|
}
|
|
|
|
// Network returns the address's network name, "unix", "unixgram" or
|
|
// "unixpacket".
|
|
func (a *UnixAddr) Network() string {
|
|
return a.Net
|
|
}
|
|
|
|
func (a *UnixAddr) String() string {
|
|
if a == nil {
|
|
return "<nil>"
|
|
}
|
|
return a.Name
|
|
}
|
|
|
|
func (a *UnixAddr) isWildcard() bool {
|
|
return a == nil || a.Name == ""
|
|
}
|
|
|
|
func (a *UnixAddr) opAddr() Addr {
|
|
if a == nil {
|
|
return nil
|
|
}
|
|
return a
|
|
}
|
|
|
|
// ResolveUnixAddr returns an address of Unix domain socket end point.
|
|
//
|
|
// The network must be a Unix network name.
|
|
//
|
|
// See func [Dial] for a description of the network and address
|
|
// parameters.
|
|
func ResolveUnixAddr(network, address string) (*UnixAddr, error) {
|
|
switch network {
|
|
case "unix", "unixgram", "unixpacket":
|
|
return &UnixAddr{Name: address, Net: network}, nil
|
|
default:
|
|
return nil, UnknownNetworkError(network)
|
|
}
|
|
}
|