From 4ca3b129c9eba710ee8c5978293440daebcde915 Mon Sep 17 00:00:00 2001 From: Turo Soisenniemi Date: Tue, 27 Sep 2022 16:48:05 +0300 Subject: [PATCH] Support non ascii characters in LDAP result --- zabbix-ldap-sync.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/zabbix-ldap-sync.sh b/zabbix-ldap-sync.sh index ff31dc9..47c1f2c 100755 --- a/zabbix-ldap-sync.sh +++ b/zabbix-ldap-sync.sh @@ -457,8 +457,12 @@ if [ "$ldapsearch_exitcode" -eq 0 ];then LDAP_ARRAY_Members_RAW=($tempvar) # Split the raw output into an array LDAP_ARRAY_Members_DN=() for (( i=0; i < ${#LDAP_ARRAY_Members_RAW[*]}; i++ )); do + # Double colon means base64 encoded data: https://www.ietf.org/rfc/rfc2849.txt + if [ "${LDAP_ARRAY_Members_RAW[$i]:0:8}" = "member::" ]; then + i=$(($i + 1)) + LDAP_ARRAY_Members_DN+=("`echo ${LDAP_ARRAY_Members_RAW[$i]} | base64 -d`") # add new Item to the end of the array # Search for the word "member:" in Array - the next value is the DN of a Member - if [ "${LDAP_ARRAY_Members_RAW[$i]:0:7}" = "member:" ]; then + elif [ "${LDAP_ARRAY_Members_RAW[$i]:0:7}" = "member:" ]; then i=$(($i + 1)) LDAP_ARRAY_Members_DN+=("${LDAP_ARRAY_Members_RAW[$i]}") # add new Item to the end of the array else