Buy commercial curl support. We
help you work out your issues, debug your libcurl applications, use the API,
port to new platforms, add new features and more. With a team lead by the
curl founder Daniel himself.
Re: an LDAP test server maybe?
- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]
From: Patrick Monnerat via curl-library <curl-library_at_lists.haxx.se>
Date: Sun, 26 Oct 2025 22:44:08 +0100
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
Date: Sun, 26 Oct 2025 22:44:08 +0100
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.htmlReceived on 2025-10-26