2010年12月19日

openldap non-error result code

在debug openldap時常看到類似這樣的訊息,但一直搞不懂tag和err所代表的意義

Dec 19 01:23:06 sso slapd[15299]: conn=4321 op=1 SRCH attr=mail
Dec 19 01:23:06 sso slapd[15299]: conn=4321 op=1 ENTRY dn="cn=user1,ou=staff,ou=people,dc=abc,dc=com.tw"
Dec 19 01:23:06 sso slapd[15299]: conn=4321 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text=
Dec 19 01:23:06 sso slapd[15299]: conn=4321 op=2 CMP dn="cn=user1,ou=staff,ou=people,dc=abc,dc=com.tw" attr="mail"
Dec 19 01:23:06 sso slapd[15299]: conn=4321 op=2 RESULT tag=111 err=6 text=
Dec 19 01:23:06 sso slapd[15299]: conn=4321 op=3 UNBIND

原來這在官方的手冊理已經有提到,這是非錯誤的結果代碼,例如比較的結果會回應5或6,若沒看手冊的話,直覺都認為是發生錯誤了,原來是代表結果狀態,下面的內容是擷取自OpenLDAP的管理者指南,完整的錯誤代碼可以參考RFC-4511
These result codes (called "non-error" result codes) do not indicate an error
condition:

success (0),
compareFalse (5),
compareTrue (6),
referral (10), and
saslBindInProgress (14).

The success, compareTrue, and compareFalse result codes indicate successful
completion (and, hence, are referred to as "successful" result codes).

The referral and saslBindInProgress result codes indicate the client needs
to take additional action to complete the operation.


參考文獻
OpenLDAP administrator's guide
RFC-4511

沒有留言:

張貼留言