From 54b19999c64f63421774795ff39915e80d469e9a Mon Sep 17 00:00:00 2001 From: Alex X Date: Tue, 14 Nov 2023 14:22:17 +0300 Subject: [PATCH] Fix support raw username/password for tapo source #748 --- pkg/tapo/client.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkg/tapo/client.go b/pkg/tapo/client.go index 9d1c2c64..3ca9d9b3 100644 --- a/pkg/tapo/client.go +++ b/pkg/tapo/client.go @@ -65,11 +65,6 @@ func (c *Client) newConn() (net.Conn, error) { return nil, err } - // support raw username/password or cloud password in place of username - if _, ok := u.User.Password(); !ok { - u.User = url.UserPassword("admin", u.User.Username()) - } - if u.Port() == "" { u.Host += ":8800" } @@ -269,10 +264,14 @@ func dial(req *http.Request) (net.Conn, *http.Response, error) { return nil, nil, err } - if strings.Contains(auth, `encrypt_type="3"`) { - password = fmt.Sprintf("%32X", sha256.Sum256([]byte(password))) - } else { - password = fmt.Sprintf("%16X", md5.Sum([]byte(password))) + if password == "" { + // support cloud password in place of username + if strings.Contains(auth, `encrypt_type="3"`) { + password = fmt.Sprintf("%32X", sha256.Sum256([]byte(username))) + } else { + password = fmt.Sprintf("%16X", md5.Sum([]byte(username))) + } + username = "admin" } realm := tcp.Between(auth, `realm="`, `"`)