Posted to tcl by aspect at Tue Jul 08 03:31:03 GMT 2014view raw

  1. namespace eval nopchan {
  2. proc initialize args {
  3. info procs
  4. }
  5. proc finalize args {}
  6. proc clear args {}
  7. proc write {h data} {
  8. return $data
  9. }
  10. proc read {h data} {
  11. return $data
  12. }
  13.  
  14. namespace export *
  15. namespace ensemble create
  16. }
  17.  
  18. proc logit {s} {
  19. puts data:[gets $s]
  20. if {[eof $s]} {close $s}
  21. }
  22.  
  23. puts Tcl:[info patchlevel]
  24. puts tls:[package require tls]
  25.  
  26. set sock [tls::socket google.com 443]
  27. chan push $sock nopchan
  28. puts -nonewline $sock "GET" ;# need to write something first
  29. chan configure $sock -blocking 0
  30. #chan event $sock readable logit
  31. catch {flush $sock} e o
  32. puts $e
  33. dict for {k v} $o {puts [list $k $v]}
  34.  
  35. # Tcl:8.6.1
  36. # tls:1.6
  37. # error flushing "sockadd830": invalid argument
  38. # -code 1
  39. # -level 0
  40. # -errorstack {INNER {invokeStk1 flush sockadd830}}
  41. # -errorcode {POSIX EINVAL {invalid argument}}
  42. # -errorinfo {error flushing "sockadd830": invalid argument
  43. # while executing
  44. # "flush $sock"}
  45. # -errorline 1
  46.