On 10/26/25 11:55 AM, Daniel Stenberg via curl-library wrote:
Hello,
Hi Daniel,
Some of our supported protocols are less tested than others and that
sometimes leads to regressions or worse.
One of the least tested protocols in the curl collection is LDAP and I
would like to do something about this.
At the time I did some commits on openldap, I already brainstormed
myself on LDAP testing: this did not result in some code, I'm afraid.
The standard way to do protocol testing in curl, and one that works
really well, is to implement a really simple server of our own for the
purpose. It usually doesn't even have to speak the protocol well but
just be able to do responses according to what the test case instructs
it. The test case should also be able to instruct the server to
respond completely protocol non-compliant etc so that we can make sure
curl deals with those situations as well. That's typically a reason
why we don't want or need a full "proper" server - just a thin basic
engine.
As you have noted, we not only need a simple server, but one that allows
us to inject bad/wrong replies...
Any suggestions for an embryo for an LDAP test server where we can
start? The smaller the better. It can be done in C, but maybe using
Python is more convenient.
The real problem here is LDAP is a binary protocol, thus there should be
a text-->binary conversion involved to be able to enter
directives/config to this test server: important parsing and shaping work.
I think the best idea I had on this subject is to use scapy
(https://scapy.net/): this a a specialized Python machine augmented with
low level network primitives. It probably contains everything to forge
an LDAP message from text (i.e.: Python statements) and could also be
used in non-LDAP context.
The biggest work for us with it is certainly to learn and familiarize
with the specialized API, then to define and write a framework using it.
Just my 2ยข,
Patrick
--
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette: https://curl.se/mail/etiquette.html