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

Reply via email to