http://i2p2.de%|%I2P%|% [Zarutian]: An start of an SAMv2 library for Tcl ====== package require Tcl 8.5 package provide i2p/sam2 0.1 namespace eval i2p {} namespace eval i2p::sam2 { variable defaults { bridge {host localhost port none} type stream stream {limit none}} variable session_counter 0 variable sessions proc new_session {params} { variable session_counter set i session[incr session_counter] variable defaults if {![dict exists $params type]} { dict set params type [dict get $defaults type] } if {![dict exists $params bridge]} { dict set params bridge [dict get $defaults bridge] } if {![dict exists $params bridge host]} { dict set params bridge host [dict get $defaults bridge host] } if {![dict exists $params bridge port]} { dict set params bridge port [dict get $defaults bridge port] } if {![dict exists $params stream]} { dict set params stream [dict get $defaults stream] } variable sessions dict set sessions $i sock [set sock [socket -async [dict get $params bridge host] [dict get $params bridge port]]] return $i } } ======