I am currently implementing functions for adding and deleting LDAP records in
eldap.c. The functions seem to work (records get added and deleted from the
server) except for the fact that they return an error code indicating they
can't contact the server which is obviously wrong.
The problem boils down to a select function being interrupted (errno=EINTR) in
a call to `ldap_result'.
I had the exact same problem when I implemented the open/search/close functions
and it was solved by adding calls to `slow_down_interrupts' and
`speed_up_interrupts' around calls to LDAP library functions. Of course I tried
to do the same here but to no avail. `ldap_result' is still interrupted though
surrounded by {slow_down,speed_up}_interrupts. I even tried `stop_interrupts'
and `start_interrupts' with no success. I can't understand why it works for
searches (which also call `ldap_result') and not for addition and deletion.
I'd appreciate very much some help from someone knowledgeable in this area.
Oscar