After activating the plug-in in the server, compile the client code reqextop.c.
Add an entry under cn=features in the configuration to let users access the extended operation.
$ cat myextop.ldif dn: oid=1.2.3.4,cn=features,cn=config objectClass: top objectClass: directoryServerFeature oid: 1.2.3.4 cn: Fake extended operation aci: (targetattr != "aci")(version 3.0;acl "Fake extended operation"; allow ( read, search, compare, proxy ) userdn = "ldap:///all";) $ ldapmodify -h localhost -p 389 -a -D cn=directory\ manager -w - -f myextop.ldif Enter bind password: adding new entry uid=qcubbins,ou=People,dc=example,dc=com $ dsadm restart /local/ds Waiting for server to stop... Server stopped Server started: pid=5658 $ |
Run the client to send the extended operation request and display the result.
$ ./reqextop -w password
Using the following connection info:
host: localhost
port: 389
bind DN: cn=Directory Manager
pwd: password
Setting up value to pass to server...
Getting the handle to the LDAP connection...
Resetting version 2 to 3.0...
Binding to the directory...
Initiating the extended operation...
Operation successful.
Returned OID: 5.6.7.8
Returned value: Value from client: My Value
|
On the Directory Server side, turn on logging.
Messages similar to the following in the errors log show that the plug-in handled the client request:
[22/May/2112:08:54:15 +0200] - INFORMATION - test_extendedop in test-extendedop plug-in - conn=0 op=1 msgId=2 - Request with OID: 1.2.3.4 Value from client: My Value [22/May/2112:08:54:15 +0200] - INFORMATION - test_extendedop in test-extendedop plug-in - conn=0 op=1 msgId=2 - OID sent to client: 5.6.7.8 Value sent to client: Value from client: My Value |
You have thus demonstrated that the example extended operation plug-in handles requests for the extended operation with OID 1.2.3.4.