set useproxy 1 set proxyserver your.local.proxy set proxyport 8888 set ircserver rucus.zanet.net set ircport 443 set localport 6667 proc server {sock host port} { puts "connection from $host $port on $sock" set irc [socket $::proxyserver $::proxyport] if {$::useproxy} { puts $irc "CONNECT $::ircserver:$::ircport HTTP/1.1" puts $irc "Host: $::ircserver" puts $irc "" flush $irc while {[gets $irc] != ""} {} } else { set socket [socket $::ircserver $::ircport] } fconfigure $sock -blocking no -buffering line fconfigure $irc -blocking no -buffering line fileevent $sock readable [list proxy $sock $irc ] fileevent $irc readable [list proxy $irc $sock] } proc proxy {sock1 sock2} { if {[gets $sock1 line] > 0} { puts $sock2 $line } if {[eof $sock1]} { closing "$sock1 $sock2" close $sock1 close $sock2 } return } proc main {} { set server [socket -server server $::localport] vwait ::forever } main