Hex Artifact Content

Artifact d28e12627d9b53cf0cee92d542a5168d83e2d45e1671555efc9d292448ad1d84:

Ticket change [d28e12627d] - Ticket [2c7b7487966f6597|2c7b748796] <i>Control TLS socket server errors</i> status still Open with 5 other changes by aspect on 2021-03-02 05:34:06.
0000: 44 20 32 30 32 31 2d 30 33 2d 30 32 54 30 35 3a  D 2021-03-02T05:
0010: 33 34 3a 30 36 2e 34 35 39 0a 4a 20 69 63 6f 6d  34:06.459.J icom
0020: 6d 65 6e 74 20 54 68 69 73 5c 73 77 61 73 5c 73  ment This\swas\s
0030: 64 69 73 63 75 73 73 65 64 5c 73 6f 6e 5c 73 74  discussed\son\st
0040: 68 65 5c 73 63 68 61 74 5c 73 79 65 73 74 65 72  he\schat\syester
0050: 64 61 79 2e 5c 73 5c 73 45 72 72 6f 72 73 5c 73  day.\s\sErrors\s
0060: 69 6e 5c 73 6e 65 67 6f 74 69 61 74 69 6f 6e 5c  in\snegotiation\
0070: 73 63 61 6e 5c 73 62 65 5c 73 72 65 63 65 69 76  scan\sbe\sreceiv
0080: 65 64 5c 73 5c 72 5c 6e 62 79 5c 73 5b 74 6c 73  ed\s\r\nby\s[tls
0090: 3a 3a 68 61 6e 64 73 68 61 6b 65 5d 2c 5c 73 62  ::handshake],\sb
00a0: 75 74 5c 73 61 5c 73 62 67 65 72 72 6f 72 5c 73  ut\sa\sbgerror\s
00b0: 69 73 5c 73 73 74 69 6c 6c 5c 73 70 72 6f 64 75  is\sstill\sprodu
00c0: 63 65 64 2e 5c 73 5c 73 54 68 69 73 5c 73 73 68  ced.\s\sThis\ssh
00d0: 6f 72 74 5c 73 65 78 61 6d 70 6c 65 5c 73 5c 72  ort\sexample\s\r
00e0: 5c 6e 64 65 6d 6f 6e 73 74 72 61 74 65 73 3a 5c  \ndemonstrates:\
00f0: 72 5c 6e 5c 72 5c 6e 70 61 63 6b 61 67 65 5c 73  r\n\r\npackage\s
0100: 72 65 71 75 69 72 65 5c 73 74 6c 73 5c 72 5c 6e  require\stls\r\n
0110: 5c 72 5c 6e 74 6c 73 3a 3a 69 6e 69 74 5c 73 2d  \r\ntls::init\s-
0120: 63 61 64 69 72 5c 73 2f 65 74 63 2f 73 73 6c 2f  cadir\s/etc/ssl/
0130: 63 65 72 74 73 5c 73 2d 72 65 71 75 69 72 65 5c  certs\s-require\
0140: 73 74 72 75 65 5c 73 2d 73 73 6c 32 5c 73 30 5c  strue\s-ssl2\s0\
0150: 73 2d 73 73 6c 33 5c 73 30 5c 73 2d 74 6c 73 31  s-ssl3\s0\s-tls1
0160: 5c 73 30 5c 73 2d 74 6c 73 31 2e 31 5c 73 30 5c  \s0\s-tls1.1\s0\
0170: 72 5c 6e 5c 72 5c 6e 70 72 6f 63 5c 73 62 67 65  r\n\r\nproc\sbge
0180: 72 72 6f 72 5c 73 7b 65 72 72 7d 5c 73 7b 5c 72  rror\s{err}\s{\r
0190: 5c 6e 5c 73 5c 73 5c 73 5c 73 70 75 74 73 5c 73  \n\s\s\s\sputs\s
01a0: 22 62 67 65 72 72 6f 72 3a 5c 73 24 65 72 72 22  "bgerror:\s$err"
01b0: 5c 72 5c 6e 7d 5c 72 5c 6e 5c 72 5c 6e 70 72 6f  \r\n}\r\n\r\npro
01c0: 63 5c 73 64 6f 5f 63 6f 6e 6e 65 63 74 5c 73 7b  c\sdo_connect\s{
01d0: 7d 5c 73 7b 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73  }\s{\r\n\s\s\s\s
01e0: 73 65 74 5c 73 63 68 61 6e 5c 73 5b 74 6c 73 3a  set\schan\s[tls:
01f0: 3a 73 6f 63 6b 65 74 5c 73 69 72 63 2e 63 68 6f  :socket\sirc.cho
0200: 6f 70 61 2e 6e 65 74 5c 73 39 39 39 39 5d 5c 72  opa.net\s9999]\r
0210: 5c 6e 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 23 5c  \n\r\n\s\s\s\s#\
0220: 73 65 6e 73 75 72 65 5c 73 68 61 6e 64 73 68 61  sensure\shandsha
0230: 6b 65 5c 73 63 6f 6d 70 6c 65 74 65 73 5c 72 5c  ke\scompletes\r\
0240: 6e 5c 73 5c 73 5c 73 5c 73 74 72 79 5c 73 7b 5c  n\s\s\s\stry\s{\
0250: 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c  r\n\s\s\s\s\s\s\
0260: 73 5c 73 77 68 69 6c 65 5c 73 7b 21 5b 74 6c 73  s\swhile\s{![tls
0270: 3a 3a 68 61 6e 64 73 68 61 6b 65 5c 73 24 63 68  ::handshake\s$ch
0280: 61 6e 5d 7d 5c 73 7b 70 75 74 73 5c 73 68 61 6e  an]}\s{puts\shan
0290: 64 73 68 61 6b 65 7d 5c 72 5c 6e 5c 73 5c 73 5c  dshake}\r\n\s\s\
02a0: 73 5c 73 7d 5c 73 6f 6e 5c 73 65 72 72 6f 72 5c  s\s}\son\serror\
02b0: 73 7b 65 72 72 5c 73 6f 70 74 73 7d 5c 73 7b 5c  s{err\sopts}\s{\
02c0: 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c 73 5c 73 5c  r\n\s\s\s\s\s\s\
02d0: 73 5c 73 70 75 74 73 5c 73 22 68 61 6e 64 73 68  s\sputs\s"handsh
02e0: 61 6b 65 5c 73 65 72 72 6f 72 3a 5c 73 24 65 72  ake\serror:\s$er
02f0: 72 22 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 5c 73  r"\r\n\s\s\s\s\s
0300: 5c 73 5c 73 5c 73 72 65 74 75 72 6e 5c 73 66 61  \s\s\sreturn\sfa
0310: 6c 73 65 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73 7d  lse\r\n\s\s\s\s}
0320: 5c 72 5c 6e 5c 72 5c 6e 5c 73 5c 73 5c 73 5c 73  \r\n\r\n\s\s\s\s
0330: 72 65 74 75 72 6e 5c 73 74 72 75 65 5c 72 5c 6e  return\strue\r\n
0340: 7d 5c 72 5c 6e 5c 72 5c 6e 64 6f 5f 63 6f 6e 6e  }\r\n\r\ndo_conn
0350: 65 63 74 5c 72 5c 6e 70 75 74 73 5c 73 22 73 79  ect\r\nputs\s"sy
0360: 6e 63 68 72 6f 6e 6f 75 73 5c 73 63 6f 64 65 5c  nchronous\scode\
0370: 73 64 6f 6e 65 22 5c 72 5c 6e 75 70 64 61 74 65  sdone"\r\nupdate
0380: 5c 72 5c 6e 5c 72 5c 6e 4f 75 74 70 75 74 3a 5c  \r\n\r\nOutput:\
0390: 72 5c 6e 5c 72 5c 6e 68 61 6e 64 73 68 61 6b 65  r\n\r\nhandshake
03a0: 5c 73 65 72 72 6f 72 3a 5c 73 68 61 6e 64 73 68  \serror:\shandsh
03b0: 61 6b 65 5c 73 66 61 69 6c 65 64 3a 5c 73 63 65  ake\sfailed:\sce
03c0: 72 74 69 66 69 63 61 74 65 5c 73 76 65 72 69 66  rtificate\sverif
03d0: 79 5c 73 66 61 69 6c 65 64 5c 72 5c 6e 73 79 6e  y\sfailed\r\nsyn
03e0: 63 68 72 6f 6e 6f 75 73 5c 73 63 6f 64 65 5c 73  chronous\scode\s
03f0: 64 6f 6e 65 5c 72 5c 6e 62 67 65 72 72 6f 72 3a  done\r\nbgerror:
0400: 5c 73 53 53 4c 5c 73 63 68 61 6e 6e 65 6c 5c 73  \sSSL\schannel\s
0410: 22 73 6f 63 6b 35 35 36 34 34 39 37 34 31 65 33  "sock556449741e3
0420: 30 22 3a 5c 73 65 72 72 6f 72 3a 5c 73 63 65 72  0":\serror:\scer
0430: 74 69 66 69 63 61 74 65 5c 73 76 65 72 69 66 79  tificate\sverify
0440: 5c 73 66 61 69 6c 65 64 5c 72 5c 6e 5c 72 5c 6e  \sfailed\r\n\r\n
0450: 4e 6f 74 65 5c 73 74 68 61 74 5c 73 77 69 74 68  Note\sthat\swith
0460: 6f 75 74 5c 73 74 68 65 5c 73 63 61 6c 6c 5c 73  out\sthe\scall\s
0470: 74 6f 5c 73 74 6c 73 3a 3a 68 61 6e 64 73 68 61  to\stls::handsha
0480: 6b 65 2c 5c 73 74 68 65 5c 73 73 61 6d 65 5c 73  ke,\sthe\ssame\s
0490: 65 72 72 6f 72 5c 73 77 69 6c 6c 5c 73 62 65 5c  error\swill\sbe\
04a0: 73 70 72 6f 64 75 63 65 64 5c 73 5c 72 5c 6e 6f  sproduced\s\r\no
04b0: 6e 5c 73 66 69 72 73 74 5c 73 61 74 74 65 6d 70  n\sfirst\sattemp
04c0: 74 5c 73 74 6f 5c 73 72 65 61 64 5c 73 6f 72 5c  t\sto\sread\sor\
04d0: 73 77 72 69 74 65 5c 73 74 68 65 5c 73 73 6f 63  swrite\sthe\ssoc
04e0: 6b 65 74 2e 5c 72 5c 6e 5c 72 5c 6e 54 68 65 72  ket.\r\n\r\nTher
04f0: 65 5c 73 61 72 65 5c 73 63 61 6c 6c 73 5c 73 74  e\sare\scalls\st
0500: 6f 5c 73 54 63 6c 5f 42 61 63 6b 67 72 6f 75 6e  o\sTcl_Backgroun
0510: 64 45 72 72 6f 72 28 29 5c 73 69 6e 5c 73 62 6f  dError()\sin\sbo
0520: 74 68 5c 73 54 6c 73 5f 45 72 72 6f 72 28 29 5c  th\sTls_Error()\
0530: 73 61 6e 64 5c 72 5c 6e 56 65 72 69 66 79 43 61  sand\r\nVerifyCa
0540: 6c 6c 62 61 63 6b 28 29 2e 5c 73 5c 73 54 68 65  llback().\s\sThe
0550: 5c 73 54 6c 73 5f 45 72 72 6f 72 28 29 5c 73 69  \sTls_Error()\si
0560: 6e 76 6f 63 61 74 69 6f 6e 73 5c 73 61 6c 6c 5c  nvocations\sall\
0570: 73 63 6f 6d 65 5c 73 74 68 72 6f 75 67 68 5c 73  scome\sthrough\s
0580: 73 74 61 63 6b 65 64 5c 73 63 68 61 6e 6e 65 6c  stacked\schannel
0590: 5c 73 5c 72 5c 6e 6d 61 63 68 69 6e 65 72 79 2c  \s\r\nmachinery,
05a0: 5c 73 73 6f 5c 73 69 74 5c 73 2a 6d 61 79 2a 5c  \sso\sit\s*may*\
05b0: 73 62 65 5c 73 70 6f 73 73 69 62 6c 65 5c 73 74  sbe\spossible\st
05c0: 6f 5c 73 69 6e 73 74 65 61 64 5c 73 70 61 73 73  o\sinstead\spass
05d0: 5c 73 74 68 65 5c 73 65 72 72 6f 72 5c 73 62 61  \sthe\serror\sba
05e0: 63 6b 5c 73 74 6f 5c 73 54 63 6c 2e 5c 73 5c 73  ck\sto\sTcl.\s\s
05f0: 4e 6f 74 65 5c 73 5c 72 5c 6e 74 68 65 5c 73 74  Note\s\r\nthe\st
0600: 77 61 70 69 5c 73 74 69 63 6b 65 74 5c 73 73 61  wapi\sticket\ssa
0610: 79 73 5c 73 74 68 69 73 5c 73 69 73 6e 27 74 5c  ys\sthis\sisn't\
0620: 73 61 6e 5c 73 6f 70 74 69 6f 6e 5c 73 74 68 65  san\soption\sthe
0630: 72 65 2c 5c 73 62 75 74 5c 73 72 65 66 65 72 73  re,\sbut\srefers
0640: 5c 73 74 6f 5c 73 72 65 66 6c 65 63 74 65 64 5c  \sto\sreflected\
0650: 73 5c 72 5c 6e 63 68 61 6e 6e 65 6c 73 2e 5c 73  s\r\nchannels.\s
0660: 5c 73 49 27 6d 5c 73 6e 6f 74 5c 73 73 75 72 65  \sI'm\snot\ssure
0670: 5c 73 69 66 5c 73 74 72 61 6e 73 63 68 61 6e 73  \sif\stranschans
0680: 5c 73 77 69 6c 6c 5c 73 70 72 6f 70 61 67 61 74  \swill\spropagat
0690: 65 5c 73 65 72 72 6f 72 73 5c 73 66 72 6f 6d 5c  e\serrors\sfrom\
06a0: 73 63 61 6c 6c 62 61 63 6b 73 5c 72 5c 6e 56 65  scallbacks\r\nVe
06b0: 72 69 66 79 43 61 6c 6c 62 61 63 6b 28 29 5c 73  rifyCallback()\s
06c0: 69 73 5c 73 63 61 6c 6c 65 64 5c 73 62 79 5c 73  is\scalled\sby\s
06d0: 6f 70 65 6e 73 73 6c 5c 73 73 6f 5c 73 70 72 6f  openssl\sso\spro
06e0: 62 61 62 6c 79 5c 73 6e 6f 74 5c 73 73 6f 5c 73  bably\snot\sso\s
06f0: 73 69 6d 70 6c 65 2e 5c 72 5c 6e 5c 72 5c 6e 49  simple.\r\n\r\nI
0700: 66 5c 73 65 78 74 72 61 5c 73 70 6c 75 6d 62 69  f\sextra\splumbi
0710: 6e 67 5c 73 69 73 5c 73 6e 65 65 64 65 64 2c 5c  ng\sis\sneeded,\
0720: 73 6f 6e 65 5c 73 73 75 67 67 65 73 74 69 6f 6e  sone\ssuggestion
0730: 5c 73 77 61 73 5c 73 74 6f 5c 73 75 73 65 5c 73  \swas\sto\suse\s
0740: 61 5c 73 68 61 73 68 5c 73 74 61 62 6c 65 5c 73  a\shash\stable\s
0750: 6b 65 79 65 64 5c 73 62 79 5c 73 5c 72 5c 6e 74  keyed\sby\s\r\nt
0760: 68 65 5c 73 63 68 61 6e 6e 65 6c 5c 73 49 44 5c  he\schannel\sID\
0770: 73 74 6f 5c 73 6d 61 72 6b 5c 73 74 68 65 5c 73  sto\smark\sthe\s
0780: 70 72 65 73 65 6e 63 65 5c 73 6f 66 5c 73 61 5c  presence\sof\sa\
0790: 73 73 79 6e 63 68 72 6f 6e 6f 75 73 5c 73 6f 70  ssynchronous\sop
07a0: 65 72 61 74 69 6f 6e 5c 73 74 68 61 74 5c 73 63  eration\sthat\sc
07b0: 61 6e 5c 73 72 65 74 75 72 6e 5c 73 5c 72 5c 6e  an\sreturn\s\r\n
07c0: 74 68 65 5c 73 65 72 72 6f 72 2e 5c 73 5c 73 54  the\serror.\s\sT
07d0: 68 69 73 5c 73 6d 61 79 5c 73 6e 65 65 64 5c 73  his\smay\sneed\s
07e0: 6d 75 74 65 78 5c 73 70 72 6f 74 65 63 74 69 6f  mutex\sprotectio
07f0: 6e 2e 5c 72 5c 6e 5c 72 5c 6e 41 6e 6f 74 68 65  n.\r\n\r\nAnothe
0800: 72 5c 73 71 75 65 73 74 69 6f 6e 5c 73 77 68 65  r\squestion\swhe
0810: 6e 5c 73 6c 6f 6f 6b 69 6e 67 5c 73 61 74 5c 73  n\slooking\sat\s
0820: 74 68 65 5c 73 63 6f 64 65 3a 5c 73 5c 73 69 74  the\scode:\s\sit
0830: 5c 73 73 65 65 6d 73 5c 73 6c 69 6b 65 5c 73 74  \sseems\slike\st
0840: 63 6c 74 6c 73 5c 73 72 65 71 75 69 72 65 73 2f  cltls\srequires/
0850: 61 73 73 75 6d 65 73 5c 73 5c 72 5c 6e 74 68 61  assumes\s\r\ntha
0860: 74 5c 73 74 68 65 5c 73 74 6c 73 5c 73 63 68 61  t\sthe\stls\scha
0870: 6e 6e 65 6c 5c 73 69 73 5c 73 74 68 65 5c 73 74  nnel\sis\sthe\st
0880: 6f 70 5c 73 6f 66 5c 73 61 5c 73 63 68 61 6e 6e  op\sof\sa\schann
0890: 65 6c 5c 73 73 74 61 63 6b 2e 5c 73 5c 73 49 27  el\sstack.\s\sI'
08a0: 6d 5c 73 6e 6f 74 5c 73 73 75 72 65 5c 73 74 68  m\snot\ssure\sth
08b0: 69 73 5c 73 69 73 5c 73 5c 72 5c 6e 63 6f 72 72  is\sis\s\r\ncorr
08c0: 65 63 74 2c 5c 73 73 69 6e 63 65 5c 73 69 74 5c  ect,\ssince\sit\
08d0: 73 6d 69 67 68 74 5c 73 6d 61 6b 65 5c 73 73 65  smight\smake\sse
08e0: 6e 73 65 5c 73 74 6f 5c 73 70 75 73 68 5c 73 61  nse\sto\spush\sa
08f0: 6e 6f 74 68 65 72 5c 73 74 72 61 6e 73 66 6f 72  nother\stransfor
0900: 6d 5c 73 6f 6e 5c 73 74 6f 70 5c 73 6f 66 5c 73  m\son\stop\sof\s
0910: 74 6c 73 2e 5c 73 5c 73 49 74 5c 73 5c 72 5c 6e  tls.\s\sIt\s\r\n
0920: 6d 61 79 5c 73 62 65 5c 73 77 6f 72 74 68 5c 73  may\sbe\sworth\s
0930: 69 6e 76 65 73 74 69 67 61 74 69 6e 67 5c 73 74  investigating\st
0940: 68 69 73 2e 0a 4a 20 6c 6f 67 69 6e 20 61 73 70  his..J login asp
0950: 65 63 74 0a 4a 20 6d 69 6d 65 74 79 70 65 20 74  ect.J mimetype t
0960: 65 78 74 2f 78 2d 66 6f 73 73 69 6c 2d 70 6c 61  ext/x-fossil-pla
0970: 69 6e 0a 4a 20 70 72 69 6f 72 69 74 79 20 49 6d  in.J priority Im
0980: 6d 65 64 69 61 74 65 0a 4a 20 72 65 73 6f 6c 75  mediate.J resolu
0990: 74 69 6f 6e 20 4f 70 65 6e 0a 4b 20 32 63 37 62  tion Open.K 2c7b
09a0: 37 34 38 37 39 36 36 66 36 35 39 37 36 66 34 36  7487966f65976f46
09b0: 63 34 34 66 65 37 63 34 62 35 61 61 66 64 39 33  c44fe7c4b5aafd93
09c0: 64 39 61 65 0a 55 20 61 73 70 65 63 74 0a 5a 20  d9ae.U aspect.Z 
09d0: 61 65 35 66 30 35 39 63 36 65 61 61 34 35 34 65  ae5f059c6eaa454e
09e0: 62 35 34 64 39 63 35 66 34 39 61 33 36 34 63 31  b54d9c5f49a364c1
09f0: 0a                                               .