<?php
 
# cpanel4 - Accounting.php.inc              Copyright(c) 1999-2002 John N. Koston
 
#                                 All rights Reserved.
 
# [email protected]              http://cpanel.net
 
#
 
# This file is governed by the cPanel license
 
 
 
global $cpanelaccterr;
 
 
 
function suspend ($host,$user,$accesshash,$usessl,$suspenduser) {
 
    $result = whmreq("/scripts/remote_suspend?user=${suspenduser}",$host,$user,$accesshash,$usessl);
 
    if ($cpanelaccterr != "") { return; }
 
    return $result;
 
}
 
function unsuspend ($host,$user,$accesshash,$usessl,$suspenduser) {
 
    $result = whmreq("/scripts/remote_unsuspend?user=${suspenduser}",$host,$user,$accesshash,$usessl);
 
    if ($cpanelaccterr != "") { return; }
 
    return $result;
 
}
 
function killacct ($host,$user,$accesshash,$usessl,$killuser) {
 
    $result = whmreq("/scripts/killacct?user=${killuser}&nohtml=1",$host,$user,$accesshash,$usessl);
 
    if ($cpanelaccterr != "") { return; }
 
    return $result;
 
}
 
function showversion ($host,$user,$accesshash,$usessl) {
 
    $result = whmreq("/scripts2/showversion",$host,$user,$accesshash,$usessl);
 
    if ($cpanelaccterr != "") { return; }
 
    return $result;
 
}
 
function createacct ($host,$user,$accesshash,$usessl,$acctdomain,$acctuser,$acctpass,$acctplan) {
 
    $result = whmreq("/scripts/wwwacct?remote=1&nohtml=1&username=${acctuser}&password=${acctpass}&domain=${acctdomain}&plan=${acctplan}",$host,$user,$accesshash,$usessl);
 
    if ($cpanelaccterr != "") { return; }
 
    return $result;
 
}
 
 
function listaccts ($host,$user,$accesshash,$usessl) {
 
    $result = whmreq("/scripts2/listaccts?nohtml=1&viewall=1",$host,$user,$accesshash,$usessl);
 
    if ($cpanelaccterr != "") { return; }
 
 
        $page = split("\n",$result);
 
    foreach ($page as $line) {
 
        list($acct,$contents) = split("=", $line);
 
        if ($acct != "") {
 
            $allc = split(",", $contents);
 
            $accts[$acct] = $allc;
 
        }
 
        }
 
        return($accts);
 
}
 
function listpkgs ($host,$user,$accesshash,$usessl) {
 
    $result = whmreq("/scripts/remote_listpkg",$host,$user,$accesshash,$usessl);
 
    if ($cpanelaccterr != "") { return; }
 
 
 
        $page = split("\n",$result);
 
    foreach ($page as $line) {
 
        list($pkg,$contents) = split("=", $line);
 
        if ($pkg != "") {
 
            $allc = split(",", $contents);
 
            $pkgs[$pkg] = $allc;
 
        }
 
        }
 
        return($pkgs);
 
}
 
function whmreq ($request,$host,$user,$accesshash,$usessl) {
 
 
 
    $cleanaccesshash = preg_replace("'(\r|\n)'","",$accesshash);
 
        $authstr = $user . ":" . $cleanaccesshash;
 
    $cpanelaccterr = "";
 
 
 
    if (function_exists("curl_init")) {
 
        $ch = curl_init();
 
        if ($usessl) {
 
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
 
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
 
            curl_setopt($ch, CURLOPT_URL, "https://${host}:2087" . $request);
 
        } else {
 
            curl_setopt($ch, CURLOPT_URL, "http://${host}:2086" . $request);
 
                }
 
        curl_setopt($ch, CURLOPT_HEADER, 0);
 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
 
            $curlheaders[0] = "Authorization: WHM $authstr";
 
                curl_setopt($ch,CURLOPT_HTTPHEADER,$curlheaders);
 
        $data=curl_exec ($ch);
 
        curl_close ($ch);
 
    } elseif (function_exists("socket_create")) {
 
        if ($usessl) {
 
            $cpanelaccterr = "SSL Support requires curl";
 
            return;
 
        }
 
        $service_port = 2086;
 
        $address = gethostbyname($host);
 
        $socket = socket_create (AF_INET, SOCK_STREAM, 0);
 
        if ($socket < 0) {
 
                $cpanelaccterr = "socket_create() failed";
 
            return;
 
        }
 
        $result = socket_connect ($socket, $address, $service_port);
 
        if ($result < 0) {
 
                $cpanelaccterr = "socket_connect() failed";
 
            return;
 
        }
 
        $in = "GET $request HTTP/1.0\n";
 
        socket_write($socket,$in,strlen($in));
 
        $in = "Connection: close\n";
 
        socket_write($socket,$in,strlen($in));
 
        $in = "Authorization: WHM $authstr\n\n\n";
 
        socket_write($socket,$in,strlen($in));
 
 
        $inheader = 1;
 
        while(($buf = socket_read($socket, 512)) != false) {
 
          if (!$inheader) {
 
              $data .= $buf;
 
              }
 
          if(preg_match("'\r\n\r\n$'s", $buf)) {
 
            $inheader = 0;
 
          }
 
          if(preg_match("'\n\n$'s", $buf)) {
 
            $inheader = 0;
 
          }
 
          if(preg_match("'\r\n$'s", $buf)) {
 
            $inheader = 0;
 
          }
 
        }
 
 
    } else {
 
        $cpanelaccterr = "php not compiled with --enable-sockets OR curl";
 
        return;
 
    }
 
 
    return $data;
 
}
 
 
?>
 
 |