diff --git a/gosa-core/include/class_gosaSupportDaemon.inc b/gosa-core/include/class_gosaSupportDaemon.inc
index 797d56f4804d5685e41dd35389950dcd74dce637..44d05cfe0d0e0e9628474e76c7c2b1a4cf4614d0 100644 (file)
#FIXME: bad idea about referencing global variables from within classes
global $config;
+ /* This should only be the case if we call this from setup.
+ __autoload()
+ */
+ if(!is_object($config)) { return; }
+
# load from config, store statically
- if (isset($config->current['GOSA_SI'])){
+ if ($config->get_cfg_value("gosa_si") != ""){
if ($this->s_host == ""){
- $this->s_host= preg_replace("/^.*@([^:]+):.*$/", "$1", $config->current['GOSA_SI']);
- $this->i_port= preg_replace("/^.*@[^:]+:(.*)$/", "$1", $config->current['GOSA_SI']);
- $this->s_encryption_key = preg_replace("/^(.*)@[^:]+:.*$/", "$1", $config->current['GOSA_SI']);
+ $this->s_host= preg_replace("/^.*@([^:]+):.*$/", "$1", $config->get_cfg_value("gosa_si"));
+ $this->i_port= preg_replace("/^.*@[^:]+:(.*)$/", "$1", $config->get_cfg_value("gosa_si"));
+ $this->s_encryption_key = preg_replace("/^(.*)@[^:]+:.*$/", "$1", $config->get_cfg_value("gosa_si"));
}
$this->f_timeout = $timeout;
return($this->is_connected);
}
+
+ /*! \brief Returns TRUE whether we are connected or not
+ @return BOOLEAN Returns TRUE when connected else FALSE
+ */
+ public function is_connected()
+ {
+ return($this->is_connected);
+ }
+
+
/*! \brief Disconnect from gosa daemon.
*/
}
if ($xml_elem['type'] == 'complete') {
+ $start_level = 1;
+ $test2 = &$params;
+ while($start_level < $xml_elem['level']) {
+ $test2 = &$test2[$level[$start_level]];
+ $start_level++;
+ }
+
/* Save tag attributes too.
e.g. <tag attr="val">
*/
}
}
- $start_level = 1;
- $test2 = &$params;
- while($start_level < $xml_elem['level']) {
- $test2 = &$test2[$level[$start_level]];
- $start_level++;
- }
if(!isset($test2[$xml_elem['tag']])){
if(isset($xml_elem['value'])){
$test2[$xml_elem['tag']] = $xml_elem['value'];
@param ...
@return Array All queued entries.
*/
- public function DAK_get_queue_entries($server)
+ public function DAK_keyring_entries($server)
{
/* Ensure that we send the event to a valid mac address
*/
return(array());
}
}
+
+
+ /*! \brief Imports the given key into the specified keyring (Servers mac address)
+ @param String The servers mac address
+ @param String The gpg key.
+ @return Boolean TRUE on success else FALSE
+ */
+ public function DAK_import_key($server,$key)
+ {
+ /* Ensure that we send the event to a valid mac address
+ */
+ if(!is_string($server) || !tests::is_mac($server)){
+ trigger_error("No valid mac address given '".$server."'.");
+ return;
+ }
+
+ /* Check if there is some cleanup required before importing the key.
+ There may be some Header lines like:
+ -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.6 (GNU/Linux)
+ */
+ if(preg_match("/".normalizePreg("BEGIN PGP PUBLIC KEY BLOCK")."/",$key)){
+
+ /* Remove header */
+ $key = preg_replace("/^.*\n\n/sim","",$key);
+ /* Remove footer */
+ $key = preg_replace("/-----.*$/sim","",$key);
+ }elseif (!preg_match('%^[a-zA-Z0-9/+]*={0,2}$%', $key)) {
+
+ /* Encode key if it is raw.
+ */
+ $key = base64_encode($key);
+ }
+
+ /* Create query
+ */
+ $xml_msg = "<xml>
+ <header>gosa_import_dak_key</header>
+ <target>".$server."</target>
+ <key>".$key."</key>
+ <source>GOSA</source>
+ </xml>";
+
+ $res = $this->_send($xml_msg,TRUE);
+ return($this->is_error());
+ }
+
+
+ /*! \brief Removes a key from the keyring on the given server.
+ @param String The servers mac address
+ @param String The gpg key uid.
+ @return Boolean TRUE on success else FALSE
+ */
+ public function DAK_remove_key($server,$key)
+ {
+ /* Ensure that we send the event to a valid mac address
+ */
+ if(!is_string($server) || !tests::is_mac($server)){
+ trigger_error("No valid mac address given '".$server."'.");
+ return;
+ }
+
+ /* Create query
+ */
+ $xml_msg = "<xml>
+ <header>gosa_remove_dak_key</header>
+ <target>".$server."</target>
+ <keyid>".$key."</keyid>
+ <source>GOSA</source>
+ </xml>";
+
+ $res = $this->_send($xml_msg,TRUE);
+ return($this->is_error());
+ }
}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: