diff --git a/src/core/link_mpath_android.go b/src/core/link_mpath_android.go index 8ea1f922..15cee935 100644 --- a/src/core/link_mpath_android.go +++ b/src/core/link_mpath_android.go @@ -43,7 +43,11 @@ func (l *linkMPATH) dial(url *url.URL, options linkOptions, sintf string) error if err != nil { return err } - return l.handler(url.String(), info, conn, options, false, false) + dial := &linkDial{ + url: url, + sintf: sintf, + + return l.handler(dial, url.String(), info, conn, options, false, false) } func (l *linkMPATH) listen(url *url.URL, sintf string) (*Listener, error) { @@ -80,7 +84,7 @@ func (l *linkMPATH) listen(url *url.URL, sintf string) (*Listener, error) { addr := conn.RemoteAddr().(*net.TCPAddr) name := fmt.Sprintf("mpath://%s", addr) info := linkInfoFor("mpath", sintf, strings.SplitN(addr.IP.String(), "%", 2)[0]) - if err = l.handler(name, info, conn, linkOptions{}, true, addr.IP.IsLinkLocalUnicast()); err != nil { + if err = l.handler(nil, name, info, conn, linkOptionsForListener(url), true, addr.IP.IsLinkLocalUnicast()); err != nil { l.core.log.Errorln("Failed to create inbound link:", err) } } @@ -91,9 +95,10 @@ func (l *linkMPATH) listen(url *url.URL, sintf string) (*Listener, error) { return entry, nil } -func (l *linkMPATH) handler(name string, info linkInfo, conn net.Conn, options linkOptions, incoming bool, force bool) error { +func (l *linkMPATH) handler(dial *linkDial, name string, info linkInfo, conn net.Conn, options linkOptions, incoming bool, force bool) error { return l.links.create( conn, // connection + dial, // connection URL name, // connection name info, // connection info incoming, // not incoming