From 19acb5a82a5fd21ca0f585e542adfb2d48f309d7 Mon Sep 17 00:00:00 2001 From: Nikita Sivukhin Date: Tue, 2 Dec 2025 22:05:49 +0400 Subject: [PATCH] allow to provide Host header through connection string --- libsql/sql.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libsql/sql.go b/libsql/sql.go index 4a18e8a..16bbd19 100644 --- a/libsql/sql.go +++ b/libsql/sql.go @@ -280,6 +280,12 @@ func extractTls(query *url.Values, scheme string) (bool, error) { } } +func extractHost(query *url.Values) string { + host := query.Get("host") + query.Del("host") + return host +} + func (d Driver) Open(dbUrl string) (driver.Conn, error) { u, err := url.Parse(dbUrl) if err != nil { @@ -314,6 +320,11 @@ func (d Driver) Open(dbUrl string) (driver.Conn, error) { return nil, err } + host := extractHost(&query) + if host == "" { + host = u.Host + } + for name := range query { return nil, fmt.Errorf("unknown query parameter %#v", name) } @@ -341,7 +352,7 @@ func (d Driver) Open(dbUrl string) (driver.Conn, error) { return ws.Connect(u.String(), jwt) } if u.Scheme == "https" || u.Scheme == "http" { - return http.Connect(u.String(), jwt, u.Host, false), nil + return http.Connect(u.String(), jwt, host, false), nil } return nil, fmt.Errorf("unsupported URL scheme: %s\nThis driver supports only URLs that start with libsql://, file://, https://, http://, wss:// and ws://", u.Scheme)