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

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

?? dns-te~1.cc

?? 100 病毒源碼,原始碼,無毒 ......
?? CC
?? 第 1 頁 / 共 2 頁
字號:
    for (from = after; from != end;)      *to++ = *from++;    lp->lenafter = after_len + 1;    if (before_len) {      lp->logbefore = ++to;      end = before + before_len;	// Sentinel again.      for (from = before; from != end;)	*to++ = *from++;    }    lp->lenbefore = before_len;  }  return lp;}// Read DB entries created by earlier runs into reslist,// marked as 'not new' (false).// If skipempty is true, do not read in negative cache entries.voidread_db(DatedStringDb *table, BoolStringMap &reslist, bool skipempty){  DatedStringDbCursor *iterator = new DatedStringDbCursor(table);  char *key, *data;  time_t when;  int inserted = 0;  while (iterator->get(&key, &data, DB_NEXT, &when) == 0)    {      if (*data || !skipempty) {	BoolString k(key, false), v(data, false);	reslist[k] = v;	++inserted;      }    }  iterator->close();  if (verbose)    fprintf(stderr, "read %d addresses from DB file\n", inserted);}// Write out new entries to the DB file.voidstore_db(DatedStringDb *table, BoolStringMap &reslist){  BoolStringMap::iterator it;  char *key, *data;  time_t when;  int added = 0;  time(&when);  for (it = reslist.begin(); it != reslist.end(); it++) {    BoolString ipaddr = (*it).first, value = (*it).second;    if (value.get_flag()) {      if (verbose > 1)	fprintf(stderr, "%s new address\n", ipaddr.get_str());      try	{	  table->put(ipaddr.get_str(), value.get_str(), &when);	}      catch (DbException &dbe)	{	  fprintf(stderr, "DB error storing (%s,%s): %s\n",		  ipaddr.get_str(), value.get_str(), dbe.what());	}      ++added;      value.set_flag(false);    }  }  table->sync();  if (verbose)    fprintf(stderr, "added %d addresses to DB file\n", added);}voidusage(char *prog){  fprintf(stderr,	  "Usage: %s [-v...] [-orsz] [-d db-file] [-c adns-conf-str] [-m mark-size] [-p parallel-queries] [-f skip-fields]\n",	  prog);  exit(1);}int main(int argc, char *const *argv){  adns_state ads;  int r;  adns_initflags aflags;  int outstanding = 0;  size_t qsize;  gzFile zout = NULL;  adns_query qu;  adns_answer *ans;  DatedStringDb *resolved;  BoolStringMap reslist;  LogEntryQue lq;  char *dbhome = NULL;  char *dbfile = DEFAULT_DBFILE;  char *adnsconf = NULL;  long marksize = 0, lastmark = -1;  bool syncmark = false;  bool copylines = false;  bool reresolve = false;  int skip_fields = 0;  int parallel_queries = DEFAULT_PARALLEL_QUERIES;  QueryStats stats;  LogEntry *lp;  char *dom;  program_name = argv[0];  while ((r = getopt(argc, argv, "c:d:f:m:op:rsvz")) != -1) {    switch (r) {    case 'c':      adnsconf = optarg;      break;    case 'd':      dbfile = optarg;      break;    case 'f':      skip_fields = atoi(optarg);      break;    case 'm':      marksize = atol(optarg);      break;    case 'o':      copylines = true;      break;    case 'p':      parallel_queries = atoi(optarg);      break;    case 'r':      reresolve = true;      break;    case 's':      syncmark = true;      break;    case 'v':      verbose++;      break;    case 'z':      zout = gzdopen(1, "wb");      if (!zout) {	fprintf(stderr, "%s: fatal error: %s: %s\n",		program_name, "gzdopen", strerror(errno));	exit(1);      }      break;    default:      usage(argv[0]);      break;    }  }  // We get back here when terminating abnormally.  r = setjmp(getback);  if (r == 1)    goto out;  else if (r == 2) {    if (copylines) {      if (zout) {	if (lp->lenbefore)	  gzwrite(zout, lp->logbefore, lp->lenbefore);	gzputs(zout, lp->ipaddr);	gzwrite(zout, lp->logafter, lp->lenafter);      } else {	if (lp->lenbefore)	  fwrite(lp->logbefore, lp->lenbefore, 1, stdout);	fputs(lp->ipaddr, stdout);	fwrite(lp->logafter, lp->lenafter, 1, stdout);      }    }    goto timed_out;  }  if (verbose > 2)    aflags = (adns_initflags) adns_if_debug;  else    aflags = (adns_initflags) 0;  if (adnsconf)    r = adns_init_strcfg(&ads, aflags, stderr, adnsconf);  else    r = adns_init(&ads, aflags, stderr);  if (r)    fatal_errno("adns_init", r);  try    {      resolved = new DatedStringDb(dbhome, *dbfile ? dbfile : NULL);      set_handlers();      if (*dbfile)	read_db(resolved, reslist, reresolve);      else	stats.cached = -1;    }  catch (DbException &dbe)    {      fprintf(stderr, "DB error opening %s: %s\n",	      *dbfile ? dbfile : "memory DB", dbe.what());      exit(1);    }  if (copylines)    parallel_queries *= COPYLINES_MULTIPLIER;  while ((lp = read_ipaddr(stdin, copylines, skip_fields))) {    ++stats.linesread;    if (marksize && stats.linesread % marksize == 0) {      if (copylines)	fprintf(stderr, "On line %ld, %d queries outstanding, %d lines buffered\n",		stats.linesread, outstanding, lq.size());      else	fprintf(stderr, "On line %ld, %d queries outstanding\n",		stats.linesread, outstanding);      if (syncmark && *dbfile)	store_db(resolved, reslist);    }    if (reopen && *dbfile) {      if (verbose) {	fprintf(stderr, "%s: received hangup signal; reopening DB file\n", program_name);      }      try	{	  delete resolved;	  resolved = new DatedStringDb(dbhome, dbfile);	}      catch (DbException &dbe)	{	  fprintf(stderr, "DB error reopening %s: %s\n",		  dbfile, dbe.what());	  exit(1);	}      store_db(resolved, reslist);      reopen = 0;    }    // When doing copylines:    // We need to save the log files for all entries,    // not just those that we submit.  The log line must be    // in the deque.    //    // When we read a log file entry to enqueue it, the following    // situations are possible:    // 0. The IP address field is syntactically invalid.    //    There is no answer cached in the map.    //    We don't need a query ID (assume it's 0).    // 1. The answer is cached in the map, and is not "?".    //    We don't need a query ID (assume it's 0).    // 2. The answer is cached in the map, and is "?", meaning    //    that the query is in process for some earlier entry.    //    By the time we dequeue this entry, the earlier entry will    //    have been written out, so the answer will be in the map.    //    We don't need a query ID (assume it's 0).    // 3. The answer is not in the map.  We need to submit a    //    new query for it and save the query ID.    //    // When we dequeue a log file entry, the following    // situations are possible:    // 0. The query ID is 0 and there's no answer in the map,    //    so the IP address is syntactically invalid.    //    We can write out the line.    // 1. The query ID is 0.  We know the answer is in the map,    //    and is not "?".  We can write out the line.    // 2. The query ID is not 0.  The query is in process.    //    We need to wait on the query ID for it.    switch (submit_query(ads, reslist, lp)) {    case sb_invalid:      ++stats.invalid;      break;    case sb_pending:      break;    case sb_known:      break;    case sb_cached:      ++stats.cached;      break;    case sb_submitted:      ++outstanding;      ++stats.submitted;      break;    }    if (copylines)      lq.push_back(lp);    // The goal is to keep the query pipeline full, so only pick off    // one answer.    if (copylines)      assert(lq.size() <= parallel_queries);    else      assert(outstanding <= parallel_queries);    if (copylines ? (lq.size() == parallel_queries) : (outstanding == parallel_queries)) {      if (copylines) {	lp = lq[0];	lq.pop_front();	qu = lp->qu;      } else {	qu = 0;      }      if (qu || !copylines) {	// It would be best if the answer were always ready here, so the	// adns_wait call wouldn't block.  That would happen if the time	// it takes to generate a full pipeline of queries were equal to	// (or greater than, though that wouldn't help) the maximum time it	// takes to get back a response (or timeout).  Otherwise, the	// pipeline will stall.	//	// For example, with the default (-p 1000) for -o of 20,000 lines	// buffered, there may be about 800 queries outstanding.	// On a Pentium III/500, we can generate about 1400 queries per second.	// If we set udpmaxretries:4 for an 8 second timeout, then we	// may generate no more than 800/8=100 queries per second to	// avoid all pipeline stalls on timeouts.  8*1400=11200; round to 12000.	// -p 12000 will give better performance assuming you have enough RAM.	//	// Even if you get the main loop optimal, the pipeline will	// probably stall during the drain time at the end.	r = adns_wait(ads, &qu, &ans, (void **) &lp);	if (r)	  fatal_errno("adns_wait", r);	dom = process_answer(ans, lp->ipaddr, reslist);	if (*dom)	  ++stats.successful;	--outstanding;      } else {	// It's already in the list.	BoolString key(lp->ipaddr, false), value;	BoolStringMap::iterator	it = reslist.find(key);	if (it != reslist.end()) {	  value = (*it).second;	  dom = value.get_str();	} else {	  // For a syntactically invalid IP address, there's no answer.	  // Print it unchanged.	  dom = lp->ipaddr;	}	ans = NULL;      }      if (copylines) {	if (zout) {	  if (lp->lenbefore)	    gzwrite(zout, lp->logbefore, lp->lenbefore);	  gzputs(zout, *dom ? dom : lp->ipaddr);	  gzwrite(zout, lp->logafter, lp->lenafter);	} else {	  if (lp->lenbefore)	    fwrite(lp->logbefore, lp->lenbefore, 1, stdout);	  fputs(*dom ? dom : lp->ipaddr, stdout);	  fwrite(lp->logafter, lp->lenafter, 1, stdout);	}      }      if (ans)	free(ans);      free(lp);    }  }  if (verbose || marksize) {    fprintf(stderr, "Read last line %ld, %d queries outstanding\n",	    stats.linesread, outstanding);    if (syncmark && *dbfile)      store_db(resolved, reslist);  }  // Pick up the stragglers; let the pipeline drain.  if (marksize) {    marksize = outstanding / 10;    if (!marksize)      marksize = 1;  }  while (copylines ? ((qsize = lq.size()) > 0) : (outstanding > 0)) {    if (marksize && outstanding % marksize == 0 && outstanding != lastmark) {      lastmark = outstanding;      if (copylines)	fprintf(stderr, "%d queries outstanding, %d lines buffered\n",		outstanding, (int) qsize);      else	fprintf(stderr, "%d queries outstanding\n", outstanding);    }    // Yes, the body of this loop is identical to the inner loop above.    // I can't think of an easy way to roll them together, given all    // the variables they use.    if (copylines) {      lp = lq[0];      lq.pop_front();      qu = lp->qu;    } else {      qu = 0;    }    if (qu || !copylines) {      r = adns_wait(ads, &qu, &ans, (void **) &lp);      if (r)	fatal_errno("adns_wait", r);      dom = process_answer(ans, lp->ipaddr, reslist);      if (*dom)	++stats.successful;      --outstanding;    } else {      // It's already in the list.      BoolString key(lp->ipaddr, false), value;      BoolStringMap::iterator it = reslist.find(key);      if (it != reslist.end()) {	value = (*it).second;	dom = value.get_str();      } else {	dom = lp->ipaddr;      }      ans = NULL;    }    if (copylines) {      if (zout) {	if (lp->lenbefore)	  gzwrite(zout, lp->logbefore, lp->lenbefore);	gzputs(zout, *dom ? dom : lp->ipaddr);	gzwrite(zout, lp->logafter, lp->lenafter);      } else {	if (lp->lenbefore)	  fwrite(lp->logbefore, lp->lenbefore, 1, stdout);	fputs(*dom ? dom : lp->ipaddr, stdout);	fwrite(lp->logafter, lp->lenafter, 1, stdout);      }    }    if (ans)      free(ans);    free(lp);  } timed_out:  if (*dbfile)    store_db(resolved, reslist); out:  if (zout)    gzclose(zout);  try    {      resolved->close();    }  catch (DbException &dbe)    {      fprintf(stderr, "DB error closing %s: %s\n",	      *dbfile ? dbfile : "memory DB", dbe.what());    }  adns_finish(ads);  stats.print();  exit (0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品无人码麻豆乱码1区2区| 91精品福利视频| 色欧美日韩亚洲| 2024国产精品| 亚洲一级电影视频| 成人精品电影在线观看| 欧美mv和日韩mv的网站| 亚洲综合色婷婷| 成人深夜视频在线观看| 91精品国产一区二区三区| 一区二区三区四区蜜桃| 不卡影院免费观看| 久久久久亚洲综合| 久久av资源站| 日韩久久久久久| 日韩成人免费电影| 欧美美女一区二区| 亚洲午夜私人影院| 91老司机福利 在线| 国产精品久久久一本精品| 国产精品18久久久久久vr| 欧美一区二区三区不卡| 日日摸夜夜添夜夜添精品视频| 在线免费精品视频| 亚洲精品成人精品456| 91首页免费视频| 亚洲女人的天堂| 色综合亚洲欧洲| 亚洲人精品午夜| 91久久精品网| 香蕉加勒比综合久久| 欧美日韩中文精品| 青青草97国产精品免费观看| 欧美人狂配大交3d怪物一区| 午夜视频一区二区| 日韩欧美在线观看一区二区三区| 日韩在线一区二区| 日韩三级视频在线看| 日韩激情视频在线观看| 日韩精品影音先锋| 国产美女精品人人做人人爽| 国产亚洲精品7777| 99久久精品情趣| 亚洲国产你懂的| 日韩女优毛片在线| 国产精品一区一区三区| 国产精品国产a| 91黄视频在线观看| 亚洲成av人影院在线观看网| 欧美一二三区精品| 国产成人一级电影| 亚洲婷婷综合色高清在线| 91九色02白丝porn| 卡一卡二国产精品| 亚洲国产精品ⅴa在线观看| 91麻豆国产福利在线观看| 亚洲.国产.中文慕字在线| 欧美大片一区二区| 99热精品一区二区| 偷拍日韩校园综合在线| 亚洲精品一区二区三区99| 成人的网站免费观看| 亚洲成a人在线观看| 久久―日本道色综合久久| 一本到不卡免费一区二区| 久久不见久久见免费视频7 | 国产成人欧美日韩在线电影| 久久精品视频免费| 欧美日韩精品电影| 国产精品白丝jk白祙喷水网站 | 亚洲综合在线免费观看| 欧美一二三区在线观看| 91一区在线观看| 九九精品一区二区| 亚洲永久精品国产| 久久久噜噜噜久噜久久综合| 色综合天天综合色综合av | 亚洲一区二区三区在线| 日韩一级欧美一级| 99国内精品久久| 另类人妖一区二区av| 亚洲精品ww久久久久久p站| 欧美精品一区二区三| 欧美综合一区二区三区| 国产a级毛片一区| 六月丁香综合在线视频| 亚洲丰满少妇videoshd| 国产精品久久久久天堂| 日韩欧美国产精品| 欧美美女视频在线观看| 色婷婷av一区二区| 高清不卡在线观看av| 久久99热这里只有精品| 性做久久久久久免费观看| 亚洲女同女同女同女同女同69| 久久久综合视频| 日韩欧美久久久| 日韩免费在线观看| 3d成人动漫网站| 欧美绝品在线观看成人午夜影视| 粉嫩绯色av一区二区在线观看 | 亚洲一区二区视频在线| 亚洲国产精品激情在线观看| 精品国产免费人成在线观看| 欧美福利一区二区| 精品视频色一区| 欧美三级蜜桃2在线观看| 在线观看不卡一区| 在线观看亚洲成人| 欧美在线短视频| 欧美无乱码久久久免费午夜一区| 99久久99久久综合| 93久久精品日日躁夜夜躁欧美| 成人综合在线网站| 99久久免费视频.com| 成人网页在线观看| 99精品久久免费看蜜臀剧情介绍| 成人黄色小视频在线观看| 成人午夜激情影院| 91色在线porny| 欧美性受xxxx| 日韩一卡二卡三卡四卡| 精品国产区一区| 国产亚洲精品中文字幕| 中文字幕欧美激情| 亚洲欧美视频在线观看视频| 亚洲精品菠萝久久久久久久| 午夜电影一区二区三区| 日韩电影在线免费| 国产馆精品极品| 色94色欧美sute亚洲线路二| 欧美日韩在线免费视频| 欧美一卡二卡三卡四卡| 国产亚洲污的网站| 亚洲乱码中文字幕综合| 偷拍日韩校园综合在线| 国产老妇另类xxxxx| 99国内精品久久| 91麻豆精品91久久久久久清纯| 欧美一区二区三级| 国产日韩欧美一区二区三区乱码| 国产精品成人免费在线| 亚洲成人自拍网| 国产久卡久卡久卡久卡视频精品| 99精品久久只有精品| 欧美亚洲综合网| 久久综合久久综合久久| 亚洲欧美日韩系列| 精品一区二区三区在线视频| www.在线欧美| 欧美一级片在线| 亚洲欧美日韩在线| 国产综合久久久久影院| 在线观看欧美黄色| 久久精品水蜜桃av综合天堂| 亚洲成在人线免费| 成人白浆超碰人人人人| 91精品国产品国语在线不卡| 国产精品国产自产拍在线| 热久久久久久久| 色综合久久88色综合天天免费| 精品国产乱码久久久久久夜甘婷婷| 亚洲欧洲日产国产综合网| 久久er精品视频| 欧美日韩在线三区| 亚洲少妇最新在线视频| 国产一区二区调教| 欧美日韩免费观看一区二区三区| 国产欧美日韩另类一区| 欧美aⅴ一区二区三区视频| 99re成人精品视频| 国产欧美一区二区精品婷婷| 日韩黄色小视频| 欧美日韩小视频| 亚洲综合偷拍欧美一区色| 成人理论电影网| 久久久亚洲高清| 久久精品久久综合| 欧美日韩国产天堂| 亚洲综合图片区| 色婷婷综合久色| 中文字幕精品在线不卡| 国产乱国产乱300精品| 日韩一区二区中文字幕| 亚洲不卡在线观看| 欧美日韩国产高清一区二区三区 | 欧美三区免费完整视频在线观看| 国产精品青草综合久久久久99| 精品亚洲成av人在线观看| 91精品欧美一区二区三区综合在 | 日韩免费福利电影在线观看| 天天综合日日夜夜精品| 欧美影院一区二区| 亚洲影院免费观看| 欧美日韩国产小视频在线观看| 亚洲综合网站在线观看| 欧美在线不卡一区| 午夜精品久久一牛影视| 91.麻豆视频| 久久99国产乱子伦精品免费|