X-Git-Url: http://www.git.stargrave.org/?p=tofuproxy.git;a=blobdiff_plain;f=httpauth.go;h=92eff6e699dc81fa0261438a804ab713525d8499;hp=9408d98348c44367fd6ec38f0fe25ace80b6ca43;hb=HEAD;hpb=29146b48a23355805345a7b7a656809cf624bb85 diff --git a/httpauth.go b/httpauth.go index 9408d98..8e32452 100644 --- a/httpauth.go +++ b/httpauth.go @@ -1,20 +1,18 @@ -/* -tofuproxy -- flexible HTTP/HTTPS proxy, TLS terminator, X.509 TOFU - manager, WARC/geminispace browser -Copyright (C) 2021-2023 Sergey Matveev - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, version 3 of the License. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . -*/ +// tofuproxy -- flexible HTTP/HTTPS proxy, TLS terminator, X.509 TOFU +// manager, WARC/geminispace browser +// Copyright (C) 2021-2024 Sergey Matveev +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . package tofuproxy @@ -25,13 +23,14 @@ import ( "os/exec" "strings" + "go.cypherpunks.ru/netrc" ttls "go.stargrave.org/tofuproxy/tls" ) func authDialog(host, realm string) (string, string, error) { var b bytes.Buffer - userInit, passInit := findInNetrc(host) - b.WriteString(fmt.Sprintf(` + userInit, passInit := netrc.Find(host) + fmt.Fprintf(&b, ` tk_setPalette grey wm title . "Unauthorized: %s" @@ -59,7 +58,7 @@ bind . {switch -exact %%K { q {exit 0} ; # reject once l login }} -`, strings.ReplaceAll(realm, "\"", ""), userInit, passInit)) +`, strings.ReplaceAll(realm, "\"", ""), userInit, passInit) cmd := exec.Command(ttls.CmdWish) cmd.Stdin = &b out, err := cmd.Output()