From a52787abd4a1dda8a029bc783f5694c542abd7eb Mon Sep 17 00:00:00 2001 From: leitner Date: Mon, 14 Jan 2002 22:01:01 +0000 Subject: [PATCH] support AbandonRequest in t2.c --- Makefile | 2 +- asn1.h | 1 + scan_asn1rawint.c | 12 ++++++++++++ t2.c | 10 +++++++++- 4 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 scan_asn1rawint.c diff --git a/Makefile b/Makefile index 11645f2..fcaeece 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ asn1.a: fmt_asn1intpayload.o fmt_asn1length.o fmt_asn1tag.o \ fmt_asn1int.o fmt_asn1string.o fmt_asn1transparent.o scan_asn1tag.o \ scan_asn1length.o scan_asn1int.o scan_asn1string.o scan_asn1INTEGER.o \ scan_asn1STRING.o scan_asn1SEQUENCE.o scan_asn1ENUMERATED.o \ -scan_asn1BOOLEAN.o +scan_asn1BOOLEAN.o scan_asn1rawint.o ldap.a: scan_ldapmessage.o fmt_ldapmessage.o fmt_ldapbindrequest.o \ scan_ldapbindrequest.o fmt_ldapbindresponse.o scan_ldapbindresponse.o \ diff --git a/asn1.h b/asn1.h index 545ba8e..1d2d858 100644 --- a/asn1.h +++ b/asn1.h @@ -68,6 +68,7 @@ int scan_asn1length(const char* src,const char* max,unsigned long* length); int scan_asn1int(const char* src,const char* max, enum asn1_tagclass* tc,enum asn1_tagtype* tt, unsigned long* tag, unsigned long* l); +int scan_asn1rawint(const char* src,const char* max,unsigned int len,long* i); int scan_asn1string(const char* src,const char* max, enum asn1_tagclass* tc,enum asn1_tagtype* tt,unsigned long* tag, const char** s,unsigned long* l); diff --git a/scan_asn1rawint.c b/scan_asn1rawint.c new file mode 100644 index 0000000..fb2aa4a --- /dev/null +++ b/scan_asn1rawint.c @@ -0,0 +1,12 @@ +#include "asn1.h" + +int scan_asn1rawint(const char* src,const char* max,unsigned int len,long* l) { + int i; + *l=0; + for (i=0; imax) return 0; + } + return len; +} diff --git a/t2.c b/t2.c index facfd95..d6f70cc 100644 --- a/t2.c +++ b/t2.c @@ -108,7 +108,7 @@ int main(int argc,char* argv[]) { { struct SearchRequest br; int tmp; - printf("scan_ldapsearchrequest %d\n",tmp=scan_ldapsearchrequest(ldapsequence+done+res,ldapsequence+size,&br)); + printf("scan_ldapsearchrequest %d\n",tmp=scan_ldapsearchrequest(ldapsequence+done+res,ldapsequence+done+res+len,&br)); if (tmp) { printf("baseObject: \"%.*s\"\n",(int)br.baseObject.l,br.baseObject.s); printfilter(br.filter); printf("\n"); @@ -119,6 +119,14 @@ int main(int argc,char* argv[]) { case UnbindRequest: puts(" >> UnbindRequest <<"); break; + case AbandonRequest: + puts(" >> AbandonRequest <<"); + { + unsigned long which; + if (scan_asn1rawint(ldapsequence+done+res,ldapsequence+done+res+len,len,&which)) + printf("Abandon: %lu\n",which); + } + break; default: puts(" >> unklar << ;)"); }