HI!
I'm trying to find out why slapd-socks always outputs all lines returned by the external sock listeners with comment "unknown" although everything seems to work correctly.
----------------------------- snip ----------------------------- 5603fc08 conn=1000 op=1 BIND dn="uid=äöüÄÖÜß,ou=realdb,dc=example,dc=org" method=128 5603fc08 str2result (msgid: 2 code: 49 matched: uid=äöüÄÖÜß,ou=realdb,dc=example,dc=org info: You loose! (wrong password)
) unknown 5603fc08 str2result ( ) unknown 5603fc08 conn=1000 op=1 RESULT tag=97 err=49 text= You loose! (wrong password) ----------------------------- snip -----------------------------
The (correct) Python string returned by the listener was:
'RESULT\nmsgid: 2\ncode: 49\nmatched: uid=\xc3\xa4\xc3\xb6\xc3\xbc\xc3\x84\xc3\x96\xc3\x9c\xc3\x9f,ou=realdb,dc=example,dc=org\ninfo: You loose! (wrong password)\n\n'
I tried to understand what's going on in str2result() (in file servers/slapd/result.c) but failed.
AFAICS in slapd-sock(5) the external listener should always return a line with "code: <digit>" after the "RESULT" line. But to me it seems that the function would return with rc=0 if there's only a single "RESULT" line (due to break in line 1674).
And I also can't see why the else clause in 1727 is reached. I wonder whether slapd-sock is confused by the two trailing line feeds.
Ciao, Michael.