// if i believed in name spacing in php, i'd use it.
error_log("glcasweb loaded");
+global $CRON_CLASSES;
+$CRON_CLASSES["GLCASWeb"] = "GLCASWeb";
+
+
class GLCASWeb {
function __construct($config)
$url = $_REQUEST["q"];
}
+ // add a stat
+ $ipaddr = $_SERVER["REMOTE_ADDR"];
+ $this->config->addData("lastseen", "$ipaddr", time(), "");
+
// create a url parser
$urlparser = new GLCASUrlParser($urlhandlers, $this->config);
$call_class->go($url);
}
+ function cron()
+ {
+ echo "WEB base running cron for ipseen roll-up<br>";
+ $lastseen = $this->config->getData("lastseen");
+ foreach($lastseen as $key=>$val) {
+ $myip = $val["category"];
+ $myls = $val["name"];
+ $ip[$myip] = $myls;
+ }
+
+ foreach($ip as $key=>$val) {
+ echo "Setting last seen for $key to $val<br>";
+ $this->config->delData("lastseen", $key);
+ $this->config->addData("lastseen", $key, $val);
+ }
+ }
+
private $config;
}
}
+function glcas_getLastSeen($ip, $data)
+{
+ $last = "never";
+
+ if(!$data) return $last;
+
+
+
+ foreach($data as $key=>$val) {
+ $last = $val["name"];
+ error_log("got $last for $ip");
+ }
+
+ if($last == "never") return $last;
+
+ $tdiff = time()-$last;
+ $tdiff_min = (int)($tdiff/60);
+ $tdiff_hour = (int)($tdiff/3600);
+ $tdiff_days = (int)($tdiff/86400);
+
+ if($tdiff < 60) $last = "Less then a minute";
+ if($tdiff >= 60 && $tdiff < 7200) $last = "$tdiff_min minutes ago";
+ if($tdiff >= 7200 && $tdiff < 86400) $last = "$tdiff_hour hours ago";
+ if($tdiff >= 86400) $last = "$tdiff_days days ago";
+
+ error_log("last for $ip set to $last");
+
+ return $last;
+
+}
+
function glcas_isRemoteDir($url)
{
file_get_contents($url);