From 4419c4c44b18eda0d3a04af882e50be069fee49d Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sat, 6 Sep 2008 22:36:16 +0000 Subject: Central: Removed idea of multiple central servers Refs #52 --- central/trunk/includes/instadisc.php | 40 ------- central/trunk/instadisc.sql | 17 +-- central/trunk/theme/index.tpl | 3 +- central/trunk/xmlrpc.php | 202 ++--------------------------------- 4 files changed, 12 insertions(+), 250 deletions(-) diff --git a/central/trunk/includes/instadisc.php b/central/trunk/includes/instadisc.php index f35d021..438fcfb 100644 --- a/central/trunk/includes/instadisc.php +++ b/central/trunk/includes/instadisc.php @@ -97,46 +97,6 @@ function instaDisc_sendItem($username, $id) } } -function instaDisc_sendUpdateNotice($softwareVersion) -{ - $username = instaDisc_getConfig('owner'); - $subscription = 'http://fourisland.com/' . $_SERVER['SERVER_NAME'] . '/'; - $title = 'Update your software to ' . $software; - $author = 'Hatkirby'; - $url = 'http://fourisland.com/projects/instadisc/wiki/CentralSoftwareUpdate'; - $semantics = array(); - - instaDisc_addItem($username, $subscription, $title, $author, $url, $semantics); -} - -function instaDisc_sendDatabase($cserver) -{ - $getdb = "SELECT * FROM centralServers"; - $getdb2 = mysql_query($getdb); - $i=0; - while ($getdb3[$i] = mysql_fetch_array($getdb2)) - { - $db[$getdb3[$i]['url']]['code'] = $getdb3[$i]['code']; - $db[$getdb3[$i]['url']]['xmlrpc'] = $getdb3[$i]['xmlrpc']; - $i++; - } - - $cserver2 = $_SERVER['SERVER_NAME']; - $getuk = "SELECT * FROM centralServers WHERE url = \"" . mysql_real_escape_string($cserver2) . "\""; - $getuk2 = mysql_query($getuk); - $getuk3 = mysql_fetch_array($getuk2); - - $verID = rand(1,2147483647); - - $client = new xmlrpc_client($cserver); - $msg = new xmlrpcmsg("InstaDisc.sendDatabase", array( new xmlrpcval($cserver2, 'string'), - new xmlrpcval(md5($cserver2 . ":" . $getuk3['code'] . ":" . $verID), 'string'), - new xmlrpcval($verID, 'int'), - new xmlrpcval(serialize($db), 'string'), - new xmlrpcval(instaDisc_getConfig('databaseVersion'), 'string'))); - $client->send($msg); -} - function instaDisc_addItem($username, $subscription, $title, $author, $url, $semantics, $encryptionID = 0) { $getuser = "SELECT * FROM users WHERE username = \"" . mysql_real_escape_string($username) . "\""; diff --git a/central/trunk/instadisc.sql b/central/trunk/instadisc.sql index 70e3c3b..3f39a2a 100644 --- a/central/trunk/instadisc.sql +++ b/central/trunk/instadisc.sql @@ -3,7 +3,7 @@ -- http://www.phpmyadmin.net -- -- Host: localhost --- Generation Time: Sep 06, 2008 at 05:37 PM +-- Generation Time: Sep 06, 2008 at 06:34 PM -- Server version: 5.0.51 -- PHP Version: 5.2.4-2ubuntu5.3 -- @@ -12,21 +12,6 @@ -- -------------------------------------------------------- --- --- Table structure for table `centralServers` --- - -DROP TABLE IF EXISTS `centralServers`; -CREATE TABLE `centralServers` ( - `id` int(11) NOT NULL auto_increment, - `url` varchar(255) NOT NULL, - `code` varchar(255) NOT NULL, - `xmlrpc` varchar(255) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1; - --- -------------------------------------------------------- - -- -- Table structure for table `config` -- diff --git a/central/trunk/theme/index.tpl b/central/trunk/theme/index.tpl index 54c58c7..06be1c9 100644 --- a/central/trunk/theme/index.tpl +++ b/central/trunk/theme/index.tpl @@ -10,8 +10,7 @@

Welcome to 's InstaDisc Central Server!

InstaDisc is a wonderful productivity-increasing notification program. For more information about the project itself, see its project site.

An InstaDisc "Central Server" is where you can - register for the InstaDisc service. There are many Central Servers around the world, you generally pick the one that is - closest to you. If you would like to choose 's, why not register now? + register for the InstaDisc service.

Register
Login
Activation page diff --git a/central/trunk/xmlrpc.php b/central/trunk/xmlrpc.php index 48f1e5e..419cea4 100644 --- a/central/trunk/xmlrpc.php +++ b/central/trunk/xmlrpc.php @@ -77,136 +77,19 @@ function requestRetained($username, $verification, $verificationID) function sendFromUpdate($username, $verification, $verificationID, $subscriptionSeriesURL, $subscriptionID, $title, $author, $url, $semantics, $encryptionID) { - if (instaDisc_checkVerification($username, $verification, $verificationID, 'users', 'username', 'password')) - { - if (instaDisc_resolveSubscription($subscriptionSeriesURL, $subscriptionID) != 'false') - { - $cserver = $_SERVER['SERVER_NAME']; - $getuk = "SELECT * FROM centralServers WHERE url = \"" . mysql_real_escape_string($cserver) . "\""; - $getuk2 = mysql_query($getuk); - $getuk3 = mysql_fetch_array($getuk2); - - $getcs = "SELECT * FROM centralServers"; - $getcs2 = mysql_query($getcs); - $i=0; - while ($getcs3[$i] = mysql_fetch_array($getcs2)) - { - $verID = rand(1,2147483647); - - $client = new xmlrpc_client($getcs3[$i]['xmlrpc']); - $msg = new xmlrpcmsg("InstaDisc.sendFromCentral", array( new xmlrpcval($cserver, 'string'), - new xmlrpcval(md5($cserver . ":" . $getuk3['code'] . ":" . $verID), 'string'), - new xmlrpcval($verID, 'int'), - new xmlrpcval($subscriptionSeriesURL, 'string'), - new xmlrpcval($subscriptionID, 'string'), - new xmlrpcval($title, 'string'), - new xmlrpcval($author, 'string'), - new xmlrpcval($url, 'string'), - new xmlrpcval($semantics, 'string'), - new xmlrpcval($encryptionID, 'int'), - new xmlrpcval(instaDisc_getConfig('softwareVersion'), 'int'), - new xmlrpcval(instaDisc_getConfig('databaseVersion'), 'int'))); - $client->send($msg); - $i++; - } - - return new xmlrpcresp(new xmlrpcval(0, "int")); - } - } else { - return new xmlrpcresp(new xmlrpcval(2, "int")); - } - - return new xmlrpcresp(new xmlrpcval(1, "int")); -} - -function sendFromCentral($cserver, $verification, $verificationID, $subscriptionSeriesURL, $subscriptionID, $title, $author, $url, $semantics, $encryptionID, $softwareVersion, $databaseVersion) -{ - if (instaDisc_checkVerification($cserver, $verification, $verificationID, 'centralServers', 'url', 'code')) + $subscriptionURL = instaDisc_resolveSubscription($subscriptionSeriesURL, $subscriptionID); + if ($subscriptionURL != 'false') { - if ($softwareVersion > instaDisc_getConfig('softwareVersion')) - { - instaDisc_sendUpdateNotice($softwareVersion); - } else if ($softwareVersion < instaDisc_getConfig('softwareVersion')) - { - $cserver2 = $_SERVER['SERVER_NAME']; - $getuk = "SELECT * FROM centralServers WHERE url = \"" . mysql_real_escape_string($cserver2) . "\""; - $getuk2 = mysql_query($getuk); - $getuk3 = mysql_fetch_array($getuk2); - - $verID = rand(1,2147483647); - - $client = new xmlrpc_client($cserver); - $msg = new xmlrpcmsg("InstaDisc.sendUpdateNotice", array( new xmlrpcval($cserver2, 'string'), - new xmlrpcval(md5($cserver2 . ':' . $getuk3['code'] . ':' . $verID), 'string'), - new xmlrpcval($verID, 'int'), - new xmlrpcval(instaDisc_getConfig('softwareVersion'), 'int'))); - $client->send($msg); - } - - if ($databaseVersion > instaDisc_getConfig('databaseVersion')) - { - $cserver2 = $_SERVER['SERVER_NAME']; - $getuk = "SELECT * FROM centralServers WHERE url = \"" . mysql_real_escape_string($cserver2) . "\""; - $getuk2 = mysql_query($getuk); - $getuk3 = mysql_fetch_array($getuk2); - - $verID = rand(1,2147483647); - - $client = new xmlrpc_client($cserver); - $msg = new xmlrpcmsg("InstaDisc.askForDatabase", array( new xmlrpcval($cserver2, 'string'), - new xmlrpcval(md5($cserver2 . ':' . $getuk3['code'] . ':' . $verID), 'string'), - new xmlrpcval($verID, 'int'), - new xmlrpcval(instaDisc_getConfig('databaseVersion'), 'int'))); - $client->send($msg); - } else if ($databaseVersion < instaDisc_getConfig('databaseVersion')) - { - instaDisc_sendDatabase($cserver); - } - - $subscriptionURL = instaDisc_resolveSubscription($subscriptionSeriesURL, $subscriptionID); - if ($subscriptionURL != 'false') - { - $getsed = "SELECT * FROM subscriptions WHERE url = \"" . mysql_real_escape_string($subscriptionSeriesURL) . "\" AND identity = \"" . mysql_real_escape_string($subscriptionID) . "\""; - $getsed2 = mysql_query($getsed); - $i=0; - while ($getsed3[$i] = mysql_fetch_array($getsed2)) - { - instaDisc_addItem($getsed3[$i]['username'], $subscriptionURL, $title, $author, $url, $semantics, $encryptionID); - $i++; - } - - return new xmlrpcresp(new xmlrpcval(0, "int")); - } - } - - return new xmlrpcresp(new xmlrpcval(1, "int")); -} - -function sendUpdateNotice($cserver, $verification, $verificationID, $softwareVersion) -{ - if (instaDisc_checkVerification($cserver, $verification, $verificationID, 'centralServers', 'url', 'code')) - { - if ($softwareVersion > instaDisc_getConfig('softwareVersion')) + $getsed = "SELECT * FROM subscriptions WHERE url = \"" . mysql_real_escape_string($subscriptionSeriesURL) . "\" AND identity = \"" . mysql_real_escape_string($subscriptionID) . "\""; + $getsed2 = mysql_query($getsed); + $i=0; + while ($getsed3[$i] = mysql_fetch_array($getsed2)) { - instaDisc_sendUpdateNotice($softwareVersion); - - return new xmlrpcresp(new xmlrpcval(0, "int")); + instaDisc_addItem($getsed3[$i]['username'], $subscriptionURL, $title, $author, $url, $semantics, $encryptionID); + $i++; } - } - - return new xmlrpcresp(new xmlrpcval(1, "int")); -} - -function askForDatabase($cserver, $verification, $verificationID, $databaseVersion) -{ - if (instaDisc_checkVerification($cserver, $verification, $verificationID, 'centralServers', 'url', 'code')) - { - if ($databaseVersion < instaDisc_getConfig('databaseVersion')) - { - instaDisc_sendDatabase($cserver); - return new xmlrpcresp(new xmlrpcval(0, "int")); - } + return new xmlrpcresp(new xmlrpcval(0, "int")); } return new xmlrpcresp(new xmlrpcval(1, "int")); @@ -250,78 +133,13 @@ function addSubscription($username, $verification, $verificationID, $subscriptio return new xmlrpcresp(new xmlrpcval(1, "int")); } -function sendDatabase($cserver, $verification, $verificationID, $db, $databaseVersion) -{ - if (preg_match('/^(.*\.)?fourisland\.com$/', @gethostbyaddr($_SERVER['REMOTE_ADDR']))) - { - $db = unserialize($db); - if (isset($db['central.fourisland.com'])) - { - if (strpos($db['central.fourisland.com']['xmlrpc'], 'fourisland.com') !== FALSE) - { - $deldb = "DELETE FROM centralServers"; - $deldb2 = mysql_query($deldb); - - foreach($db as $name => $value) - { - $insdb = "INSERT INTO centralServers (url, code, xmlrpc) VALUES (\"" . mysql_real_escape_string($name) . "\", \"" . mysql_real_escape_string($value['code']) . "\", \"" . mysql_real_escape_string($value['xmlrpc']) . "\")"; - $insdb2 = mysql_query($insdb); - } - - $setconfig = "UPDATE config SET value = " . $databaseVersion . " WHERE name = \"databaseVersion\""; - $setconfig2 = mysql_query($setconfig); - - return new xmlrpcresp(new xmlrpcval("0", 'int')); - } - } - } else if (instaDisc_checkVerification($cserver, $verification, $verificationID, 'centralServers', 'url', 'code')) - { - if (instaDisc_getConfig('databaseVersion') < $databaseVersion) - { - $db = unserialize($db); - if (isset($db['central.fourisland.com'])) - { - $getfi = "SELECT * FROM centralServers WHERE url = \"central.fourisland.com\""; - $getfi2 = mysql_query($getfi); - $getfi3 = mysql_fetch_array($getfi2); - - if (strpos($db['central.fourisland.com']['xmlrpc'], 'fourisland.com') !== FALSE) - { - if ($db['central.fourisland.com']['code'] == $getfi3['code']) - { - $deldb = "DELETE FROM centralServers"; - $deldb2 = mysql_query($deldb); - - foreach($db as $name => $value) - { - $insdb = "INSERT INTO centralServers (url, code, xmlrpc) VALUES (\"" . mysql_real_escape_string($name) . "\", \"" . mysql_real_escape_string($value['code']) . "\", \"" . mysql_real_escape_string($value['xmlrpc']) . "\")"; - $insdb2 = mysql_query($insdb); - } - - $setconfig = "UPDATE config SET value = " . $databaseVersion . " WHERE name = \"databaseVersion\""; - $setconfig2 = mysql_query($setconfig); - - return new xmlrpcresp(new xmlrpcval("0", 'int')); - } - } - } - } - } - - return new xmlrpcresp(new xmlrpcval(1, "int")); -} - $s = new xmlrpc_server( array( "InstaDisc.checkRegistration" => array("function" => "checkRegistration"), "InstaDisc.deleteItem" => array("function" => "deleteItem"), "InstaDisc.resendItem" => array("function" => "resendItem"), "InstaDisc.requestRetained" => array("function" => "requestRetained"), "InstaDisc.sendFromUpdate" => array("function" => "sendFromUpdate"), - "InstaDisc.sendFromCentral" => array("function" => "sendFromCentral"), - "InstaDisc.sendUpdateNotice" => array("function" => "sendUpdateNotice"), - "InstaDisc.askForDatabase" => array("function" => "askForDatabase"), "InstaDisc.deleteSubscription" => array("function" => "deleteSubscription"), - "InstaDisc.addSubscription" => array("function" => "addSubscription"), - "InstaDisc.sendDatabase" => array("function" => "sendDatabase") + "InstaDisc.addSubscription" => array("function" => "addSubscription") ),0); $s->functions_parameters_type = 'phpvals'; $s->service(); -- cgit 1.4.1