mirror of
https://github.com/wweir/sower.git
synced 2024-04-21 12:42:15 +00:00
31 lines
552 B
Go
31 lines
552 B
Go
package transport
|
|
|
|
import (
|
|
"net"
|
|
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
type Transport interface {
|
|
Dial(server string) (net.Conn, error)
|
|
Listen(port string) (<-chan net.Conn, error)
|
|
}
|
|
|
|
var transports = map[string]Transport{}
|
|
|
|
func ListTransports() []string {
|
|
list := make([]string, 0, len(transports))
|
|
for key := range transports {
|
|
list = append(list, key)
|
|
}
|
|
return list
|
|
}
|
|
|
|
func GetTransport(netType string) (Transport, error) {
|
|
tran, ok := transports[netType]
|
|
if !ok {
|
|
return nil, errors.New("invalid net type: " + netType)
|
|
}
|
|
return tran, nil
|
|
}
|