From 07776d01ef06dcd25df25303c92a9fa8c650ca45 Mon Sep 17 00:00:00 2001 From: cookie Date: Wed, 8 Nov 2006 21:00:04 +0000 Subject: grundgeruest fur srevice (jabberbot) git-svn-id: svn://svn.cccv.de/engel-system@150 29ba0400-6e00-0410-a75a-ca02368028f8 --- services/jabberserver.php | 113 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100755 services/jabberserver.php (limited to 'services/jabberserver.php') diff --git a/services/jabberserver.php b/services/jabberserver.php new file mode 100755 index 00000000..9bdd209a --- /dev/null +++ b/services/jabberserver.php @@ -0,0 +1,113 @@ +Connect() && $jabber->SendAuth())) + die("Couldn't connect to Jabber Server."); +} + + +/****************************************************************************************************/ +// INIT socked +/****************************************************************************************************/ +echo "INIT socked\n"; + //http://de3.php.net/manual/de/function.socket-listen.php +// Create a UDP socket +$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP) or die('Could not create socked ('.socket_strerror(socket_last_error()). ')'); +// Bind the socket to an address/port +socket_bind($sock, SERVER_ADDRESS, SERVER_PORT) or die('Could not bind to address ('.socket_strerror(socket_last_error()). ')'); +// Setzt Nonbock Mode +socket_set_nonblock($sock); + + +/****************************************************************************************************/ +// Loop continuos +/****************************************************************************************************/ +$RUNNING = TRUE; +while( $RUNNING ) +{ + if( @socket_recvfrom($sock, $data, 65535, 0, $ip, $port)) + { + //daten empfangen + $data = substr($data,0, strlen($data)-1); //ENTER entfernen + echo "\n". gmdate("Y-m-d H:i:s", time()). "\tresive from $ip:$port ". strlen($data). " byte data ($data)\n"; + PackedAnalyser( $data); + } + + usleep(100000); // 100ms delay keeps the doctor away +} // end while + +//disconnect jabber +if( !DEBUG) + $jabber->Disconnect(); + +// Close the master sockets +socket_close($sock); + +/****************************************************************************************************/ +/****************************************** MAIN END ************************************************/ +/****************************************************************************************************/ + + +/****************************************************************************************************/ +//***** function PackedAnalyser +/****************************************************************************************************/ +function PackedAnalyser( $data ) +{ + GLOBAL $jabber, $RUNNING; + // init array + $matches = array(); + + //#message + if( preg_match( "/^#(message) ([^ ]+) (.+)/i", $data, $matches ) ) + { + if( $matches[2]=="" || $matches[3]=="") + { + // Wrong syntax + echo "\t\t\t\t#messaage parameter fail\n"; + } + else + { + // Whisper + if( !DEBUG) + $jabber->SendMessage($value, "normal", NULL, array("body" => $message, "subject" => "Error in Pentabarf"), NULL); + else + echo "\t\t\t\tmessage to:\"". $matches[2]. "\" Text: \"". $matches[3]. "\"\n"; + } + } + elseif( preg_match( "/^#quit/i", $data, $matches ) ) + { + if( DEBUG) + { + echo "\t\t\t\tSystem Shutdown\n\n"; + $RUNNING = FALSE; + } + } + else + { + echo "\t\t\t\tcommand not found\n\n"; + } +} + +?> -- cgit v1.2.3-54-g00ecf