#!/bin/sh
##
## Query LDAP server capabilities
## Copyright (c) 2007 SATOH Fumiyasu @ OSS Technology Co., Japan
##                    <http://www.osstech.co.jp/>
##
## Date: 2007-07-25, since 2007-07-25
##

set -u
set -e

if [ $# -eq 0 ]; then
  echo "Usage: $0 SERVER [PORT]"
  exit 0
fi

server="$1"; shift
port="${1:-389}"

ldapsearch \
  -x \
  -h "$server" \
  -p "$port" \
  -b '' \
  -s base \
  'objectclass=*' \
|awk '
$1=="supportedControl:" && $2=="1.2.840.113556.1.4.319" {
  $2=$2" PagedResultsControl (RFC 2696)"}
$1=="supportedControl:" && $2=="1.2.840.113556.1.4.473" {
  $2=$2" ServerSortResultControl (RFC 2891)"}
$1=="supportedControl:" && $2=="2.16.840.1.113730.3.4.2" {
  $2=$2" ManageReferralControl (ManageDSAIT) (RFC 3296)"}
$1=="supportedControl:" && $2=="2.16.840.1.113730.3.4.9" {
  $2=$2" VirtualListViewControl (VLV)"}
{print}
'

