diff options
author | cookie <cookie@29ba0400-6e00-0410-a75a-ca02368028f8> | 2006-11-08 21:00:04 +0000 |
---|---|---|
committer | cookie <cookie@29ba0400-6e00-0410-a75a-ca02368028f8> | 2006-11-08 21:00:04 +0000 |
commit | 07776d01ef06dcd25df25303c92a9fa8c650ca45 (patch) | |
tree | 4d0bebaa1b4803a9641e3cd50a1efef2be61349f /services/jabberserver.php | |
parent | 54eddebc929ca92009234cbc030522125a9a2019 (diff) |
grundgeruest fur srevice (jabberbot)
git-svn-id: svn://svn.cccv.de/engel-system@150 29ba0400-6e00-0410-a75a-ca02368028f8
Diffstat (limited to 'services/jabberserver.php')
-rwxr-xr-x | services/jabberserver.php | 113 |
1 files changed, 113 insertions, 0 deletions
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 @@ +<?php
+
+/****************************************************************************************************/
+// INCLUDE
+/****************************************************************************************************/
+require_once('./inc/jabber.php');
+require_once("./inc/funktion_jabber.php");
+include("./inc/config_MessegeServer.php");
+
+// Set time limit to indefinite execution
+set_time_limit( 0 );
+
+/****************************************************************************************************/
+// show MODE
+/****************************************************************************************************/
+if( DEBUG)
+ echo "DEBUG mode is enable\n\tjabber is disable\n\n";
+
+/****************************************************************************************************/
+// INIT jabber
+/****************************************************************************************************/
+if( !DEBUG)
+{
+ echo "INIT jabber\n";
+ $jabber = new Jabber($server, $port, $username, $password, $resource);
+ if ( !($jabber->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";
+ }
+}
+
+?>
|