diff --git a/fmt_ldapbindresponse.c b/fmt_ldapbindresponse.c deleted file mode 100644 index 31ed400..0000000 --- a/fmt_ldapbindresponse.c +++ /dev/null @@ -1,20 +0,0 @@ - -#include "asn1.h" -#include "ldap.h" - -int fmt_ldapbindresponse(char* dest,long result,char* matcheddn,char* errormessage,char* referral) { - int l,sum=0; - int nlen; - sum=l=fmt_asn1ENUMERATED(dest,result); - if (dest) dest+=l; - nlen=strlen(matcheddn); - l=fmt_asn1OCTETSTRING(dest,matcheddn,nlen); - sum+=l+nlen; if (dest) dest+=l+nlen; - nlen=strlen(errormessage); - l=fmt_asn1OCTETSTRING(dest,errormessage,nlen); - sum+=l+nlen; if (dest) dest+=l+nlen; - nlen=strlen(referral); - l=fmt_asn1OCTETSTRING(dest,referral,nlen); - if (dest) dest+=l+nlen; - return sum+l+nlen; -} diff --git a/fmt_ldapresult.c b/fmt_ldapresult.c new file mode 100644 index 0000000..23dcf15 --- /dev/null +++ b/fmt_ldapresult.c @@ -0,0 +1,21 @@ +#include "asn1.h" +#include "ldap.h" + +int fmt_ldapresult(char* dest,long result,char* matcheddn,char* errormessage,char* referral) { + int l,sum=0; + int nlen; + sum=l=fmt_asn1ENUMERATED(dest,result); + if (dest) dest+=l; + nlen=strlen(matcheddn); + l=fmt_asn1OCTETSTRING(dest,matcheddn,nlen); + sum+=l; if (dest) dest+=l; + nlen=strlen(errormessage); + l=fmt_asn1OCTETSTRING(dest,errormessage,nlen); + sum+=l; if (dest) dest+=l; + if (referral && *referral) { + nlen=strlen(referral); + l=fmt_asn1OCTETSTRING(dest,referral,nlen); + sum+=l; if (dest) dest+=l; + } + return sum; +} diff --git a/ldap.h b/ldap.h index abbd689..cbb269e 100644 --- a/ldap.h +++ b/ldap.h @@ -94,11 +94,12 @@ int scan_ldapresult(const char* src,const char* max,long* result, int fmt_ldapstring(char* dest,struct string* s); int fmt_ldapmessage(char* dest,long messageid,long op,long len); int fmt_ldapbindrequest(char* dest,long version,char* name,char* simple); -int fmt_ldapbindresponse(char* dest,long result,char* matcheddn, - char* errormessage,char* referral); int fmt_ldapsearchfilter(char* dest,struct Filter* f); int fmt_ldapsearchrequest(char* dest,struct SearchRequest* s); int fmt_ldapsearchresultentry(char* dest,struct SearchResultEntry* sre); -int fmt_ldapsearchresultdone(char* dest,long result,char* matcheddn,char* errormessage,char* referral); +int fmt_ldapresult(char* dest,long result,char* matcheddn,char* errormessage,char* referral); + +#define fmt_ldapbindresponse(a,b,c,d,e) fmt_ldapresult(a,b,c,d,e) +#define fmt_ldapsearchresultdone(a,b,c,d,e) fmt_ldapresult(a,b,c,d,e) #endif diff --git a/tinyldap.c b/tinyldap.c index f94fd20..b5615f0 100644 --- a/tinyldap.c +++ b/tinyldap.c @@ -26,7 +26,7 @@ int main() { buffer_putulong(buffer_2,op); buffer_putsflush(buffer_2,".\n"); switch (op) { - case 0: + case BindRequest: { long version,method; struct string name;