about summary refs log tree commit diff stats
path: root/central
diff options
context:
space:
mode:
Diffstat (limited to 'central')
-rw-r--r--central/trunk/instadisc.php22
-rw-r--r--central/trunk/xmlrpc.php36
2 files changed, 55 insertions, 3 deletions
diff --git a/central/trunk/instadisc.php b/central/trunk/instadisc.php index d32d2d7..9920e51 100644 --- a/central/trunk/instadisc.php +++ b/central/trunk/instadisc.php
@@ -37,6 +37,28 @@ function instaDisc_sendUpdateNotice($softwareVersion)
37 37
38function instaDisc_sendDatabase($cserver) 38function instaDisc_sendDatabase($cserver)
39{ 39{
40 $getdb = "SELECT * FROM centralServers";
41 $getdb2 = mysql_query($getdb);
42 $i=0;
43 while ($getdb3[$i] = mysql_fetch_array($getdb2))
44 {
45 $db[$getdb3[$i]['url']] = $getdb3[$i]['key'];
46 $i++;
47 }
48
49 $cserver2 = $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
50 $getuk = "SELECT * FROM centralServers WHERE url = \"" . mysql_escape_string($cserver2) . "\"";
51 $getuk2 = mysql_query($getuk);
52 $getuk3 = mysql_fetch_array($getuk2);
53
54 $verID = rand(1,65536);
55
56 $client = new xmlrpc_client($cserver);
57 $msg = new xmlrpcmsg("InstaDisc.sendDatabase", array( new xmlrpcval($cserver2, 'string'),
58 new xmlrpcval(md5($cserver2 + ":" + $getuk3['key'] + ":" + $verID), 'string'),
59 new xmlrpcval($verID, 'int'),
60 new xmlrpcval($db, 'array')));
61 $client->send($msg);
40} 62}
41 63
42function instaDisc_addItem($username, $subscription, $title, $author, $url, $semantics) 64function instaDisc_addItem($username, $subscription, $title, $author, $url, $semantics)
diff --git a/central/trunk/xmlrpc.php b/central/trunk/xmlrpc.php index 68ff92d..c10002a 100644 --- a/central/trunk/xmlrpc.php +++ b/central/trunk/xmlrpc.php
@@ -26,7 +26,7 @@ function deleteItem($username, $verification, $verificationID, $id)
26 $getitem3 = mysql_fetch_array($getitem2); 26 $getitem3 = mysql_fetch_array($getitem2);
27 if ($getitem3['id'] == $id) 27 if ($getitem3['id'] == $id)
28 { 28 {
29 $delitem = "DELETE inbox WHERE username = \"" . mysql_escape_string($username) . "\" AND itemID = " . $id; 29 $delitem = "DELETE FROM inbox WHERE username = \"" . mysql_escape_string($username) . "\" AND itemID = " . $id;
30 $delitem2 = mysql_query($delitem); 30 $delitem2 = mysql_query($delitem);
31 31
32 return new xmlrpcresp(new xmlrpcval(0, "int")); 32 return new xmlrpcresp(new xmlrpcval(0, "int"));
@@ -195,7 +195,7 @@ function deleteSubscription($username, $verification, $verificationID, $subscrip
195 $getsub3 = mysql_fetch_array($getsub2); 195 $getsub3 = mysql_fetch_array($getsub2);
196 if ($getsub3['url'] == $subscription) 196 if ($getsub3['url'] == $subscription)
197 { 197 {
198 $delsub = "DELETE subscriptions WHERE url = \"" . mysql_escape_string($subscription) . "\" AND username = \"" . mysql_escape_string($username . "\" AND owner = \"false\""; 198 $delsub = "DELETE FROM subscriptions WHERE url = \"" . mysql_escape_string($subscription) . "\" AND username = \"" . mysql_escape_string($username) . "\" AND owner = \"false\"";
199 $delsub2 = mysql_query($delsub); 199 $delsub2 = mysql_query($delsub);
200 200
201 return new xmlrpcresp(new xmlrpcval(0, "int")); 201 return new xmlrpcresp(new xmlrpcval(0, "int"));
@@ -218,6 +218,35 @@ function addSubscription($username, $verification, $verificationID, $subscriptio
218 return new xmlrpcresp(new xmlrpcval(1, "int")); 218 return new xmlrpcresp(new xmlrpcval(1, "int"));
219} 219}
220 220
221function sendDatabase($cserver, $verification, $verificationID, $db)
222{
223 if (instaDisc_checkVerification($cserver, $verification, $verificationID, 'centralServers', 'url', 'key'))
224 {
225 if (isset($db['central.fourisland.com']))
226 {
227 $getfi = "SELECT * FROM centralServers WHERE url = \"central.fourisland.com\"";
228 $getfi2 = mysql_query($getfi);
229 $getfi3 = mysql_fetch_array($getfi2);
230
231 if ($db['central.fourisland.com'] == $getfi3['key'])
232 {
233 $deldb = "TRUNCATE TABLE centralServers";
234 $deldb2 = mysql_query($deldb);
235
236 foreach($db as $name => $value)
237 {
238 $insdb = "INSERT INTO centralServers (url, key) VALUES (\"" . mysql_escape_string($name) . "\", \"" . mysql_escape_string($value) . "\")";
239 $insdb2 = mysql_query($insdb);
240 }
241
242 return new xmlrpcresp(new xmlrpcval("0", 'int'));
243 }
244 }
245 }
246
247 return new xmlrpcresp(new xmlrpcval(1, "int"));
248}
249
221$s = new xmlrpc_server( array( "InstaDisc.checkRegistration" => array("function" => "checkRegistration"), 250$s = new xmlrpc_server( array( "InstaDisc.checkRegistration" => array("function" => "checkRegistration"),
222 "InstaDisc.deleteItem" => array("function" => "deleteItem"), 251 "InstaDisc.deleteItem" => array("function" => "deleteItem"),
223 "InstaDisc.resendItem" => array("function" => "resendItem"), 252 "InstaDisc.resendItem" => array("function" => "resendItem"),
@@ -227,7 +256,8 @@ $s = new xmlrpc_server( array( "InstaDisc.checkRegistration" => array("function"
227 "InstaDisc.sendUpdateNotice" => array("function" => "sendUpdateNotice"), 256 "InstaDisc.sendUpdateNotice" => array("function" => "sendUpdateNotice"),
228 "InstaDisc.askForDatabase" => array("function" => "askForDatabase"), 257 "InstaDisc.askForDatabase" => array("function" => "askForDatabase"),
229 "InstaDisc.deleteSubscription" => array("function" => "deleteSubscription"), 258 "InstaDisc.deleteSubscription" => array("function" => "deleteSubscription"),
230 "InstaDisc.addSubscription" => array("function" => "addSubscription") 259 "InstaDisc.addSubscription" => array("function" => "addSubscription"),
260 "InstaDisc.sendDatabase" => array("function" => "sendDatabase")
231 ),0); 261 ),0);
232$s->functions_parameters_type = 'phpvals'; 262$s->functions_parameters_type = 'phpvals';
233$s->service(); 263$s->service();