Hello again,
On Tue, 22 Jan 2019, [email protected] wrote:
> By the way, I am wondering here about the correctness of parameter
>
> li->li_timeout[ SLAP_OP_EXTENDED ]
>
> slap.h has:
>
> /*
> * Operation indices
> */
> typedef enum {
> SLAP_OP_BIND = 0,
> SLAP_OP_UNBIND,
> SLAP_OP_SEARCH,
> SLAP_OP_COMPARE,
> SLAP_OP_MODIFY,
> SLAP_OP_MODRDN,
> SLAP_OP_ADD,
> SLAP_OP_DELETE,
> SLAP_OP_ABANDON,
> SLAP_OP_EXTENDED,
> SLAP_OP_LAST
> } slap_op_t;
>
> So SLAP_OP_EXTENDED has value 9. But back-ldap/config.c has:
>
> /* see enum in slap.h */
> static slap_cf_aux_table timeout_table[] = {
> { BER_BVC("bind="), SLAP_OP_BIND * sizeof( time_t ), 'u', 0, NULL },
> /* unbind makes no sense */
> { BER_BVC("add="), SLAP_OP_ADD * sizeof( time_t ), 'u', 0, NULL },
> { BER_BVC("delete="), SLAP_OP_DELETE * sizeof( time_t ), 'u', 0, NULL
> },
> { BER_BVC("modrdn="), SLAP_OP_MODRDN * sizeof( time_t ), 'u', 0, NULL
> },
> { BER_BVC("modify="), SLAP_OP_MODIFY * sizeof( time_t ), 'u', 0, NULL
> },
> { BER_BVC("compare="), SLAP_OP_COMPARE * sizeof( time_t ), 'u', 0, NULL
> },
> { BER_BVC("search="), SLAP_OP_SEARCH * sizeof( time_t ), 'u', 0, NULL
> },
> /* abandon makes little sense */
> #if 0 /* not implemented yet */
> { BER_BVC("extended="), SLAP_OP_EXTENDED * sizeof( time_t ), 'u', 0,
> NULL },
> #endif
> { BER_BVNULL, 0, 0, 0, NULL }
> };
>
> Hmmm, SLAP_OP_EXTENDED is not defined, so does li->li_timeout[
> SLAP_OP_EXTENDED ]
> end up pointing outside of this timeout_table[]? I am not sure.
No, it does not point there. I read some more code and "li" is of type
struct ldapinfo_t that has member:
time_t li_timeout[ SLAP_OP_LAST ];
And hence we have an array:
li_timeout[ 10 ]
so pointing to li_timeout[ SLAP_OP_EXTENDED ] points to li_timeout[ 9 ]
and there is nothing wrong with that.
I do not know if I understand the code here, but I suppose this
li_timeout[ SLAP_OP_EXTENDED ] has value 0. That is why the else-branch is
taken, giving the default 0.1 second timeout for TLS initialization. Is
this correct, and perhaps safe to increase the value here?
Best regards,
Unto Sten