diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | license/license.class | 134 |
2 files changed, 0 insertions, 135 deletions
@@ -1,3 +1,2 @@ /*.lib /*.slib -license/license.slib diff --git a/license/license.class b/license/license.class deleted file mode 100644 index c915c3a..0000000 --- a/license/license.class +++ /dev/null @@ -1,134 +0,0 @@ -<?php -/* -** $Id$ -** -** Relog Internet Tools 3 Library ("ITOOLS3") -** -** it_license.class - Handle software licensing -*/ - -/** - * itools (TM) license class - */ -class it_license -{ - /* private */ - var $host; /* Host requesting license */ - var $product; /* Product that we are requesting license for */ - - var $license; /* Entire encoded license string */ - var $licenseurl; /* External URL of license */ - var $licensefile; /* Local file name of cached license */ - var $internal; /* 1 if data source is internal cache */ - var $exp; /* Expiration date */ - -/** - * Create an it_license object for a product installation - * @param $product Name of the licensed product / project - */ -function it_license($product) -{ - $this->host = strtolower(gethostbyaddr(getenv('HTTP_HOST'))); - $this->product = $product; - $this->licensefile = '/tmp/'.$this->product.'-'.$this->host.'.license'; - $this->licenseurl = 'http://license.relog.ch/license.php?host='.$this->host.'&product='.$this->product; - - if ($this->get_license(1)) /* Cached license file exists */ - { - $age = time() - filemtime($this->licensefile); - - if ($age > 86400) /* Cached file is expired */ - { - if (!$this->get_license()) /* Try to get a new license from server */ - { - if ($age > 604800) /* Couldn't get a new license for a week */ - { - unlink($this->licensefile); /* License finally expired */ - unset($this->license); - } - } - } - } - else $this->get_license(); - - $this->check(); - - if (!$this->internal) - { - if ($fh = fopen($this->licensefile, "w")) - { - fwrite($fh, $this->license); - fclose($fh); - } - } -} - - -function get_license($internal=0) -{ - $url = $internal ? $this->licensefile : $this->licenseurl; - - /* echo "Getting license \"$url\"<br>\n"; */ - - if ($file = @file($url)) - { - $this->license = $file[0]; - $this->internal = $internal; - return $url; - } - return 0; -} - - -function check() -{ - $secret="Jm+sd3O5NfvBudDhaf/N24-%C"; - - list($header, $formatversion, $comment, $code, $md5, $end) = explode('|', $this->license); - if ($header == 'RELOG/ULTRALICENSE3000') - { - if ($formatversion == 1) - { - if (md5($secret.$code.$secret) == base64_decode($md5)) - { - list($formatversion, $host, $product, $this->exp) = explode('|', base64_decode($code)); - if ($formatversion == 1) - { - if ($host == $this->host) - { - if ($product == $this->product) - { - list($year, $month, $day) = explode('-', $this->exp); - $exp = mktime(0, 0, 0, $month, $day, $year); - $now = time(); - - if ($exp > $now) /* Valid license */ - return; - - $error = 'license expired on '.$this->exp; - } - else $error = 'wrong product'; - } - else $error = 'wrong host'; - } - else $error = 'format2'; - } - else $error = 'license not authentic'; - } - else $error = 'format'; - } - else $error = 'no license'; - echo $this->host.": invalid license for product <i>$product</i>, reason: <b>$error</b><br>\n"; - exit; -} - - -function valid_until() -{ - return $this->exp; -} - - - -} /* End class it_license */ -?> |