コード例 #1
0
ファイル: iSchedule.php プロジェクト: derekyu1437/davical
function checkiSchedule()
{
    global $c;
    $ret = '';
    $s = new iSchedule();
    $s->domain = $c->scheduling_dkim_domain;
    if (!$s->getServer()) {
        $ret .= '<p>SRV record missing for ' . $s->domain . ' or DNS failure, the domain you are going to send events from should have an SRV record</p>';
    }
    if ($s->remote_server != $c->scheduling_dkim_domain) {
        $ret .= '<p>SRV record for ' . $s->domain . ' points to wrong domain: ' . $s->remote_server . ' instead of ' . $c->scheduling_dkim_domain . '</p>';
    }
    $s->remote_server = $c->scheduling_dkim_domain;
    $s->remote_selector = $c->scheduling_dkim_selector;
    if (!$s->getTxt()) {
        if (isset($c->schedule_private_key)) {
            $ret .= '<p>TXT record missing for ' . $s->remote_selector . '._domainkey.' . $s->domain . ' or DNS failure, Private RSA key is configured</p>';
        } else {
            $keys = generateKeys();
            $config = '<p>please add the following section to your DAViCal configuration file<pre>$c->schedule_private_key = &lt;&lt;&lt;ENDOFKEY' . "\n";
            $config .= $keys['private'];
            //implode ("\n", str_split ( base64_encode ( $keys['private'] ), 64 ));
            $config .= "ENDOFKEY\n</pre>";
            $config .= "<br/> and create a DNS TXT record for <b>" . $c->scheduling_dkim_selector . "._domainkey." . $c->scheduling_dkim_domain;
            $config .= "</b> that contains:<pre>";
            $config .= "k=rsa; t=s; p=" . preg_replace('/-----(BEGIN|END) PUBLIC KEY-----\\n/', '', $keys['public']);
            $config .= '</pre></p>';
            $ret .= $config;
        }
    }
    if (!$s->parseTxt()) {
        $ret .= '<p>TXT record corrupt for ' . $s->remote_selector . '._domainkey.' . $s->domain . ' or DNS failure</p>';
    } else {
        if ($ret == '') {
            $ret = '<p>iSchedule OK</p>';
        }
    }
    return $ret;
}