my ($url,$method,$body) = @_;
exists $ALIASES{$url} and $url = $ALIASES{$url};
- my $response = $Api->rawCall(path=>$url,method=>($method||'GET'),body=>$body);
- die "$NAME: ERR: ".$response->error() if $response->isFailure();
+ my $response;
+ eval {
+ $response = $Api->rawCall(path=>$url,method=>($method||'GET'),body=>$body);
+ };
+ die "$NAME: Connection failed $! $@" unless $response;
+ if ($response->isFailure()) {
+ die "$NAME: ERR: Connection failed" if $response->error() =~ /Internal Server Error/;
+ die "$NAME: ERR: ".$response->error();
+ }
my $content = $response->content;
return unless defined $content;
next unless defined $id;
$id =~ s,/.*$,,;
- $response = $Api->rawCall(path=>$url.'/'.$id,method=>($method||'GET'),body=>{});
+ eval {
+ $response = $Api->rawCall(path=>$url.'/'.$id,method=>($method||'GET'),body=>{});
+ };
+
+ die "$NAME: Query failed $! $@" unless $response;
+ die "$NAME: ERR: Connection failed" if $response->error() =~ /Internal Server Error/;
die "$NAME: ERR: ".$response->error() if $response->isFailure();
$v = str_replace('"','\\"',$v);
$v = str_replace('$','\\$',$v);
$v = str_replace('`','\\`',$v);
+ $v = str_replace("\r",'',$v);
+ $v = str_replace("\n",'"$\'\\\\n\'"',$v);
$line[] = $o['preff']."$k=\"$v\"";
}
if ($line) echo join(' ',$line).";\n";
const WRITE = 3;
const VIEW = 1;
public $perm = self::ADMIN;
- public $perms = [
+ public $perms = [ # keys in lowercase !!!!
'admin' => self::ADMIN,
'delete' => self::DELETE,
'write' => self::WRITE,
// Format perm into int value
$perm = strtolower($this->perm);
- if (isset($this->perms[$perm])) {
- $this->perm = $this->perms[$perm];
- }
+ if (isset($this->perms[$perm])) $this->perm = $this->perms[$perm];
if (!preg_match('/^[0-9]+$/',$perm)) $perm = 0;
parent::__construct($opt);