📄 bfsgetdoms.c
字号:
/* $Header: bfsgetdoms.c,v 1.1 86/06/27 13:14:35 jqj Exp $ *//* $Log: bfsgetdoms.c,v $ * Revision 1.1 86/06/27 13:14:35 jqj * Initial revision * */ /* get domains served by a CHS server */#include <stdio.h>#include <sys/types.h>#include <netns/ns.h>#include <xnscourier/Clearinghouse2.h>#include <xnscourier/except.h>static Cardinal nullhash = 0;static Clearinghouse2_Authenticator nullagent = {{0,{0,(Unspecified*)0}}, {1,&nullhash}};FILE *outfile;#define MAXPACKS 20staticlistproc(conn) CourierConnection *conn;{ int count, i; Unspecified buffer[MAXWORDS*MAXPACKS], *bp, *bufend; Clearinghouse2_StreamOfDomainName names; bufend = buffer; bp = buffer+((MAXWORDS-1)*MAXPACKS); /* end of avail. space */ while ((count = BDTread(conn, (char*)bufend, MAXWORDS*sizeof(Unspecified))) > 0) { bufend += count/sizeof(Unspecified); if (bufend > bp) { fprintf(stderr,"BDT read too big to fit\n"); BDTabort(conn); } } bp = buffer; while (bp < bufend) { bp += internalize_Clearinghouse2_StreamOfDomainName(&names,bp); if (0 == (int) names.designator) { for (i=0; i < names.nextSegment_case.segment.length; i++) { printout(names.nextSegment_case.segment.sequence[i]); } free(names.nextSegment_case.segment.sequence); } else { for (i=0; i < names.lastSegment_case.length; i++) { printout(names.lastSegment_case.sequence[i]); } free(names.lastSegment_case.sequence); return; } }}staticprintout(dname) Clearinghouse2_DomainName dname;{ /* print out a 2-part domain name */ if (strcmp(dname.domain,"...") == 0 && strcmp(dname.organization,"...") == 0) return; fprintf(outfile," \":%s:%s\"",dname.domain,dname.organization);}printdomains(sns) struct ns_addr sns;{ CourierConnection *ccon; extern char *ns_ntoa(); sns.x_port = 0; ccon = CourierOpen(&sns); if (ccon == (CourierConnection *)NULL) return; fprintf(outfile,"%s", ns_ntoa(sns)); DURING Clearinghouse2_ListDomainServed(ccon, listproc, BulkData1_immediateSink, nullagent); HANDLER { } END_HANDLER; CourierClose(ccon); fprintf(outfile,"\n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -