亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? general.c

?? 100 病毒源碼,原始碼,無毒 ......
?? C
字號:
/* * general.c * - diagnostic functions * - vbuf handling *//* *  This file is *    Copyright (C) 1997-2000 Ian Jackson <ian@davenant.greenend.org.uk> * *  It is part of adns, which is *    Copyright (C) 1997-2000 Ian Jackson <ian@davenant.greenend.org.uk> *    Copyright (C) 1999-2000 Tony Finch <dot@dotat.at> *   *  This program is free software; you can redistribute it and/or modify *  it under the terms of the GNU General Public License as published by *  the Free Software Foundation; either version 2, or (at your option) *  any later version. *   *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. *   *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software Foundation, *  Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include "internal.h"/* Core diagnostic functions */void adns__vdiag(adns_state ads, const char *pfx, adns_initflags prevent,		 int serv, adns_query qu, const char *fmt, va_list al) {  const char *bef, *aft;  vbuf vb;    if (!ads->diagfile ||      (!(ads->iflags & adns_if_debug) && (!prevent || (ads->iflags & prevent))))    return;  if (ads->iflags & adns_if_logpid) {    fprintf(ads->diagfile,"adns%s [%ld]: ",pfx,(long)getpid());  } else {    fprintf(ads->diagfile,"adns%s: ",pfx);  }  vfprintf(ads->diagfile,fmt,al);  bef= " (";  aft= "\n";  if (qu && qu->query_dgram) {    adns__vbuf_init(&vb);    fprintf(ads->diagfile,"%sQNAME=%s, QTYPE=%s",	    bef,	    adns__diag_domain(qu->ads,-1,0, &vb,			      qu->query_dgram,qu->query_dglen,DNS_HDRSIZE),	    qu->typei ? qu->typei->rrtname : "<unknown>");    if (qu->typei && qu->typei->fmtname)      fprintf(ads->diagfile,"(%s)",qu->typei->fmtname);    bef=", "; aft=")\n";    adns__vbuf_free(&vb);  }    if (serv>=0) {    fprintf(ads->diagfile,"%sNS=%s",bef,inet_ntoa(ads->servers[serv].addr));    bef=", "; aft=")\n";  }  fputs(aft,ads->diagfile);}void adns__debug(adns_state ads, int serv, adns_query qu, const char *fmt, ...) {  va_list al;  va_start(al,fmt);  adns__vdiag(ads," debug",0,serv,qu,fmt,al);  va_end(al);}void adns__warn(adns_state ads, int serv, adns_query qu, const char *fmt, ...) {  va_list al;  va_start(al,fmt);  adns__vdiag(ads," warning",adns_if_noerrprint|adns_if_noserverwarn,serv,qu,fmt,al);  va_end(al);}void adns__diag(adns_state ads, int serv, adns_query qu, const char *fmt, ...) {  va_list al;  va_start(al,fmt);  adns__vdiag(ads,"",adns_if_noerrprint,serv,qu,fmt,al);  va_end(al);}/* vbuf functions */void adns__vbuf_init(vbuf *vb) {  vb->used= vb->avail= 0; vb->buf= 0;}int adns__vbuf_ensure(vbuf *vb, int want) {  void *nb;    if (vb->avail >= want) return 1;  nb= realloc(vb->buf,want); if (!nb) return 0;  vb->buf= nb;  vb->avail= want;  return 1;}  void adns__vbuf_appendq(vbuf *vb, const byte *data, int len) {  memcpy(vb->buf+vb->used,data,len);  vb->used+= len;}int adns__vbuf_append(vbuf *vb, const byte *data, int len) {  int newlen;  void *nb;  newlen= vb->used+len;  if (vb->avail < newlen) {    if (newlen<20) newlen= 20;    newlen <<= 1;    nb= realloc(vb->buf,newlen);    if (!nb) { newlen= vb->used+len; nb= realloc(vb->buf,newlen); }    if (!nb) return 0;    vb->buf= nb;    vb->avail= newlen;  }  adns__vbuf_appendq(vb,data,len);  return 1;}int adns__vbuf_appendstr(vbuf *vb, const char *data) {  int l;  l= strlen(data);  return adns__vbuf_append(vb,data,l);}void adns__vbuf_free(vbuf *vb) {  free(vb->buf);  adns__vbuf_init(vb);}/* Additional diagnostic functions */const char *adns__diag_domain(adns_state ads, int serv, adns_query qu,			      vbuf *vb, const byte *dgram, int dglen, int cbyte) {  adns_status st;  st= adns__parse_domain(ads,serv,qu,vb, pdf_quoteok, dgram,dglen,&cbyte,dglen);  if (st == adns_s_nomemory) {    return "<cannot report domain... out of memory>";  }  if (st) {    vb->used= 0;    if (!(adns__vbuf_appendstr(vb,"<bad format... ") &&	  adns__vbuf_appendstr(vb,adns_strerror(st)) &&	  adns__vbuf_appendstr(vb,">") &&	  adns__vbuf_append(vb,"",1))) {      return "<cannot report bad format... out of memory>";    }  }  if (!vb->used) {    adns__vbuf_appendstr(vb,"<truncated ...>");    adns__vbuf_append(vb,"",1);  }  return vb->buf;}adns_status adns_rr_info(adns_rrtype type,			 const char **rrtname_r, const char **fmtname_r,			 int *len_r,			 const void *datap, char **data_r) {  const typeinfo *typei;  vbuf vb;  adns_status st;  typei= adns__findtype(type);  if (!typei) return adns_s_unknownrrtype;  if (rrtname_r) *rrtname_r= typei->rrtname;  if (fmtname_r) *fmtname_r= typei->fmtname;  if (len_r) *len_r= typei->rrsz;  if (!datap) return adns_s_ok;    adns__vbuf_init(&vb);  st= typei->convstring(&vb,datap);  if (st) goto x_freevb;  if (!adns__vbuf_append(&vb,"",1)) { st= adns_s_nomemory; goto x_freevb; }  assert(strlen(vb.buf) == vb.used-1);  *data_r= realloc(vb.buf,vb.used);  if (!*data_r) *data_r= vb.buf;  return adns_s_ok; x_freevb:  adns__vbuf_free(&vb);  return st;}#define SINFO(n,s) { adns_s_##n, #n, s }static const struct sinfo {  adns_status st;  const char *abbrev;  const char *string;} sinfos[]= {  SINFO(  ok,                  "OK"                                            ),  SINFO(  nomemory,            "Out of memory"                                 ),  SINFO(  unknownrrtype,       "Query not implemented in DNS library"          ),  SINFO(  systemfail,          "General resolver or system failure"            ),  SINFO(  timeout,             "DNS query timed out"                           ),  SINFO(  allservfail,         "All nameservers failed"                        ),  SINFO(  norecurse,           "Recursion denied by nameserver"                ),  SINFO(  invalidresponse,     "Nameserver sent bad response"                  ),  SINFO(  unknownformat,       "Nameserver used unknown format"                ),  SINFO(  rcodeservfail,       "Nameserver reports failure"                    ),  SINFO(  rcodeformaterror,    "Query not understood by nameserver"            ),  SINFO(  rcodenotimplemented, "Query not implemented by nameserver"           ),  SINFO(  rcoderefused,        "Query refused by nameserver"                   ),  SINFO(  rcodeunknown,        "Nameserver sent unknown response code"         ),    SINFO(  inconsistent,        "Inconsistent resource records in DNS"          ),  SINFO(  prohibitedcname,     "DNS alias found where canonical name wanted"   ),  SINFO(  answerdomaininvalid, "Found syntactically invalid domain name"       ),  SINFO(  answerdomaintoolong, "Found overly-long domain name"                 ),  SINFO(  invaliddata,         "Found invalid DNS data"                        ),  SINFO(  querydomainwrong,    "Domain invalid for particular DNS query type"  ),  SINFO(  querydomaininvalid,  "Domain name is syntactically invalid"          ),  SINFO(  querydomaintoolong,  "Domain name or component is too long"          ),  SINFO(  nxdomain,            "No such domain"                                ),  SINFO(  nodata,              "No such data"                                  )};static int si_compar(const void *key, const void *elem) {  const adns_status *st= key;  const struct sinfo *si= elem;  return *st < si->st ? -1 : *st > si->st ? 1 : 0;}static const struct sinfo *findsinfo(adns_status st) {  return bsearch(&st,sinfos,sizeof(sinfos)/sizeof(*sinfos),sizeof(*sinfos),si_compar);}const char *adns_strerror(adns_status st) {  const struct sinfo *si;  si= findsinfo(st);  return si->string;}const char *adns_errabbrev(adns_status st) {  const struct sinfo *si;  si= findsinfo(st);  return si->abbrev;}#define STINFO(max) { adns_s_max_##max, #max }static const struct stinfo {  adns_status stmax;  const char *abbrev;} stinfos[]= {  { adns_s_ok, "ok" },  STINFO(  localfail   ),  STINFO(  remotefail  ),  STINFO(  tempfail    ),  STINFO(  misconfig   ),  STINFO(  misquery    ),  STINFO(  permfail    )};static int sti_compar(const void *key, const void *elem) {  const adns_status *st= key;  const struct stinfo *sti= elem;  adns_status here, min, max;  here= *st;  min= (sti==stinfos) ? 0 : sti[-1].stmax+1;  max= sti->stmax;    return here < min  ? -1 : here > max ? 1 : 0;}const char *adns_errtypeabbrev(adns_status st) {  const struct stinfo *sti;  sti= bsearch(&st,stinfos,sizeof(stinfos)/sizeof(*stinfos),sizeof(*stinfos),sti_compar);  return sti->abbrev;}void adns__isort(void *array, int nobjs, int sz, void *tempbuf,		 int (*needswap)(void *context, const void *a, const void *b),		 void *context) {  byte *data= array;  int i, place;  for (i=0; i<nobjs; i++) {    for (place= i;	 place>0 && needswap(context, data + (place-1)*sz, data + i*sz);	 place--);    if (place != i) {      memcpy(tempbuf, data + i*sz, sz);      memmove(data + (place+1)*sz, data + place*sz, (i-place)*sz);      memcpy(data + place*sz, tempbuf, sz);    }  }}/* SIGPIPE protection. */void adns__sigpipe_protect(adns_state ads) {  sigset_t toblock;  struct sigaction sa;  int r;  if (ads->iflags & adns_if_nosigpipe) return;  sigfillset(&toblock);  sigdelset(&toblock,SIGPIPE);  sa.sa_handler= SIG_IGN;  sigfillset(&sa.sa_mask);  sa.sa_flags= 0;    r= sigprocmask(SIG_SETMASK,&toblock,&ads->stdsigmask); assert(!r);  r= sigaction(SIGPIPE,&sa,&ads->stdsigpipe); assert(!r);}void adns__sigpipe_unprotect(adns_state ads) {  int r;  if (ads->iflags & adns_if_nosigpipe) return;  r= sigaction(SIGPIPE,&ads->stdsigpipe,0); assert(!r);  r= sigprocmask(SIG_SETMASK,&ads->stdsigmask,0); assert(!r);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看视频欧美| 国产精品国产精品国产专区不蜜| 欧美精品一区二区精品网| 国产精品三级视频| 毛片av一区二区三区| 91视频国产资源| 国产婷婷一区二区| 毛片av一区二区| 欧美久久久久中文字幕| 国产精品福利一区二区三区| 久久se这里有精品| 日韩一区二区三区电影在线观看| 亚洲三级久久久| 成人v精品蜜桃久久一区| 欧美一区二区美女| 性欧美疯狂xxxxbbbb| 色综合网色综合| 日韩一区在线看| 成人性生交大片| 国产视频911| 毛片一区二区三区| 日韩一级欧美一级| 免费一区二区视频| 91精选在线观看| 日韩二区在线观看| 777亚洲妇女| 毛片av中文字幕一区二区| 欧美男女性生活在线直播观看| 亚洲欧美日韩精品久久久久| aaa国产一区| 中文字幕人成不卡一区| 播五月开心婷婷综合| 欧美国产欧美综合| 99久久99久久精品国产片果冻| 欧美激情艳妇裸体舞| 99在线精品免费| 日韩美女啊v在线免费观看| www.欧美日韩| 一区二区日韩av| 欧美群妇大交群的观看方式| 偷偷要91色婷婷| 日韩欧美视频一区| 国产精品88av| 亚洲色图.com| 欧美一区二区网站| 麻豆视频一区二区| 中文在线一区二区| 欧美视频日韩视频在线观看| 日产欧产美韩系列久久99| 欧美成人精品1314www| 国产精品亚洲专一区二区三区| 国产精品私房写真福利视频| 色综合天天综合网国产成人综合天 | 男人的天堂久久精品| 精品动漫一区二区三区在线观看| 国产.欧美.日韩| 亚洲一区自拍偷拍| 26uuu亚洲综合色欧美| voyeur盗摄精品| 图片区日韩欧美亚洲| 国产亚洲美州欧州综合国| 91免费看片在线观看| 青青草成人在线观看| 国产精品久久久久aaaa樱花| 欧美综合视频在线观看| 黑人巨大精品欧美黑白配亚洲| 亚洲国产电影在线观看| 欧美日韩在线一区二区| 国产高清精品久久久久| 亚洲国产视频在线| 亚洲国产高清不卡| 欧美精品丝袜久久久中文字幕| 国产精品1区二区.| 午夜a成v人精品| 专区另类欧美日韩| 久久综合色一综合色88| 欧美日韩一区二区三区在线| 国产精品18久久久久久vr| 亚洲午夜在线观看视频在线| 欧美国产日产图区| 日韩免费在线观看| 在线观看国产日韩| 大胆亚洲人体视频| 久久精品免费观看| 偷拍亚洲欧洲综合| 亚洲精品美国一| 久久精品欧美一区二区三区麻豆| 欧美日韩国产高清一区二区三区 | 成人av在线影院| 久久精品国产99国产精品| 亚洲精品成人精品456| 欧美国产日韩精品免费观看| 日韩精品一区二区三区蜜臀| 欧美日韩亚洲综合在线 | 日韩国产成人精品| 亚洲一级在线观看| 国产精品伦理在线| 中文字幕av资源一区| 中文字幕+乱码+中文字幕一区| 日韩精品一区二区三区视频在线观看| 欧美午夜寂寞影院| 日本丶国产丶欧美色综合| av一区二区三区在线| 成人性色生活片| 粉嫩13p一区二区三区| 国产精品亚洲一区二区三区妖精| 韩国av一区二区三区在线观看| 日本欧美久久久久免费播放网| 五月婷婷色综合| 日本欧美肥老太交大片| 日本亚洲欧美天堂免费| 麻豆久久一区二区| 紧缚捆绑精品一区二区| 国产一区免费电影| 国产91丝袜在线播放九色| 大桥未久av一区二区三区中文| 福利一区二区在线| 成人一级片在线观看| www.久久精品| 一本大道av伊人久久综合| 在线精品视频一区二区| 欧美丰满美乳xxx高潮www| 欧美疯狂性受xxxxx喷水图片| 欧美日韩高清影院| 精品精品国产高清一毛片一天堂| 日韩免费高清av| 国产亚洲欧美一区在线观看| 欧美激情一区在线| 一区二区成人在线观看| 午夜精品免费在线| 国产美女精品人人做人人爽| av在线不卡免费看| 欧美体内she精视频| 精品欧美黑人一区二区三区| 国产日韩欧美精品一区| 亚洲猫色日本管| 青青草伊人久久| 国产v日产∨综合v精品视频| 91美女在线看| 日韩一区二区三区电影在线观看| 久久精品日产第一区二区三区高清版| 中文字幕日韩一区二区| 日韩高清国产一区在线| 国产精品一区二区你懂的| 91在线观看高清| 日韩免费高清视频| 亚洲欧美日韩在线不卡| 久久99热99| 91老司机福利 在线| 欧美成人一区二区| 亚洲视频综合在线| 免费观看日韩电影| 色又黄又爽网站www久久| 日韩午夜精品视频| 亚洲女人的天堂| 精品在线免费视频| 日本韩国欧美一区| 久久久高清一区二区三区| 婷婷开心激情综合| 成人av资源在线| 欧美www视频| 亚洲综合色区另类av| 国产成人精品aa毛片| 67194成人在线观看| 亚洲免费观看高清完整版在线观看熊| 久久精品国产精品亚洲精品| 91蜜桃网址入口| 久久久久久麻豆| 日本成人在线电影网| 日本精品一区二区三区四区的功能| 日韩欧美精品在线视频| 亚洲第四色夜色| 日本高清不卡在线观看| 亚洲国产精品成人综合 | 琪琪一区二区三区| 欧美日韩一区二区三区免费看| 国产精品欧美久久久久一区二区| 老司机精品视频在线| 欧美精选一区二区| 亚洲精品乱码久久久久久黑人| 国产成人av一区二区三区在线| 欧美喷潮久久久xxxxx| 亚洲在线视频一区| 91美女在线看| 亚洲欧美另类小说| 波多野结衣中文一区| 国产精品久久久久久久久快鸭 | 一区二区三区中文在线观看| 国产成人h网站| 久久精品视频免费| 国产剧情一区在线| 久久久美女艺术照精彩视频福利播放| 老司机精品视频在线| 日韩美一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 91精品国产91久久久久久最新毛片| 午夜在线成人av| 91精品国产综合久久久久久久久久 | 亚洲自拍与偷拍| 欧美午夜精品久久久久久孕妇 |