protected function _parseCapability($data)
{
// Clear the cached capabilities.
$this->_capability = array('sasl' => array(), 'extensions' => array());
$data = preg_split('/\\r?\\n/', \Horde_String::upper($data), -1, PREG_SPLIT_NO_EMPTY);
for ($i = 0; $i < count($data); $i++) {
if (!preg_match('/^"([A-Z]+)"( "(.*)")?$/', $data[$i], $matches)) {
continue;
}
switch ($matches[1]) {
case 'IMPLEMENTATION':
$this->_capability['implementation'] = $matches[3];
break;
case 'SASL':
$this->_capability['sasl'] = preg_split('/\\s+/', $matches[3]);
break;
case 'SIEVE':
$this->_capability['extensions'] = preg_split('/\\s+/', $matches[3]);
break;
case 'STARTTLS':
$this->_capability['starttls'] = true;
break;
}
}
}