Connecting to msn $msn[Host]:$msn[Port]
"; } if($fp = file_get_contents ($msn[Host], $msn[Port], $errno, $errstr, 20)) {msn_send("VER $nr MSNP7 CVRO",$fp); while (!feof($fp)) { usleep(1); if (msn_get(ereg_replace("\r\n", "", fgets($fp,128))) == "1") { die(blieb); }; }} else { die("cannot connect to msn server"); }} function msn_send($text, $conn) { global $debug; if ($debug) { echo "$text
\n"; } fputs ($conn, "$text\r\n"); global $nr;$nr++; } function msn_get($msg) { global $fp, $nr, $msn, $debug, $fp2; if ($debug) { echo "$msg
\n"; } $msg = explode(" ", $msg); if (strtolower($msg[0]) == "ver") { msn_send("INF $nr", $fp); } elseif(strtolower($msg[0]) == "inf") { msn_send("USR $nr MD5 I $msn[user]", $fp); } elseif (strtolower($msg[0]) == "usr" AND strtolower($msg[2]) == "md5") { msn_send("USR $nr MD5 S ".MD5(trim($msg[4].$msn[Pass])), $fp); } elseif (strtolower($msg[0]) == "usr" AND strtolower($msg[2]) == "ok") { msn_send("CHG $nr BSY", $fp); msn_send("XFR $nr SB", $fp); } elseif (strtolower($msg[0]) == "xfr" AND strtolower($msg[2]) == "ns") { $tmp = explode(":", $msg[3]); $msn[Host] = $tmp[0]; $msn[Port] = $tmp[1]; fclose($fp); msn_connect(); } elseif (strtolower($msg[0]) == "xfr" AND strtolower($msg[2]) == "sb") { $tmp = explode(":", $msg[3]); $msn[sb_host] = $tmp[0]; $msn[sb_port] = $tmp[1]; $msn[sb_cki] = $msg[5]; fclose($fp); if($debug) { echo "

Connecting to sb $msn[sb_host]:$msn[sb_port]
"; } if($fp2 = file_get_contents ($msn[sb_host], $msn[sb_port], $errno, $errstr, 30)){ $start = time()+5; msn_send("USR $nr $msn[user] $msn[sb_cki]",$fp2); while (!feof($fp2)) { if (time() >= $start) { showstatus(0); exit; } usleep(1); msn_sb_get(ereg_replace("\r\n", "", fgets($fp2,128))); } } else { die("cannot connect to sb"); } }} function msn_sb_get($msg) { global $fp2, $nr, $msn, $debug, $get; if ($debug) { echo "$msg
\n"; } $msg = explode(" ", $msg); if (strtolower($msg[0]) == "usr" AND strtolower($msg[2]) == "ok") { msn_send("CAL $nr $get",$fp2); } elseif (strtolower($msg[0]) == "217") { showstatus(0); fclose($fp2); exit; } elseif (strtolower($msg[0]) == "joi") { showstatus(1); fclose($fp2); exit; } } function showstatus($status) { global $pic,$get; if ($status) { Header("Content-Type: image/png"); $fn=fopen("$pic[online]","r"); fpassthru($fn); fclose($fn); } else { Header("Content-Type: image/png"); $fn=fopen("$pic[offline]","r"); fpassthru($fn); fclose($fn); } }?>