python-ldap as replication client

Michael Ströder michael at
Wed Mar 23 08:11:59 CET 2011

Eric Brunson wrote:
> The new code works great, thanks so much for the new features.
> I do have one issue, and maybe I'm just not looking in the correct
> place.  The Sync Info Message returns a syncInfoValue which is a BER
> encoded ASN.1 CHOICE structure:
>     syncInfoValue ::= CHOICE {
>               newcookie      [0] syncCookie,
>               refreshDelete  [1] SEQUENCE {
>                   cookie         syncCookie OPTIONAL,
>                   refreshDone    BOOLEAN DEFAULT TRUE
>               },
>               refreshPresent [2] SEQUENCE {
>                   cookie         syncCookie OPTIONAL,
>                   refreshDone    BOOLEAN DEFAULT TRUE
>               },
>               syncIdSet      [3] SEQUENCE {
>                   cookie         syncCookie OPTIONAL,
>                   refreshDeletes BOOLEAN DEFAULT FALSE,
>                   syncUUIDs      SET OF syncUUID
>               }
>           }
> The data is returned and I've been able to successfully decode it with
> the PyASN1 BER codec, but I can't find any indication of the choice
> index being returned in the value.   I don't know that the refreshDelete
> and the refreshPresent are distinguishable from each other without
> additional information, but I see that the value being returned from
> result4() is simply what ldap_parse_intermediate() returns, without any
> indication of the choice index.  Looking at the raw BER encoded packet
> in wireshark, it would seem that the two bytes before the data being
> returned have the index embedded in the second byte.
> I'm sure this must simply be something I'm overlooking.  Any help?

Could you share a short script demonstrating this?

Ciao, Michael.

More information about the python-ldap mailing list