...

Source file src/github.com/godbus/dbus/v5/transport_tcp.go

Documentation: github.com/godbus/dbus/v5

     1  package dbus
     2  
     3  import (
     4  	"errors"
     5  	"net"
     6  )
     7  
     8  func init() {
     9  	transports["tcp"] = newTcpTransport
    10  }
    11  
    12  func tcpFamily(keys string) (string, error) {
    13  	switch getKey(keys, "family") {
    14  	case "":
    15  		return "tcp", nil
    16  	case "ipv4":
    17  		return "tcp4", nil
    18  	case "ipv6":
    19  		return "tcp6", nil
    20  	default:
    21  		return "", errors.New("dbus: invalid tcp family (must be ipv4 or ipv6)")
    22  	}
    23  }
    24  
    25  func newTcpTransport(keys string) (transport, error) {
    26  	host := getKey(keys, "host")
    27  	port := getKey(keys, "port")
    28  	if host == "" || port == "" {
    29  		return nil, errors.New("dbus: unsupported address (must set host and port)")
    30  	}
    31  
    32  	protocol, err := tcpFamily(keys)
    33  	if err != nil {
    34  		return nil, err
    35  	}
    36  	socket, err := net.Dial(protocol, net.JoinHostPort(host, port))
    37  	if err != nil {
    38  		return nil, err
    39  	}
    40  	return NewConn(socket)
    41  }
    42  

View as plain text