<?php
/* 
 * BloonOldSchool par Burak 
 * http://britania.ws/forum/thread-126593.html
 * 
 */
session_start(); // On dÃ©marre les sessions
set_time_limit(0); // Le script peut s'Ã©xÃ©cuter le temps qu'il faudra.
ob_implicit_flush(); // Optimisation thread
loadClass("b64");
loadClass("vl64");
loadClass("user");
loadFunction("websocket");
loadFunction("connect");
loadFunction("disconnect");
loadFunction("send");
loadFunction("hexastring");
loadFunction("getheader");
loadFunction("getuserbysocket");
loadFunction("say");
say("BloonOldSchool par Burak, veuillez respecter mon travail, ne retirer pas les copyrights.");
$CONFIG['general'] = Array();
$CONFIG['general']['ip'] = "0.0.0.0";
$CONFIG['general']['port'] = 90;
$CONFIG['mysql'] = Array();
$CONFIG['mysql']['hote'] = "127.0.0.1";
$CONFIG['mysql']['port'] = 3306;
$CONFIG['mysql']['utilisateur'] = "root";
$CONFIG['mysql']['motdepasse'] = "lolipop789";
$CONFIG['mysql']['base'] = "bloonoldschool";

try{
	$sql = new PDO('mysql:host='.$CONFIG['mysql']['hote'].chr(58).$CONFIG['mysql']['port'].';dbname='.$CONFIG['mysql']['base'], $CONFIG['mysql']['utilisateur'], $CONFIG['mysql']['motdepasse']);
}catch(Exception $error){
	echo 'Erreur : '.$error->getMessage()."\n";
	echo 'N° : '.$error->getCode()."\n";
	exit;
}

$master  = WebSocket($CONFIG['general']['ip'],$CONFIG['general']['port']); // On démarre le serveur sur un port
unset($CONFIG);
$sockets = array($master);
$users   = array();
$debug   = false;
//$pid_cpt = 0;

while(true){
  $changed = $sockets;
  @socket_select($changed,$write=NULL,$except=NULL,NULL);
  foreach($changed as $socket){
    if($socket==$master){
      $client=socket_accept($master);
      if($client<0){ console("socket_accept() failed"); continue; }
      else{ connect($client); Say('New client : '.$client); }
    }
    else{
      $bytes = @socket_recv($socket,$buffer,4096,0);
      if($bytes==0){ disconnect($socket); Say('Lost client : '.$socket); }
      else{
        $user = getuserbysocket($socket);
		require 'packet.php';
      }
    }
  }
}

function loadClass($class){
	if(file_exists("class/class.".$class.".php")){
		require ("class/class.".$class.".php");
	}else{
		die("La classe $class est inéxistante, donc n'a pas pu être chargé.");
		exit;
	}
}
function loadFunction($function){
	if(file_exists("function/function.".$function.".php")){
		require ("function/function.".$function.".php");
	}else{
		die("La fonction $function est inéxistante, donc n'a pas pu être chargé.");
		exit;
	}
}
?>