PHP Classes

File: OpenInviter/auto_updater.php

Recommend this page to a friend!
  Classes of Open Inviter   Open Inviter   OpenInviter/auto_updater.php   Download  
File: OpenInviter/auto_updater.php
Role: Auxiliary script
Content type: text/plain
Description: Auto-Update script
Class: Open Inviter
Get contacts of friends of different networks
Author: By
Last change:
Date: 15 years ago
Size: 4,239 bytes
 

Contents

Class file image Download
<?php
$base_path
=dirname(__FILE__);
include(
"{$base_path}/config.php");
$username=$openinviter_settings['username'];
$private_key=$openinviter_settings['private_key'];
$transport=$openinviter_settings['transport'];
function
talk_to_server($signature,$xml)
    {
    global
$transport,$username;
    if (
$transport=='curl')
        {
       
$ch=curl_init();
       
curl_setopt($ch, CURLOPT_URL, "http://update.openinviter.com/updater/auto_updater.php");
       
curl_setopt($ch, CURLOPT_POST,true);
       
curl_setopt($ch,CURLOPT_HTTPHEADER,Array("Content-Type:application/xml","X-Username: {$username}","X-Signature: {$signature}"));
       
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
       
curl_setopt($ch, CURLOPT_POSTFIELDS, "{$xml}");
       
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
       
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
       
$result=curl_exec($ch);
       
curl_close($ch);
        return
$result;
        }
    elseif (
$transport=='wget')
        {
       
$string_wget=" --timeout=5";
       
$string_wget.=" --no-check-certificate";
       
$string_wget.=" --header=\"Content-Type:application/xml\"";
       
$string_wget.=" --header=\"X-Username: {$username}\"";
       
$string_wget.=" --header=\"X-Signature: {$signature}\"";
       
$url=escapeshellcmd($url);
       
$string_wget.=" --post-data=\"{$xml}\"";
       
$string_wget.=" --quiet --output-document=-";
       
$command="wget {$string_wget} http://update.openinviter.com/updater/auto_updater.php";
       
ob_start(); passthru($command,$return_var); $buffer = ob_get_contents(); ob_end_clean();
        if((
strlen($buffer)==0)or($return_var!=0)) return(false);
        else return
$buffer;
        }
    }

function
log_action($message,$type='error')
    {
    global
$base_path;
   
$log_path="{$base_path}/log_{$type}.log";
   
$log_file=fopen($log_path,'a');
   
$final_message='['.date("Y-m-d H:i:s")."] {$message}\n";
    if (
$log_file)
        {
       
fwrite($log_file,$final_message);
       
fclose($log_file);
        }
    }

$openinviter_md5=md5(file_get_contents("{$base_path}/openinviter.php"));
$openinviter_base_md5=md5(file_get_contents("{$base_path}/openinviter_base.php"));

include(
"{$base_path}/openinviter.php");
$inviter=new OpenInviter();
$plugins=$inviter->getPlugins();
$plugin_md5s=array();
foreach (
$plugins as $plugin=>$dummy)
   
$plugin_md5s[$plugin]=md5(file_get_contents("{$base_path}/plugins/{$plugin}.php"));

$xml="<openinviter_updater operation='file_check'>
<file path='openinviter.php' checksum='
{$openinviter_md5}'></file>
<file path='openinviter_base.php' checksum='
{$openinviter_base_md5}'></file>\n";
foreach (
$plugin_md5s as $plugin=>$md5)
   
$xml.="<file path='plugins/{$plugin}.php' checksum='{$md5}'></file>\n";
$xml.="</openinviter_updater>";
$signature = md5(md5($xml.$private_key).$private_key);

$file_check=talk_to_server($signature,$xml);

if (!
$file_check)
    {
   
log_action("AutoUpdater - Unable to connect to update server.");
    exit;
    }
echo
$file_check;exit;
libxml_use_internal_errors(true);
$parsed_xml=simplexml_load_string($file_check);
libxml_use_internal_errors(false);

if (!
$parsed_xml)
    {
   
log_action("AutoUpdater - Incomplete server response.");
    exit;
    }
if (empty(
$parsed_xml->error))
    {
   
log_action("AutoUpdater - Incomplete server response.");
    exit;
    }
if (
$parsed_xml->error['code']!=0)
    {
   
log_action("AutoUpdater - ".$parsed_xml->error);
    exit;
    }
if (empty(
$parsed_xml->update_status))
    {
   
log_action("AutoUpdater - Incomplete server response.");
    exit;
    }
if (
$parsed_xml->update_status['code']==0)
    exit;
if (!isset(
$parsed_xml->file))
    {
   
log_action("AutoUpdater - Incomplete server response.");
    exit;
    }

$must_update=array();
foreach (
$parsed_xml->file as $file)
   
$must_update[(string)$file['path']]=(string)$file['type'];

foreach (
$must_update as $file=>$type)
    {
   
$xml="<openinviter_updater operation='get_file'><file path='{$file}'></file></openinviter_updater>";
   
$signature = md5(md5($xml.$private_key).$private_key);
   
$file_contents=talk_to_server($signature,$xml);
// if (!$file_contents)
// log_action("AutoUpdater - Failed to update {$file}");
// else
// {
// file_put_contents("{$base_path}/{$file}",$file_contents);
// log_action("AutoUpdater - Updated {$file}",'info');
// }
echo $file_contents."<BR><BR><BR><BR><BR>";
    }

?>