#!/usr/local/bin/perl # mega copyright who ever wrote it? # original author unknown. use IO::Socket; use IO::Select; $len=1; $sock = IO::Socket::INET->new(PeerAddr => "Your.ssl.proxy", PeerPort => "8080", Proto => "tcp", Reuse, Timeout => "9999") or die "failed to create socket: $!\n"; $sel = IO::Select->new(); $sel->add($sock); $sel->add(\*STDIN); $sock->autoflush; STDOUT->autoflush; $sock->print("connect your.remote.host:443\n\r\n\r"); $tmp=$sock->getline(); if ($tmp !~ m|^HTTP/1.0 200|) { die "proxy fault: $tmp\n"; } $tmp=$sock->getline(); if ($tmp !~ m|^Proxy-Agent:|) { warn "proxy weirdness: $tmp\n"; } $tmp=$sock->getline(); while ($len) { foreach ($sel->can_read) { if ($_ == \*STDIN) { $len=sysread(STDIN,$tmp,512); $sock->print($tmp); } else { $len=$sock->sysread($tmp,512); print STDOUT $tmp; } } }