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

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

?? toolutils.cc

?? Click is a modular router toolkit. To use it you ll need to know how to compile and install the sof
?? CC
字號:
/* * toolutils.{cc,hh} -- utility routines for tools * Eddie Kohler * * Copyright (c) 1999-2000 Massachusetts Institute of Technology * Copyright (c) 2000 Mazu Networks, Inc. * Copyright (c) 2009 Meraki, Inc. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), * to deal in the Software without restriction, subject to the conditions * listed in the Click LICENSE file. These conditions include: you must * preserve this copyright notice, and you cannot mention the copyright * holders in advertising related to the Software without their permission. * The Software is provided WITHOUT ANY WARRANTY, EXPRESS OR IMPLIED. This * notice is a summary of the Click LICENSE file; the license in that file is * legally binding. */#include <click/config.h>#include <click/straccum.hh>#include <click/bitvector.hh>#include "routert.hh"#include "lexert.hh"#include "toolutils.hh"#include <click/confparse.hh>#include <click/variableenv.hh>#include <errno.h>#include <string.h>#include <time.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <signal.h>#include <dirent.h>#include <stdarg.h>VariableEnvironment global_scope(0);bool ignore_line_directives = false;intclick_maybe_define(const char *arg, ErrorHandler *errh){    for (const char *s = arg; *s; s++)	if (*s == '=' && s > arg) {	    if (!global_scope.define(String(arg, s), s + 1, true)) {		if (errh)		    errh->error("parameter %<%.*s%> multiply defined", s - arg, arg);		return -1;	    } else		return 1;	} else if (!isalnum((unsigned char) *s) && *s != '_')	    break;    return 0;}RouterT *read_router_string(String text, const String &landmark, bool empty_ok,		   ErrorHandler *errh){    // check for archive    Vector<ArchiveElement> archive;    if (text.length() && text[0] == '!') {	ArchiveElement::parse(text, archive, errh);	if (ArchiveElement *ae = ArchiveElement::find(archive, "config"))	    text = ae->data;	else {	    errh->lerror(landmark, "archive has no %<config%> section");	    text = String();	}    }  // read router  if (!text.length() && !empty_ok)    errh->lwarning(landmark, "empty configuration");  LexerT lexer(errh, ignore_line_directives);  lexer.reset(text, archive, landmark);  // read statements  while (lexer.ystatement())    /* nada */;  // done  return lexer.finish(global_scope);}RouterT *read_router_string(const String &text, const String &landmark, ErrorHandler *errh){  return read_router_string(text, landmark, false, errh);}RouterT *read_router_file(const char *filename, bool empty_ok, ErrorHandler *errh){  if (!errh)    errh = ErrorHandler::silent_handler();  // read file string  int old_nerrors = errh->nerrors();  String s = file_string(filename, errh);  if (!s && errh->nerrors() != old_nerrors)    return 0;  return read_router_string(s, filename_landmark(filename), empty_ok, errh);}RouterT *read_router_file(const char *filename, ErrorHandler *errh){  return read_router_file(filename, false, errh);}RouterT *read_router(const String &whatever, bool is_expr, ErrorHandler *errh){  if (is_expr)    return read_router_string(whatever, "config", errh);  else    return read_router_file(whatever.c_str(), false, errh);}voidwrite_router_file(RouterT *r, FILE *f, ErrorHandler *errh){  if (!r)    return;  String config_str = r->configuration_string();  // create archive if necessary  const Vector<ArchiveElement> &archive = r->archive();  if (archive.size()) {    Vector<ArchiveElement> narchive;    // add configuration    ArchiveElement config_ae;    config_ae.name = "config";    config_ae.date = time(0);    config_ae.uid = geteuid();    config_ae.gid = getegid();    config_ae.mode = 0644;    config_ae.data = config_str;    narchive.push_back(config_ae);    // add other archive elements    for (int i = 0; i < archive.size(); i++)      if (archive[i].live() && archive[i].name != "config")	narchive.push_back(archive[i]);    if (narchive.size() > 1)      config_str = ArchiveElement::unparse(narchive, errh);  }  ignore_result(fwrite(config_str.data(), 1, config_str.length(), f));}intwrite_router_file(RouterT *r, const char *name, ErrorHandler *errh){  if (name && strcmp(name, "-") != 0) {    FILE *f = fopen(name, "wb");    if (!f) {      if (errh)	errh->error("%s: %s", name, strerror(errno));      return -1;    }    write_router_file(r, f, errh);    fclose(f);  } else    write_router_file(r, stdout, errh);  return 0;}Stringxml_quote(const String &str){    const char *s = str.data();    const char *ends = s + str.length();    const char *first = s;    StringAccum sa;    for (; s < ends; s++)	if (*s == '&' || *s == '<' || *s == '\"') {	    sa.append(first, s - first);	    sa << '&' << (*s == '&' ? "amp" : (*s == '<' ? "lt" : "quot")) << ';';	    first = s + 1;	}    if (sa) {	sa.append(first, s - first);	return sa.take_string();    } else	return str;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本欧美一区二区三区| 亚洲色图视频网| 欧美中文字幕一区| 色综合av在线| 色综合久久天天| 91污片在线观看| 99久久精品免费| 91影院在线免费观看| 色综合天天综合网国产成人综合天 | 一区二区三区不卡视频| 亚洲色图视频网站| 亚洲制服丝袜av| 午夜电影网一区| 免费国产亚洲视频| 国产福利一区二区三区在线视频| 激情成人综合网| 粉嫩13p一区二区三区| 成人av手机在线观看| 一本一道久久a久久精品 | 亚洲一区二区视频在线| 亚洲综合一区二区精品导航| 舔着乳尖日韩一区| 国内精品久久久久影院薰衣草| 加勒比av一区二区| 国产91精品精华液一区二区三区 | 国产精品福利一区| 玉足女爽爽91| 午夜精品一区二区三区电影天堂| 日本vs亚洲vs韩国一区三区二区 | 男人的天堂亚洲一区| 国产一区二区三区免费在线观看 | 亚洲免费观看高清完整版在线| 一区二区理论电影在线观看| 丝袜脚交一区二区| 国产综合色视频| 色综合天天综合色综合av| 91精品一区二区三区久久久久久| 久久蜜桃香蕉精品一区二区三区| 日韩码欧中文字| 免费一级欧美片在线观看| 成人在线一区二区三区| 在线观看日韩电影| 国产欧美一区二区精品久导航| 亚洲激情五月婷婷| 国产在线精品不卡| 欧美人牲a欧美精品| 久久久亚洲欧洲日产国码αv| 综合av第一页| 国产在线乱码一区二区三区| 欧美一区二区免费观在线| 久久夜色精品国产欧美乱极品| 亚洲精品视频自拍| 国产成人无遮挡在线视频| 欧美狂野另类xxxxoooo| 精品粉嫩aⅴ一区二区三区四区| 亚洲乱码国产乱码精品精98午夜 | 激情六月婷婷综合| 欧美日韩三级视频| 亚洲欧美偷拍三级| 国产精品乡下勾搭老头1| 91麻豆精品国产| 亚洲女性喷水在线观看一区| 国产精品99久久久久久久女警 | 日韩一区二区免费视频| 伊人开心综合网| 不卡av在线免费观看| 久久久久九九视频| 精品亚洲成av人在线观看| 91精品国产高清一区二区三区蜜臀| ...中文天堂在线一区| 国产成人av电影| 国产亚洲欧美在线| 国产一区二区三区四区五区入口 | 久久精品99国产国产精| 制服丝袜成人动漫| 亚洲国产日韩一区二区| 在线观看91精品国产入口| 亚洲三级电影全部在线观看高清| 国产91丝袜在线观看| 国产日韩欧美精品综合| 国产a视频精品免费观看| 亚洲精品日产精品乱码不卡| 成人激情黄色小说| 综合色天天鬼久久鬼色| 色婷婷综合久久| 亚洲六月丁香色婷婷综合久久 | 国产精品免费aⅴ片在线观看| 国产精品正在播放| 国产日产欧美精品一区二区三区| 国产成人夜色高潮福利影视| 国产欧美日产一区| 99精品视频一区二区三区| 一区二区三区日韩在线观看| 欧美性三三影院| 日韩av电影免费观看高清完整版 | 97久久久精品综合88久久| 国产精品乱人伦一区二区| 91在线视频18| 亚洲成人第一页| 欧美一级一区二区| 国产裸体歌舞团一区二区| 国产精品美女视频| 欧美色中文字幕| 麻豆国产精品官网| 欧美激情综合五月色丁香| 91国内精品野花午夜精品 | 欧美大黄免费观看| 成人午夜碰碰视频| 亚洲与欧洲av电影| 亚洲精品在线观| av中文字幕不卡| 日韩精品免费视频人成| 欧美本精品男人aⅴ天堂| 成人污视频在线观看| 亚洲综合激情小说| 2024国产精品| 欧美日韩视频专区在线播放| 国产综合成人久久大片91| 亚洲欧洲综合另类| 欧美mv日韩mv亚洲| 日本高清不卡一区| 国产麻豆精品在线| 天天色 色综合| 国产精品视频第一区| 正在播放一区二区| 一本久久a久久免费精品不卡| 麻豆免费精品视频| 尤物视频一区二区| 久久久www成人免费毛片麻豆| 欧美色偷偷大香| 不卡的电视剧免费网站有什么| 免费高清成人在线| 一区二区三区四区av| 国产日韩成人精品| 精品av综合导航| 欧美精品一卡二卡| 一本一道久久a久久精品综合蜜臀| 六月丁香婷婷色狠狠久久| 亚洲自拍偷拍欧美| 日韩美女视频19| 国产亚洲短视频| 久久免费精品国产久精品久久久久| 欧美日韩一区二区欧美激情| 不卡的av在线| av中文字幕一区| 成人av电影在线播放| 国产一区二区电影| 精品一区二区三区影院在线午夜| 亚洲成人一二三| 亚洲综合激情小说| 亚洲综合一二三区| 一区二区三区丝袜| 亚洲午夜影视影院在线观看| 一区二区三区在线视频免费| 亚洲乱码中文字幕| 亚洲少妇屁股交4| 亚洲女同一区二区| 一区二区三区精密机械公司| 亚洲人妖av一区二区| 亚洲欧美区自拍先锋| 亚洲人成在线播放网站岛国| 亚洲免费观看在线视频| 亚洲精品欧美专区| 亚洲观看高清完整版在线观看 | 日韩三级电影网址| 精品国内二区三区| 精品久久久久久久一区二区蜜臀| 欧美一区二区三区视频免费播放| 欧美日本国产视频| 日韩美一区二区三区| 国产欧美中文在线| ㊣最新国产の精品bt伙计久久| 最新中文字幕一区二区三区| 一区二区三区日韩| 日本中文字幕不卡| 国产真实乱对白精彩久久| 国产91丝袜在线播放九色| 91免费看`日韩一区二区| 欧美日韩一区小说| 精品奇米国产一区二区三区| 国产日韩欧美激情| 一个色妞综合视频在线观看| 亚洲丶国产丶欧美一区二区三区| 免费黄网站欧美| 成人一级片在线观看| 欧洲一区在线电影| 欧美xxxxx牲另类人与| 国产精品福利影院| 午夜欧美大尺度福利影院在线看| 理论片日本一区| 99精品在线免费| 欧美大片一区二区三区| 国产精品久久久久久久久免费相片| 一区二区三区中文在线观看| 精品一区二区综合| 欧美大片免费久久精品三p| 国产精品天天看| 美女国产一区二区三区| 色综合久久综合中文综合网| 日韩欧美一区在线观看|