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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? br-json.c.svn-base

?? 嵌入式無線路由系統(tǒng)openwrt的web配置工具
?? SVN-BASE
字號:
/*
 * br-json. Brigde list in JSON format.
 *
 * Based on Bridge Utils, see <http://www.linuxfoundation.org/en/Net:Bridge>
 *
 * Copyright (C) 2000 Lennert Buytenhek
 * Copyright (C) 2008 OpenRB.com
 *
 * 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 of the License, 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, see <http://www.gnu.org/licenses/>.
 */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <linux/if_bridge.h>

#define MAX_BRIDGES 32
#define MAX_PORTS  32

int print_ifnames(const char *);
int get_stp(const char *);

int br_socket_fd;

int main(void) {
  int i, num, first = 1;
  char brname[IFNAMSIZ];
  int brindices[MAX_BRIDGES];
  unsigned long brargs[3] = { BRCTL_GET_BRIDGES, (unsigned long) brindices, MAX_BRIDGES };

  if ((br_socket_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
    fprintf(stderr, "Cannot init: %s", strerror(errno));
    return errno;
  }

  num = ioctl(br_socket_fd, SIOCGIFBR, brargs);
  if (num < 0) {
    fprintf(stderr, "Get bridge indices failed: %s", strerror(errno));
    return -errno;
  }

  printf("{");

  for (i = 0; i < num; i++) {
    if (!if_indextoname(brindices[i], brname)) {
      fprintf(stderr, "Get find name for brindex %d failed", brindices[i]);
      return -errno;
    }

    printf("%s\"%s\": {\"stp\": %d, \"ifnames\": [", (first ? "" : ", "), brname, get_stp(brname) );
    print_ifnames(brname);
    printf("]}");
    first = 0;
  }

  printf("}");
  return 0;
}

int print_ifnames(const char *brname) {
  int i, err, first = 1;
  struct ifreq ifr;
  char ifname[IFNAMSIZ];
  int ifindices[MAX_PORTS];
  unsigned long args[4] = { BRCTL_GET_PORT_LIST, (unsigned long) ifindices, MAX_PORTS, 0 };

  memset(ifindices, 0, sizeof(ifindices));
  strncpy(ifr.ifr_name, brname, IFNAMSIZ);
  ifr.ifr_data = (char *) &args;

  err = ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr);
  if (err < 0) {
    fprintf(stderr, "List ports for bridge %s failed: %s", brname, strerror(errno));
    return -errno;
  }

  for (i = 0; i < MAX_PORTS; i++) {
    if (!ifindices[i] || !if_indextoname(ifindices[i], ifname)) {
      continue;
    }

    printf("%s\"%s\"", (first ? "" : ", "), ifname);
    first = 0;
  }

  return 0;
}

int get_stp(const char *bridge) {
  struct ifreq ifr;
  struct __bridge_info i;
  unsigned long args[4] = { BRCTL_GET_BRIDGE_INFO, (unsigned long) &i, 0, 0 };

  strncpy(ifr.ifr_name, bridge, IFNAMSIZ);
  ifr.ifr_data = (char *) &args;

  if (ioctl(br_socket_fd, SIOCDEVPRIVATE, &ifr) < 0) {
    fprintf(stderr, "Can't get stp info for %s", bridge);
    return 0;
  }

  return i.stp_enabled;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线综合网| 亚洲丝袜美腿综合| 国产精品国产三级国产普通话蜜臀 | 成人黄页毛片网站| 欧美电影一区二区三区| 国产精品女同一区二区三区| 日韩中文字幕区一区有砖一区| 国产麻豆精品在线| 欧美老年两性高潮| 亚洲品质自拍视频网站| 国产白丝网站精品污在线入口| 91精品国产aⅴ一区二区| 亚洲欧美国产77777| 国产剧情av麻豆香蕉精品| 欧美精品v国产精品v日韩精品| 亚洲乱码国产乱码精品精小说| 国产精品夜夜爽| www激情久久| 精品一区二区三区在线播放视频| 欧美精品 国产精品| 一个色综合网站| 在线观看国产91| 亚洲黄色性网站| 色欧美日韩亚洲| 亚洲婷婷综合久久一本伊一区 | 91网上在线视频| 亚洲欧美在线高清| 99视频在线精品| 亚洲男同1069视频| 91色porny蝌蚪| 亚洲欧洲中文日韩久久av乱码| 成人av动漫在线| 亚洲同性同志一二三专区| av午夜精品一区二区三区| 中文字幕一区二区三区蜜月 | 精品中文av资源站在线观看| 91精品国产综合久久小美女| 免费在线视频一区| 日韩久久精品一区| 国产老女人精品毛片久久| 欧美一区二区国产| 成人av网站免费| 精品国产露脸精彩对白| 国产综合一区二区| 亚洲综合免费观看高清在线观看| 国产激情精品久久久第一区二区 | 91麻豆精品秘密| 黄网站免费久久| 亚洲国产精品久久不卡毛片| 欧美经典一区二区| 日韩欧美成人激情| 欧美三区免费完整视频在线观看| 成人亚洲精品久久久久软件| 免费看欧美女人艹b| 亚洲国产裸拍裸体视频在线观看乱了 | 国产一区二区三区久久悠悠色av| 亚洲第四色夜色| 亚洲欧美另类久久久精品2019| 久久精品无码一区二区三区| 日韩视频免费观看高清完整版在线观看| a亚洲天堂av| 国产成人精品网址| 久久国产精品第一页| 日韩经典一区二区| 亚洲线精品一区二区三区| 一区二区三区中文在线| 亚洲三级电影网站| 日韩毛片视频在线看| 国产精品麻豆网站| 国产精品传媒在线| 国产精品免费人成网站| 欧美韩国一区二区| 亚洲国产高清aⅴ视频| 欧美激情资源网| 中文字幕在线观看一区| 国产精品电影一区二区| 国产精品久久久久永久免费观看| 国产精品每日更新| 亚洲精选免费视频| 一区二区三区成人| 亚洲成人激情av| 免费欧美在线视频| 国产最新精品免费| 成人精品视频一区二区三区| 成人激情av网| 在线亚洲精品福利网址导航| 欧美最猛性xxxxx直播| 欧美日韩免费一区二区三区视频| 欧美日韩小视频| 欧美v亚洲v综合ⅴ国产v| 久久久久久久综合| 亚洲欧洲成人av每日更新| 综合激情成人伊人| 视频在线在亚洲| 久久69国产一区二区蜜臀| 国产福利一区二区三区视频在线| 成a人片亚洲日本久久| 色8久久精品久久久久久蜜| 欧美精品久久99| 久久久国产精品不卡| 最新日韩av在线| 天使萌一区二区三区免费观看| 蜜桃视频免费观看一区| 韩国av一区二区三区| 91视视频在线观看入口直接观看www | 欧美午夜电影网| 日韩小视频在线观看专区| 欧美国产日韩亚洲一区| 亚洲三级理论片| 久久精品久久精品| 成人av免费在线观看| 51午夜精品国产| 亚洲精品一线二线三线| 国产精品成人一区二区艾草| 天天综合天天综合色| 丁香激情综合国产| 欧美人与z0zoxxxx视频| 欧美国产精品中文字幕| 石原莉奈在线亚洲二区| 国产69精品久久久久777| 欧美精品乱码久久久久久按摩 | 日韩一区二区三区在线观看 | 久久婷婷久久一区二区三区| 亚洲欧美国产高清| 极品少妇xxxx精品少妇| 91免费看`日韩一区二区| 欧美一区二区三区婷婷月色| 中文字幕一区二区三区不卡| 日韩成人av影视| 91女人视频在线观看| 久久久国际精品| 亚洲成人综合视频| 99在线精品免费| 国产亚洲人成网站| 日韩精品五月天| 欧美亚洲国产一区二区三区| 欧美激情中文字幕| 久久99国内精品| 欧美精品18+| 日韩一区二区免费视频| 亚洲欧美激情一区二区| 国产成人综合在线观看| 欧美日韩电影在线| 亚洲在线观看免费| 色偷偷久久一区二区三区| 国产色一区二区| 国产一区二区成人久久免费影院 | 亚洲精品一线二线三线无人区| 午夜视频一区二区三区| 9i看片成人免费高清| 日本一区二区不卡视频| 黄页网站大全一区二区| 日韩一二三四区| 美女诱惑一区二区| 欧美一区二区免费观在线| 婷婷一区二区三区| 欧美午夜理伦三级在线观看| 一区二区在线免费观看| 91亚洲国产成人精品一区二区三 | 欧美变态凌虐bdsm| 日本成人在线网站| 日韩一区二区三区三四区视频在线观看| 亚洲成人综合视频| 欧美日韩国产免费| 视频在线观看国产精品| 91精品国产综合久久久久久漫画| 亚洲综合成人网| 日本高清不卡一区| 亚洲一二三四在线| 欧美日韩成人在线一区| 日韩av一区二区在线影视| 日韩欧美在线网站| 国内精品写真在线观看| 国产午夜精品久久| av午夜精品一区二区三区| 亚洲免费伊人电影| 欧美午夜精品久久久久久超碰| 午夜欧美在线一二页| 91麻豆精品国产91久久久更新时间 | 日本一区二区三区视频视频| 福利一区二区在线| 亚洲视频在线一区二区| 欧洲人成人精品| 香蕉加勒比综合久久| 日韩限制级电影在线观看| 狠狠色丁香婷婷综合久久片| 久久久国产综合精品女国产盗摄| 成人av电影观看| 伊人开心综合网| 日韩欧美国产综合一区| 国产传媒日韩欧美成人| 一区二区三区毛片| 制服丝袜亚洲色图| 国产精品亚洲综合一区在线观看| 国产精品激情偷乱一区二区∴| 在线日韩国产精品| 久久不见久久见免费视频7| 国产女人aaa级久久久级| 色拍拍在线精品视频8848| 奇米精品一区二区三区在线观看一|