The example client bails out when compiled with Go 1.22.4
graugans opened this issue · 5 comments
graugans commented
I am not sure if this is related to Go 1.22 or in general an issue. When I do compile the example client and run it I do get:
Jun 28 08:51:11.427711 INF REGISTER sip:bob@127.0.0.1:5060 SIP/2.0
Jun 28 08:51:11.431174 INF Received status status=401
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x64579b]
goroutine 1 [running]:
github.com/icholy/digest.(*Credentials).String(0x0)
/go/pkg/mod/github.com/icholy/digest@v0.1.22/credentials.go:76 +0x5b
main.main()
/workspaces/opkald/example/client/main.go:97 +0xef6
In case I do handle the error I do get:
// Reply with digest
cred, err := digest.Digest(chal, digest.Options{
Method: req.Method.String(),
URI: recipient.Host,
Username: *username,
Password: *password,
})
if err != nil {
panic(err)
}
panic: digest: unsupported algorithm: "md5"
I can fix this by setting the Algorithm to "MD5" by hand....
// Get WwW-Authenticate
wwwAuth := res.GetHeader("WWW-Authenticate")
chal, err := digest.ParseChallenge(wwwAuth.Value())
if err != nil {
log.Fatal().Str("wwwauth", wwwAuth.Value()).Err(err).Msg("Fail to parse challenge")
}
chal.Algorithm = "MD5"
I guess this should be fixed in the sipgo
package
graugans commented
emiago commented
I used asterisk in many testing, which version of asterisk are you using?
graugans commented
The version I do use at the moment is the Ubuntu 22.04 included version.
Asterisk 18.10.0~dfsg+~cs6.10.40431411-2
Maybe this behavior can be changed in the asterisk config?
emiago commented
Tested again and confirmed all works with asterisk 20