Aleksander Machniak
2013-06-18 c64beed6bb31c697459290484a256cd83b377922
program/lib/Roundcube/rcube_ldap_generic.php
@@ -176,7 +176,7 @@
        $host     = rcube_utils::idn_to_ascii(rcube_utils::parse_host($host));
        $hostname = $host . ($this->config['port'] ? ':'.$this->config['port'] : '');
        $this->_debug("C: Connect [$hostname] [{$this->config['name']}]");
        $this->_debug("C: Connect to $hostname [{$this->config['name']}]");
        if ($lc = @ldap_connect($host, $this->config['port'])) {
            if ($this->config['use_tls'] === true)
@@ -245,7 +245,7 @@
            $method = 'DIGEST-MD5';
        }
        $this->_debug("C: Bind [mech: $method, authc: $authc, authz: $authz] [pass: $pass]");
        $this->_debug("C: SASL Bind [mech: $method, authc: $authc, authz: $authz, pass: $pass]");
        if (ldap_sasl_bind($this->conn, NULL, $pass, $method, NULL, $authc, $authz)) {
            $this->_debug("S: OK");
@@ -277,7 +277,7 @@
            return false;
        }
        $this->_debug("C: Bind [dn: $dn] [pass: $pass]");
        $this->_debug("C: Bind $dn [pass: $pass]");
        if (@ldap_bind($this->conn, $dn, $pass)) {
            $this->_debug("S: OK");
@@ -331,7 +331,7 @@
        $rec = null;
        if ($this->conn && $dn) {
            $this->_debug("C: Read [dn: $dn] [(objectclass=*)]");
            $this->_debug("C: Read $dn [(objectclass=*)]");
            if ($ldap_result = @ldap_read($this->conn, $dn, '(objectclass=*)', $this->attributes)) {
                $this->_debug("S: OK");
@@ -373,7 +373,7 @@
            if (empty($filter))
                $filter = $filter = '(objectclass=*)';
            $this->_debug("C: Search [$filter][dn: $base_dn]");
            $this->_debug("C: Search $base_dn for $filter");
            $function = self::scope2func($scope, $ns_function);
@@ -450,7 +450,7 @@
     */
    public function add($dn, $entry)
    {
        $this->_debug("C: Add [dn: $dn]: ".print_r($entry, true));
        $this->_debug("C: Add $dn: ".print_r($entry, true));
        $res = ldap_add($this->conn, $dn, $entry);
        if ($res === false) {
@@ -469,7 +469,7 @@
     */
    public function delete($dn)
    {
        $this->_debug("C: Delete [dn: $dn]");
        $this->_debug("C: Delete $dn");
        $res = ldap_delete($this->conn, $dn);
        if ($res === false) {
@@ -488,7 +488,7 @@
     */
    public function mod_replace($dn, $entry)
    {
        $this->_debug("C: Replace [dn: $dn]: ".print_r($entry, true));
        $this->_debug("C: Replace $dn: ".print_r($entry, true));
        if (!ldap_mod_replace($this->conn, $dn, $entry)) {
            $this->_debug("S: ".ldap_error($this->conn));
@@ -506,7 +506,7 @@
     */
    public function mod_add($dn, $entry)
    {
        $this->_debug("C: Add [dn: $dn]: ".print_r($entry, true));
        $this->_debug("C: Add $dn: ".print_r($entry, true));
        if (!ldap_mod_add($this->conn, $dn, $entry)) {
            $this->_debug("S: ".ldap_error($this->conn));
@@ -524,7 +524,7 @@
     */
    public function mod_del($dn, $entry)
    {
        $this->_debug("C: Delete [dn: $dn]: ".print_r($entry, true));
        $this->_debug("C: Delete $dn: ".print_r($entry, true));
        if (!ldap_mod_del($this->conn, $dn, $entry)) {
            $this->_debug("S: ".ldap_error($this->conn));
@@ -542,7 +542,7 @@
     */
    public function rename($dn, $newrdn, $newparent = null, $deleteoldrdn = true)
    {
        $this->_debug("C: Rename [dn: $dn] [dn: $newrdn]");
        $this->_debug("C: Rename $dn to $newrdn");
        if (!ldap_rename($this->conn, $dn, $newrdn, $newparent, $deleteoldrdn)) {
            $this->_debug("S: ".ldap_error($this->conn));
@@ -562,7 +562,7 @@
    public function list_entries($dn, $filter, $attributes = array('dn'))
    {
        $list = array();
        $this->_debug("C: List [dn: $dn] [{$filter}]");
        $this->_debug("C: List $dn [{$filter}]");
        if ($result = ldap_list($this->conn, $dn, $filter, $attributes)) {
            $list = ldap_get_entries($this->conn, $result);
@@ -592,7 +592,7 @@
     */
    public function read_entries($dn, $filter, $attributes = null)
    {
        $this->_debug("C: Read [dn: $dn] [{$filter}]");
        $this->_debug("C: Read $dn [{$filter}]");
        if ($this->conn && $dn) {
            if (!$attributes)
@@ -737,7 +737,7 @@
        $sort_ctrl = array('oid' => "1.2.840.113556.1.4.473",  'value' => self::_sort_ber_encode((array)$sort));
        $vlv_ctrl  = array('oid' => "2.16.840.1.113730.3.4.9", 'value' => self::_vlv_ber_encode(($offset = ($list_page-1) * $page_size + 1), $page_size, $search), 'iscritical' => true);
        $this->_debug("C: set controls sort=" . join(' ', unpack('H'.(strlen($sort_ctrl['value'])*2), $sort_ctrl['value'])) . " ($sort[0]);"
        $this->_debug("C: Set controls sort=" . join(' ', unpack('H'.(strlen($sort_ctrl['value'])*2), $sort_ctrl['value'])) . " ($sort[0]);"
            . " vlv=" . join(' ', (unpack('H'.(strlen($vlv_ctrl['value'])*2), $vlv_ctrl['value']))) . " ($offset/$page_size; $search)");
        if (!ldap_set_option($this->conn, LDAP_OPT_SERVER_CONTROLS, array($sort_ctrl, $vlv_ctrl))) {
@@ -839,7 +839,7 @@
        $vlv_config = $this->_read_vlv_config();
        if ($vlv = $vlv_config[$base_dn]) {
            $this->_debug("D: Found a VLV for base_dn: " . $base_dn);
            $this->_debug("D: Found a VLV for $base_dn");
            if ($vlv['filter'] == strtolower($filter) || stripos($filter, '(&'.$vlv['filter'].'(') === 0) {
                $this->_debug("D: Filter matches");
@@ -858,7 +858,7 @@
            }
        }
        else {
            $this->_debug("D: No VLV for base dn " . $base_dn);
            $this->_debug("D: No VLV for $base_dn");
        }
        return false;
@@ -883,7 +883,7 @@
        if (is_array($this->vlv_config)) {
            return $this->vlv_config;
        }
        if ($this->cache && ($cached_config = $this->cache->get('vlvconfig'))) {
            $this->vlv_config = $cached_config;
            return $this->vlv_config;