|
|
1.1 ! root 1: #include <stdio.h> ! 2: #include <sys/types.h> ! 3: #include <netns/ns.h> ! 4: #include <netns/sp.h> ! 5: #include "Clearinghouse_support.c" ! 6: #include <xnscourier/except.h> ! 7: #define MAXPACKS 5 ! 8: #define nextSegment_case nextSegment2_33_case ! 9: #define lastSegment_case lastSegment2_34_case ! 10: ! 11: ProcessObjectName(obj) ! 12: ObjectName obj; ! 13: { ! 14: printf("\t%s:%s:%s\n", obj.object, obj.domain, obj.organization); ! 15: } ! 16: ! 17: GetData(conn) ! 18: CourierConnection *conn; ! 19: { ! 20: int count, i; ! 21: Unspecified buffer[MAXWORDS*MAXPACKS], *bp, *bufend; ! 22: StreamOfObjectName obnames; ! 23: ! 24: bufend = buffer; ! 25: bp = buffer+((MAXWORDS-1)*MAXPACKS); /* end of available space */ ! 26: while (count = BDTread(conn, (char*)bufend, ! 27: MAXWORDS*sizeof(Unspecified)) ! 28: ) { ! 29: bufend += count/sizeof(Unspecified); ! 30: if (bufend > bp) { ! 31: fprintf(stderr,"BDT read too big to fit\n"); ! 32: BDTabort(conn); ! 33: /* should clear out stuff here if we knew how much */ ! 34: } ! 35: } ! 36: bp = buffer; ! 37: while (bp < bufend) { ! 38: bp += internalize_StreamOfObjectName(&obnames,bp); ! 39: if (0 == (int) obnames.designator) ! 40: for (i = 0; i < obnames.nextSegment_case.segment.length; i++) ! 41: ProcessObjectName( ! 42: obnames.nextSegment_case.segment.sequence[i]); ! 43: else { ! 44: for (i = 0; i < obnames.lastSegment_case.length; i++) ! 45: ProcessObjectName( ! 46: obnames.lastSegment_case.sequence[i]); ! 47: return; ! 48: } ! 49: } ! 50: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.