Description: |
(text/x-fossil-wiki)
When the socket command within http::geturl raises an error, the stack trace is missing.
<verbatim>
% package require http
2.8.12
% package require tls
1.8.0
% http::register https 443 [list ::tls::socket -tls1] ; # parameter missing to -tls1
443 {::tls::tls_socket -tls1}
% http::geturl https://www.hibc.de/
expected boolean value but got "-async"
% set errorInfo
expected boolean value but got "-async"
while executing
"http::geturl https://www.hibc.de/"
</verbatim>
The error message was quite surprising to me, as "http::geturl https://www.hibc.de/" has no argument "-async".
After this checkin [a3bf2db1fd], the error reporting was enhanced to contain full stack trace to show the origin of the issue:
<verbatim>
% package require http
2.8.13
% package require tls
1.8.0
% http::register https 443 [list ::tls::socket -tls1] ; # parameter missing to -tls1
443 {::tls::socket -tls1}
% http::geturl https://www.hibc.de/
expected boolean value but got "-async"
% set errorInfo
expected boolean value but got "-async"
while executing
"tls::import sock0551AF48 -server 0 -tls1 -async"
("eval" body line 1)
invoked from within
"eval [list tls::import] $chan $iopts"
invoked from within
"::tls::socket -tls1 -async www.hibc.de 443"
("eval" body line 1)
invoked from within
"eval $defcmd $sockopts $targetAddr"
invoked from within
"http::geturl https://www.hibc.de/"
</verbatim>
|