dns.c

소프트웨어 스크린 샷:
dns.c
소프트웨어 정보:
버전: 20120805
업로드 날짜: 20 Feb 15
개발자: William Ahern
라이센스: 무료
인기: 84

Rating: nan/5 (Total Votes: 0)

dns.c는 sincle의 .c 파일에있는 재귀 논 블로킹 (non-blocking) DNS 리졸버 라이브러리 재진입이다. 또한 stub 해결 훌륭한 작품.
실제 DNS 패킷 중심으로 핵심 API; DNS 자체 일반적인있다. 이 쿼리하고, AAAA 및 PTR 훨씬 쉽게 이외의 기록을 조작합니다.
사용자 지정 정렬과 재시작 기록 반복자. MX 또는 의미 위해 SRV 레코드 (예 : 환경 설정 및 우선 순위)의 반복으로 간단하다 :
dns_rr_foreach (RR, 패킷, .type = DNS_T_SRV, .sort = dns_rr_i_order) {
& NBSP; ...
}
또는 재시작 방법 :
스위치 (내 -> 상태) {
경우 0 :
& NBSP; dns_rr_i_init (내 -> rr_i);
& NBSP; 내 -> rr_i.type = DNS_T_SRV;
& NBSP; 내 -> rr_i.sort = dns_rr_i_order;
& NBSP; 내 -> 상태 ++;
경우 1 :
& NBSP; 동안 (dns_rr_grep (RR, 1, 내 -> rr_i, 내 -> 패킷, 오류)) {
& NBSP; & nbsp; & nbsp; 확인 ...
& NBSP; & nbsp; & nbsp; 확인 / * 이벤트 루프 *에 리턴 /
& NBSP; }
}
"스마트"쿼리를 지원합니다. 핵심 해결에 사용하도록 설정하면, NS, MX 및 SRV 레코드에 대한 쿼리는 항상 기록에 RDATA 정식 호스트 이름을 확인하려고합니다. 신뢰할 수있는 서버가 접착제를 제공하지 않습니다 NOT IN-전문 분야 및 / 또는 어떤위한 호스트는 자동적으로 해결하고 응답 패킷에 반환됩니다. 스텁 재귀 해결 인스턴스화 모두 지원됩니다. "스마트"해결 방법은 주소 정보로 (즉한다 getaddrinfo ()) API를 기반으로합니다.
소스 포트와 QIDs 무작위.
비 차단, 재입, 반복자 기반한다 getaddrinfo () 인터페이스 : dns_ai_open (), dns_ai_nextent (), dns_ai_close (). 의미 단지에서 getaddrinfo처럼 ()뿐만 아니라, 기록 형식을 사용합니다. (구조체되는 addrinfo) MX, NS, SRV (외) 호스트를 조회 할 때, 심지어 객체를 반복. 필요한 재귀가 연기 될 수있다 (그리고 첫 번째 호스트 가능성이 충분하기 때문에 모든 가능성, 필요하지 않을 것) 때문에이 방법을 "스마트"쿼리를하고 적은 지연 시간이 존재합니다.

의 새로운 기능 이 릴리스 :

이 버그 수정 dns_srv_print ()가 후행 NUL 문자를 인쇄하지 못했습니다.

이 버전 20100813의 새로운 기능 :

이있는 contrib /에 socket.c에 추가합니다. 내가 사용 년 정도 다른 프로젝트에서이 개발했습니다. 개념적으로는 투명하고 비동기 DNS 조회 및 SSL 협상을 처리하는 BSD 소켓 API 주변의 래퍼이다.
so_open ()으로 소켓을 생성 한 후, 호출자는 적절한 모드, 예를 설정 so_connect ()와 so_starttls (). 호출자는 그들가 완료 될 때까지 다음 (필요한 경우가 EAGAIN을 반환합니다) 기다리거나보다 편리하게 결과를 무시하고 읽기와 쓰기를 시도하기 바로 이동할 수 있습니다. EAGAIN을 포함한 이전의 상태,에서 오류는 읽기에 반품 그 상태가 완료 될 때까지 쓰기 시도를한다.
단지 dns.c 대응 등 so_pollfd ()와 so_events ()를 사용합니다. 이들은 각각, 내부 상태의 실행에 따라 적절한 디스크립터 및 이벤트 플래그를 리턴한다. 애플리케이션은 논리 읽기 / 쓰기 작업을 발행 걱정할 필요가 없다.

이 버전 20100709의 새로운 기능 :

는 MinGW 내부 dns_strsep ()와 DNS_ETIMEDOUT을 추가하여 구축 수정합니다.

이 버전 20100708의 새로운 기능 :

이 dns_hints_query의 내부 () dns_d_cleave하기 위해 소스 길이로 전달하기 전에 dns_d_expand (에 의해 반환 된 길이)의 유효성을 확인 () 다른 우리는 잘못된 읽기를 할 수 있습니다. 익명 감사합니다.
태그 확인해-20100708 (d493a0f7d8f1d67ef312a7ca3e142660895b32d8).
주 : 20100708 릴리스 DNS_V_REL를 범프 분실, 새로운 통계 인터페이스는 트렁크에 있었기 때문에 또한 DNS_V_API을 마주해야합니다. 지금은 너무 늦었.

이 버전 20100515의 새로운 기능 :

네임 서버의 resolv.conf를 통해 루프 : options.attempts 시간.
MX 및 PTR 메커니즘을 실행하는 경우 SPF 정식 이름 쿼리 제한을 적용.
배울 수 dns_p_study () 및 저장 부 범위를 추가합니다.
dns_p_push 섹션 범위를 추적 ().
리팩터링 dns_p_merge ()는 큰 패킷의 성능을 향상시킬 수 있습니다.
malloc하는 새로운 패킷을 초기화 () dns_p_make를 추가합니다.
SPF 용어 쿼리 제한을 적용. MX 및 PTR 호스트 쿼리에 대한 제한을 적용 예상 구조체 spf_limits의 레이아웃을 변경.
255의 점프 지수에 대한 VM 명령 발생기에서 버그를 수정.

이 버전 20100416의 새로운 기능 :

이 추가 SSHFP 지원.
태그 확인해-20100416 (5bd9963e693510e485a1f081f6c98a95d84debfe).
OpenSPF 테스트 스위트에 90 % 통과 속도. 가 TempError 시험을 통과하기 위해 시간 제한을 시뮬레이션 할 필요가있다. 문법 시험의 일부는 논쟁의 여지가있다.
추가 OpenSPF YAML 테스트 스위트 프로세서. libyaml이 필요합니다.

이 0.5 버전의 새로운 기능 :

이 우리가 & quot에서 폴백하지 않은 버그를 수정, 바인드 & quot; 파일 & quot; 메소드를 & quot; 방법 재귀 플래그가 비활성화 된 경우.
검색 발전기의 qname를 변경되었을 수 있습니다. 그래서, dns_ai_nextent에 () 답이 아닌 원래 해결에 제출의 qname에서의 qname를 정규화.

유사한 소프트웨어

cli53
cli53

20 Feb 15

adsuck
adsuck

20 Feb 15

HubDNS
HubDNS

11 May 15

코멘트 dns.c

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!