Artifact
ea605ef8362e583f59fac2bc665e75aaceb0578841e54f99133dc29b4216b71e:
Ticket change
[ea605ef836]
- New ticket
[799aae4e72a7c137|799aae4e72] <i>http::geturl hangs if certificate verify failed</i>.
by
anonymous on
2019-12-13 10:13:19.
0000: 44 20 32 30 31 39 2d 31 32 2d 31 33 54 31 30 3a D 2019-12-13T10:
0010: 31 33 3a 31 39 2e 37 32 36 0a 4a 20 66 6f 75 6e 13:19.726.J foun
0020: 64 69 6e 20 3e 31 2e 37 2e 33 0a 4a 20 69 63 6f din >1.7.3.J ico
0030: 6d 6d 65 6e 74 20 54 68 65 5c 73 70 72 6f 62 6c mment The\sprobl
0040: 65 6d 5c 73 69 73 5c 73 6d 6f 72 65 5c 73 73 65 em\sis\smore\sse
0050: 76 65 72 65 5c 73 74 68 65 5c 73 6f 6c 64 65 72 vere\sthe\solder
0060: 5c 73 74 68 65 5c 73 68 74 74 70 5c 73 70 61 63 \sthe\shttp\spac
0070: 6b 61 67 65 5c 73 69 73 2c 5c 73 62 75 74 5c 73 kage\sis,\sbut\s
0080: 69 6e 5c 73 69 74 73 5c 73 6c 65 73 73 5c 73 63 in\sits\sless\sc
0090: 72 69 74 69 63 61 6c 5c 73 66 6f 72 6d 2c 5c 73 ritical\sform,\s
00a0: 69 74 5c 73 68 61 6e 67 73 5c 73 77 68 65 6e 5c it\shangs\swhen\
00b0: 73 70 65 72 66 6f 72 6d 69 6e 67 5c 73 61 5c 73 sperforming\sa\s
00c0: 70 6f 73 74 3a 5c 72 5c 6e 5c 72 5c 6e 60 60 60 post:\r\n\r\n```
00d0: 5c 72 5c 6e 70 61 63 6b 61 67 65 5c 73 72 65 71 \r\npackage\sreq
00e0: 75 69 72 65 5c 73 74 6c 73 5c 72 5c 6e 5c 72 5c uire\stls\r\n\r\
00f0: 6e 70 61 63 6b 61 67 65 5c 73 72 65 71 75 69 72 npackage\srequir
0100: 65 5c 73 68 74 74 70 5c 72 5c 6e 68 74 74 70 3a e\shttp\r\nhttp:
0110: 3a 72 65 67 69 73 74 65 72 5c 73 68 74 74 70 73 :register\shttps
0120: 5c 73 34 34 33 5c 73 74 6c 73 3a 3a 73 6f 63 6b \s443\stls::sock
0130: 65 74 5c 72 5c 6e 5c 72 5c 6e 70 72 6f 63 5c 73 et\r\n\r\nproc\s
0140: 3a 3a 74 6c 73 3a 3a 6c 6f 67 5c 73 7b 6c 65 76 ::tls::log\s{lev
0150: 65 6c 5c 73 6d 73 67 7d 5c 73 7b 5c 72 5c 6e 5c el\smsg}\s{\r\n\
0160: 73 5c 73 5c 73 5c 73 70 75 74 73 5c 73 22 3e 3e s\s\s\sputs\s">>
0170: 3e 3e 5c 73 24 6d 73 67 22 5c 72 5c 6e 7d 5c 72 >>\s$msg"\r\n}\r
0180: 5c 6e 5c 72 5c 6e 23 73 65 74 5c 73 3a 3a 74 6c \n\r\n#set\s::tl
0190: 73 3a 3a 64 65 62 75 67 5c 73 31 5c 72 5c 6e 5c s::debug\s1\r\n\
01a0: 72 5c 6e 74 6c 73 3a 3a 69 6e 69 74 5c 73 2d 63 r\ntls::init\s-c
01b0: 61 66 69 6c 65 5c 73 2f 74 6d 70 2f 6b 6b 2e 63 afile\s/tmp/kk.c
01c0: 61 5c 73 2d 74 6c 73 31 5c 73 74 72 75 65 5c 73 a\s-tls1\strue\s
01d0: 2d 72 65 71 75 69 72 65 5c 73 31 5c 73 2d 72 65 -require\s1\s-re
01e0: 71 75 65 73 74 5c 73 31 5c 72 5c 6e 5c 72 5c 6e quest\s1\r\n\r\n
01f0: 5c 72 5c 6e 68 74 74 70 3a 3a 67 65 74 75 72 6c \r\nhttp::geturl
0200: 5c 73 68 74 74 70 73 3a 2f 2f 73 65 6c 66 2d 73 \shttps://self-s
0210: 69 67 6e 65 64 2e 62 61 64 73 73 6c 2e 63 6f 6d igned.badssl.com
0220: 5c 73 2d 71 75 65 72 79 5c 73 61 3d 62 5c 72 5c \s-query\sa=b\r\
0230: 6e 5c 72 5c 6e 70 75 74 73 5c 73 4f 4b 5c 72 5c n\r\nputs\sOK\r\
0240: 6e 60 60 60 5c 72 5c 6e 5c 72 5c 6e 49 74 5c 73 n```\r\n\r\nIt\s
0250: 73 68 6f 77 73 3a 5c 72 5c 6e 5c 72 5c 6e 60 60 shows:\r\n\r\n``
0260: 60 5c 72 5c 6e 56 65 72 69 66 79 43 61 6c 6c 62 `\r\nVerifyCallb
0270: 61 63 6b 5c 73 31 5c 72 5c 6e 56 65 72 69 66 79 ack\s1\r\nVerify
0280: 43 61 6c 6c 62 61 63 6b 5c 73 63 68 65 63 6b 69 Callback\schecki
0290: 6e 67 5c 72 5c 6e 56 65 72 69 66 79 43 61 6c 6c ng\r\nVerifyCall
02a0: 62 61 63 6b 5c 73 6e 75 6c 6c 5c 73 63 61 6c 6c back\snull\scall
02b0: 62 61 63 6b 5c 72 5c 6e 56 65 72 69 66 79 43 61 back\r\nVerifyCa
02c0: 6c 6c 62 61 63 6b 5c 73 72 65 74 75 72 6e 6e 69 llback\sreturnni
02d0: 6e 67 5c 73 6f 6b 3d 30 5c 72 5c 6e 53 53 4c 5c ng\sok=0\r\nSSL\
02e0: 73 63 68 61 6e 6e 65 6c 5c 73 22 73 6f 63 6b 35 schannel\s"sock5
02f0: 22 3a 5c 73 65 72 72 6f 72 3a 5c 73 63 65 72 74 ":\serror:\scert
0300: 69 66 69 63 61 74 65 5c 73 76 65 72 69 66 79 5c ificate\sverify\
0310: 73 66 61 69 6c 65 64 5c 72 5c 6e 5c 72 5c 6e 3c sfailed\r\n\r\n<
0320: 2d 2d 2d 2d 2d 5c 73 68 65 72 65 5c 73 69 74 5c -----\shere\sit\
0330: 73 68 61 6e 67 73 5c 72 5c 6e 60 60 60 5c 72 5c shangs\r\n```\r\
0340: 6e 5c 72 5c 6e 49 66 5c 73 69 6e 73 74 65 61 64 n\r\nIf\sinstead
0350: 5c 73 6f 66 5c 73 70 65 72 66 6f 72 6d 69 6e 67 \sof\sperforming
0360: 5c 73 61 5c 73 50 4f 53 54 2c 5c 73 77 65 5c 73 \sa\sPOST,\swe\s
0370: 75 73 65 5c 73 47 45 54 2c 5c 73 69 74 5c 73 64 use\sGET,\sit\sd
0380: 6f 65 73 5c 73 6e 6f 74 5c 73 68 61 6e 67 3a 5c oes\snot\shang:\
0390: 72 5c 6e 5c 72 5c 6e 5c 72 5c 6e 60 60 60 5c 72 r\n\r\n\r\n```\r
03a0: 5c 6e 56 65 72 69 66 79 43 61 6c 6c 62 61 63 6b \nVerifyCallback
03b0: 5c 73 31 5c 72 5c 6e 56 65 72 69 66 79 43 61 6c \s1\r\nVerifyCal
03c0: 6c 62 61 63 6b 5c 73 63 68 65 63 6b 69 6e 67 5c lback\schecking\
03d0: 72 5c 6e 56 65 72 69 66 79 43 61 6c 6c 62 61 63 r\nVerifyCallbac
03e0: 6b 5c 73 6e 75 6c 6c 5c 73 63 61 6c 6c 62 61 63 k\snull\scallbac
03f0: 6b 5c 72 5c 6e 56 65 72 69 66 79 43 61 6c 6c 62 k\r\nVerifyCallb
0400: 61 63 6b 5c 73 72 65 74 75 72 6e 6e 69 6e 67 5c ack\sreturnning\
0410: 73 6f 6b 3d 30 5c 72 5c 6e 65 72 72 6f 72 5c 73 sok=0\r\nerror\s
0420: 66 6c 75 73 68 69 6e 67 5c 73 22 73 6f 63 6b 35 flushing\s"sock5
0430: 22 3a 5c 73 63 6f 6e 6e 65 63 74 69 6f 6e 5c 73 ":\sconnection\s
0440: 72 65 73 65 74 5c 73 62 79 5c 73 70 65 65 72 5c reset\sby\speer\
0450: 72 5c 6e 5c 73 5c 73 5c 73 5c 73 77 68 69 6c 65 r\n\s\s\s\swhile
0460: 5c 73 65 78 65 63 75 74 69 6e 67 5c 72 5c 6e 22 \sexecuting\r\n"
0470: 68 74 74 70 3a 3a 67 65 74 75 72 6c 5c 73 68 74 http::geturl\sht
0480: 74 70 73 3a 2f 2f 73 65 6c 66 2d 73 69 67 6e 65 tps://self-signe
0490: 64 2e 62 61 64 73 73 6c 2e 63 6f 6d 22 5c 72 5c d.badssl.com"\r\
04a0: 6e 5c 73 5c 73 5c 73 5c 73 28 66 69 6c 65 5c 73 n\s\s\s\s(file\s
04b0: 22 63 68 65 63 6b 2e 74 63 6c 22 5c 73 6c 69 6e "check.tcl"\slin
04c0: 65 5c 73 31 38 29 5c 72 5c 6e 60 60 60 5c 72 5c e\s18)\r\n```\r\
04d0: 6e 5c 72 5c 6e 42 75 74 5c 73 69 73 5c 73 6a 75 n\r\nBut\sis\sju
04e0: 73 74 5c 73 62 65 63 61 75 73 65 5c 73 69 6e 5c st\sbecause\sin\
04f0: 73 68 74 74 70 5c 73 6d 6f 64 75 6c 65 2c 5c 73 shttp\smodule,\s
0500: 74 68 65 5c 73 73 6f 63 6b 65 74 5c 73 69 73 5c the\ssocket\sis\
0510: 73 66 6c 75 73 68 65 64 2c 5c 73 61 6e 64 5c 73 sflushed,\sand\s
0520: 69 74 5c 73 66 61 69 6c 73 3a 5c 72 5c 6e 5c 72 it\sfails:\r\n\r
0530: 5c 6e 60 60 60 5c 72 5c 6e 5c 73 5c 73 69 66 5c \n```\r\n\s\sif\
0540: 73 7b 24 69 73 51 75 65 72 79 5c 73 7c 7c 5c 73 s{$isQuery\s||\s
0550: 24 69 73 51 75 65 72 79 43 68 61 6e 6e 65 6c 7d $isQueryChannel}
0560: 5c 73 7b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c \s{\r\n\s\s\s\s\
0570: 73 5c 73 2e 2e 2e 5c 72 5c 6e 5c 73 5c 73 5c 73 s\s...\r\n\s\s\s
0580: 5c 73 5c 73 5c 73 70 75 74 73 5c 73 24 73 6f 63 \s\s\sputs\s$soc
0590: 6b 5c 73 22 22 5c 72 5c 6e 5c 73 5c 73 5c 73 5c k\s""\r\n\s\s\s\
05a0: 73 5c 73 5c 73 66 63 6f 6e 66 69 67 75 72 65 5c s\s\sfconfigure\
05b0: 73 24 73 6f 63 6b 5c 73 2d 74 72 61 6e 73 6c 61 s$sock\s-transla
05c0: 74 69 6f 6e 5c 73 7b 61 75 74 6f 5c 73 62 69 6e tion\s{auto\sbin
05d0: 61 72 79 7d 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 ary}\r\n\s\s\s\s
05e0: 5c 73 5c 73 66 69 6c 65 65 76 65 6e 74 5c 73 24 \s\sfileevent\s$
05f0: 73 6f 63 6b 5c 73 77 72 69 74 61 62 6c 65 5c 73 sock\swritable\s
0600: 5b 6c 69 73 74 5c 73 68 74 74 70 3a 3a 57 72 69 [list\shttp::Wri
0610: 74 65 5c 73 24 74 6f 6b 65 6e 5d 5c 72 5c 6e 5c te\s$token]\r\n\
0620: 73 5c 73 7d 5c 73 65 6c 73 65 5c 73 7b 5c 72 5c s\s}\selse\s{\r\
0630: 6e 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 70 75 74 n\s\s\s\s\s\sput
0640: 73 5c 73 24 73 6f 63 6b 5c 73 22 22 5c 72 5c 6e s\s$sock\s""\r\n
0650: 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 66 6c 75 73 \s\s\s\s\s\sflus
0660: 68 5c 73 24 73 6f 63 6b 5c 72 5c 6e 5c 73 5c 73 h\s$sock\r\n\s\s
0670: 5c 73 5c 73 5c 73 5c 73 66 69 6c 65 65 76 65 6e \s\s\s\sfileeven
0680: 74 5c 73 24 73 6f 63 6b 5c 73 72 65 61 64 61 62 t\s$sock\sreadab
0690: 6c 65 5c 73 5b 6c 69 73 74 5c 73 68 74 74 70 3a le\s[list\shttp:
06a0: 3a 45 76 65 6e 74 5c 73 24 73 6f 63 6b 5c 73 24 :Event\s$sock\s$
06b0: 74 6f 6b 65 6e 5d 5c 72 5c 6e 5c 73 5c 73 7d 5c token]\r\n\s\s}\
06c0: 72 5c 6e 60 60 60 5c 72 5c 6e 5c 72 5c 6e 4f 6e r\n```\r\n\r\nOn
06d0: 5c 73 69 73 51 75 65 72 79 5c 73 6d 6f 64 65 5c \sisQuery\smode\
06e0: 73 28 50 4f 53 54 29 2c 5c 73 74 68 65 72 65 5c s(POST),\sthere\
06f0: 73 69 73 5c 73 6e 6f 5c 73 66 6c 75 73 68 5c 73 sis\sno\sflush\s
0700: 74 6f 5c 73 74 72 69 67 67 65 72 5c 73 61 6e 5c to\strigger\san\
0710: 73 65 72 72 6f 72 5c 73 73 6f 5c 73 69 74 5c 73 serror\sso\sit\s
0720: 68 61 6e 67 73 2e 5c 72 5c 6e 5c 72 5c 6e 49 5c hangs.\r\n\r\nI\
0730: 73 74 72 61 63 6b 65 64 5c 73 74 68 65 5c 73 65 stracked\sthe\se
0740: 72 72 6f 72 5c 73 74 6f 5c 73 74 68 69 73 5c 73 rror\sto\sthis\s
0750: 63 6f 6d 6d 69 74 3a 5c 73 5c 72 5c 6e 5c 72 5c commit:\s\r\n\r\
0760: 6e 68 74 74 70 73 3a 2f 2f 63 6f 72 65 2e 74 63 nhttps://core.tc
0770: 6c 2d 6c 61 6e 67 2e 6f 72 67 2f 74 63 6c 74 6c l-lang.org/tcltl
0780: 73 2f 69 6e 66 6f 2f 37 64 66 37 61 38 36 39 36 s/info/7df7a8696
0790: 65 30 30 39 34 34 37 5c 72 5c 6e 5c 72 5c 6e 46 e009447\r\n\r\nF
07a0: 72 6f 6d 5c 73 74 68 61 74 5c 73 63 6f 6d 6d 69 rom\sthat\scommi
07b0: 74 5c 73 6f 6e 77 61 72 64 73 2c 5c 73 69 74 5c t\sonwards,\sit\
07c0: 73 61 6c 77 61 79 73 5c 73 68 61 6e 67 73 2e 0a salways\shangs..
07d0: 4a 20 6c 6f 67 69 6e 20 61 6e 6f 6e 79 6d 6f 75 J login anonymou
07e0: 73 0a 4a 20 6d 69 6d 65 74 79 70 65 20 74 65 78 s.J mimetype tex
07f0: 74 2f 78 2d 66 6f 73 73 69 6c 2d 70 6c 61 69 6e t/x-fossil-plain
0800: 0a 4a 20 70 72 69 76 61 74 65 5f 63 6f 6e 74 61 .J private_conta
0810: 63 74 20 66 62 35 64 31 34 32 63 62 64 30 33 66 ct fb5d142cbd03f
0820: 37 35 36 31 36 65 33 36 37 31 30 62 32 61 31 36 75616e36710b2a16
0830: 36 34 33 33 36 32 32 63 30 30 66 0a 4a 20 73 65 6433622c00f.J se
0840: 76 65 72 69 74 79 20 53 65 76 65 72 65 0a 4a 20 verity Severe.J
0850: 73 74 61 74 75 73 20 4f 70 65 6e 0a 4a 20 74 69 status Open.J ti
0860: 74 6c 65 20 68 74 74 70 3a 3a 67 65 74 75 72 6c tle http::geturl
0870: 5c 73 68 61 6e 67 73 5c 73 69 66 5c 73 63 65 72 \shangs\sif\scer
0880: 74 69 66 69 63 61 74 65 5c 73 76 65 72 69 66 79 tificate\sverify
0890: 5c 73 66 61 69 6c 65 64 0a 4a 20 74 79 70 65 20 \sfailed.J type
08a0: 43 6f 64 65 5c 73 44 65 66 65 63 74 0a 4b 20 37 Code\sDefect.K 7
08b0: 39 39 61 61 65 34 65 37 32 61 37 63 31 33 37 39 99aae4e72a7c1379
08c0: 37 39 62 61 37 39 31 36 39 38 62 37 39 64 36 31 79ba791698b79d61
08d0: 30 61 64 35 31 31 39 0a 55 20 61 6e 6f 6e 79 6d 0ad5119.U anonym
08e0: 6f 75 73 0a 5a 20 32 65 65 64 38 32 65 62 62 30 ous.Z 2eed82ebb0
08f0: 33 62 64 30 33 66 66 33 61 66 33 32 64 63 65 36 3bd03ff3af32dce6
0900: 39 61 33 33 30 30 0a 9a3300.