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

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

?? options.c

?? 一個很好用的linux 下的流量監控軟件
?? C
字號:
/***options.c - implements the configuration section of the utilityWritten by Gerard Paul JavaCopyright (c) Gerard Paul Java 1997, 1998This software is open source; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.This program is distributed WITHOUT ANY WARRANTY; without even theimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU General Public License in the included COPYING file fordetails.***/#include <curses.h>#include <panel.h>#include <fcntl.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <winops.h>#include <menurt.h>#include <input.h>#include <msgboxes.h>#include "links.h"#include "serv.h"#include "options.h"#include "deskman.h"#include "attrs.h"#include "landesc.h"#include "promisc.h"#include "dirs.h"#include "instances.h"#define ALLOW_ZERO 1#define DONT_ALLOW_ZERO 0void makeoptionmenu(struct MENU *menu){    tx_initmenu(menu, 19, 40, (LINES - 19) / 2 - 1, (COLS - 40) / 16,                BOXATTR, STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR,                DESCATTR);    tx_additem(menu, " ^R^everse DNS lookups",               "Toggles resolution of IP addresses into host names");    tx_additem(menu, " TCP/UDP ^s^ervice names",               "Displays TCP/UDP service names instead of numeric ports");    tx_additem(menu, " Force ^p^romiscuous mode",               "Toggles capture of all packets by LAN interfaces");    tx_additem(menu, " ^C^olor",               "Turns color on or off (restart IPTraf to effect change)");    tx_additem(menu, " ^L^ogging",               "Toggles logging of traffic to a data file");    tx_additem(menu, " Acti^v^ity mode",               "Toggles activity indicators between kbits/s and kbytes/s");    tx_additem(menu, " Source ^M^AC addrs in traffic monitor",               "Toggles display of source MAC addresses in the IP Traffic Monitor");    tx_additem(menu, NULL, NULL);    tx_additem(menu, " ^T^imers...", "Configures timeouts and intervals");    tx_additem(menu, NULL, NULL);    tx_additem(menu, " ^A^dditional ports...",               "Allows you to add port numbers higher than 1023 for the service stats");    tx_additem(menu, " ^D^elete port/range...",               "Deletes a port or range of ports earlier added");    tx_additem(menu, NULL, NULL);    tx_additem(menu, " ^E^thernet/PLIP host descriptions...",               "Manages descriptions for Ethernet and PLIP addresses");    tx_additem(menu, " ^F^DDI/Token Ring host descriptions...",               "Manages descriptions for FDDI and FDDI addresses");    tx_additem(menu, NULL, NULL);    tx_additem(menu, " E^x^it configuration", "Returns to main menu");}void maketimermenu(struct MENU *menu){    tx_initmenu(menu, 8, 35, (LINES - 19) / 2 + 7, (COLS - 35) / 2,                BOXATTR, STDATTR, HIGHATTR, BARSTDATTR, BARHIGHATTR,                DESCATTR);    tx_additem(menu, " TCP ^t^imeout...",               "Sets the length of time before inactive TCP entries are considered idle");    tx_additem(menu, " ^L^ogging interval...",               "Sets the time between loggings for interface, host, and service stats");    tx_additem(menu, " ^S^creen update interval...",               "Sets the screen update interval in seconds (set to 0 for fastest updates)");    tx_additem(menu, " TCP closed/idle ^p^ersistence...",               "Determines how long closed/idle/reset entries stay onscreen");    tx_additem(menu, NULL, NULL);    tx_additem(menu, " E^x^it menu", "Returns to the configuration menu");}void printoptonoff(unsigned int option, WINDOW * win){    if (option)        wprintw(win, " On");    else        wprintw(win, "Off");}void indicatesetting(int row, struct OPTIONS *options, WINDOW * win){    wmove(win, row, 30);    wattrset(win, HIGHATTR);    switch (row) {    case 1:        printoptonoff(options->revlook, win);        break;    case 2:        printoptonoff(options->servnames, win);        break;    case 3:        printoptonoff(options->promisc, win);        break;    case 4:        printoptonoff(options->color, win);        break;    case 5:        printoptonoff(options->logging, win);        break;    case 6:        wmove(win, row, 25);        if (options->actmode == KBITS)            wprintw(win, " kbits/s");        else            wprintw(win, "kbytes/s");        break;    case 7:        printoptonoff(options->mac, win);        break;    }}void saveoptions(struct OPTIONS *options){    int fd;    int bw;    int response;    fd = open(CONFIGFILE, O_CREAT | O_TRUNC | O_WRONLY, S_IRUSR | S_IWUSR);    if (fd < 0) {        tx_errbox("Cannot create config file", ANYKEY_MSG, &response);        return;    }    bw = write(fd, options, sizeof(struct OPTIONS));    if (bw < 0)        tx_errbox("Unable to write config file", ANYKEY_MSG, &response);    close(fd);}void setdefaultopts(struct OPTIONS *options){    options->revlook = 0;    options->promisc = 0;    options->servnames = 0;    options->color = 1;    options->logging = 0;    options->actmode = KBITS;    options->mac = 0;    options->timeout = 15;    options->logspan = 3600;    options->updrate = 0;    options->closedint = 0;}void loadoptions(struct OPTIONS *options){    int fd;    int br;    setdefaultopts(options);    fd = open(CONFIGFILE, O_RDONLY);    if (fd < 0)        return;    br = read(fd, options, sizeof(struct OPTIONS));    close(fd);}void updatetimes(struct OPTIONS *options, WINDOW * win){    wattrset(win, HIGHATTR);    mvwprintw(win, 9, 25, "%3u mins", options->timeout);    mvwprintw(win, 10, 25, "%3u mins", options->logspan / 60);    mvwprintw(win, 11, 25, "%3u secs", options->updrate);    mvwprintw(win, 12, 25, "%3u mins", options->closedint);}void showoptions(struct OPTIONS *options, WINDOW * win){    int i;    for (i = 1; i <= 7; i++)        indicatesetting(i, options, win);    updatetimes(options, win);}void settimeout(unsigned int *value, const char *units, int allow_zero,                int *aborted){    WINDOW *dlgwin;    PANEL *dlgpanel;    struct FIELDLIST field;    int resp;    unsigned int tmval = 0;    dlgwin = newwin(7, 40, (LINES - 7) / 2, (COLS - 40) / 4);    dlgpanel = new_panel(dlgwin);    wattrset(dlgwin, DLGBOXATTR);    tx_colorwin(dlgwin);    tx_box(dlgwin, ACS_VLINE, ACS_HLINE);    wattrset(dlgwin, DLGTEXTATTR);    wmove(dlgwin, 2, 2);    wprintw(dlgwin, "Enter value in %s", units);    wmove(dlgwin, 5, 2);    stdkeyhelp(dlgwin);    tx_initfields(&field, 1, 10, (LINES - 7) / 2 + 3, (COLS - 40) / 4 + 2,                  DLGTEXTATTR, FIELDATTR);    tx_addfield(&field, 3, 0, 0, "");    do {        tx_fillfields(&field, aborted);        if (!(*aborted)) {            tmval = atoi(field.list->buf);            if ((!allow_zero) && (tmval == 0))                tx_errbox("Invalid timeout value", ANYKEY_MSG, &resp);        }    } while (((!allow_zero) && (tmval == 0)) && (!(*aborted)));    if (!(*aborted))        *value = tmval;    del_panel(dlgpanel);    delwin(dlgwin);    tx_destroyfields(&field);    update_panels();    doupdate();}void setoptions(struct OPTIONS *options, struct porttab **ports){    int row = 1;    int trow = 1;               /* row for timer submenu */    int aborted;    int resp;    struct MENU menu;    struct MENU timermenu;    WINDOW *statwin;    PANEL *statpanel;    if (!is_first_instance) {        tx_errbox("Only the first instance of IPTraf can configure",                  ANYKEY_MSG, &resp);        return;    }    makeoptionmenu(&menu);    statwin = newwin(14, 35, (LINES - 19) / 2 - 1, (COLS - 40) / 16 + 40);    statpanel = new_panel(statwin);    wattrset(statwin, BOXATTR);    tx_colorwin(statwin);    tx_box(statwin, ACS_VLINE, ACS_HLINE);    wmove(statwin, 8, 1);    whline(statwin, ACS_HLINE, 33);    mvwprintw(statwin, 0, 1, " Current Settings ");    wattrset(statwin, STDATTR);    mvwprintw(statwin, 1, 2, "Reverse DNS lookups:");    mvwprintw(statwin, 2, 2, "Service names:");    mvwprintw(statwin, 3, 2, "Promiscuous:");    mvwprintw(statwin, 4, 2, "Color:");    mvwprintw(statwin, 5, 2, "Logging:");    mvwprintw(statwin, 6, 2, "Activity mode:");    mvwprintw(statwin, 7, 2, "MAC addresses:");    mvwprintw(statwin, 9, 2, "TCP timeout:");    mvwprintw(statwin, 10, 2, "Log interval:");    mvwprintw(statwin, 11, 2, "Update interval:");    mvwprintw(statwin, 12, 2, "Closed/idle persist:");    showoptions(options, statwin);    do {        tx_showmenu(&menu);        tx_operatemenu(&menu, &row, &aborted);        switch (row) {        case 1:            options->revlook = ~(options->revlook);            break;        case 2:            options->servnames = ~(options->servnames);            break;        case 3:            options->promisc = ~(options->promisc);            break;        case 4:            options->color = ~(options->color);            break;        case 5:            options->logging = ~(options->logging);            break;        case 6:            options->actmode = ~(options->actmode);            break;        case 7:            options->mac = ~(options->mac);            break;        case 9:            maketimermenu(&timermenu);            trow = 1;            do {                tx_showmenu(&timermenu);                tx_operatemenu(&timermenu, &trow, &aborted);                switch (trow) {                case 1:                    settimeout(&(options->timeout), "minutes",                               DONT_ALLOW_ZERO, &aborted);                    if (!aborted)                        updatetimes(options, statwin);                    break;                case 2:                    settimeout((unsigned int *) &(options->logspan),                               "minutes", DONT_ALLOW_ZERO, &aborted);                    if (!aborted) {                        options->logspan = options->logspan * 60;                        updatetimes(options, statwin);                    }                    break;                case 3:                    settimeout(&options->updrate, "seconds", ALLOW_ZERO,                               &aborted);                    if (!aborted)                        updatetimes(options, statwin);                    break;                case 4:                    settimeout(&options->closedint, "minutes", ALLOW_ZERO,                               &aborted);                    if (!aborted)                        updatetimes(options, statwin);                    break;                }            } while (trow != 6);            tx_destroymenu(&timermenu);            update_panels();            doupdate();            break;        case 11:            addmoreports(ports);            break;        case 12:            removeaport(ports);            break;        case 14:            ethdescmgr(LINK_ETHERNET);            break;        case 15:            ethdescmgr(LINK_FDDI);            break;        }        indicatesetting(row, options, statwin);    } while (row != 17);    tx_destroymenu(&menu);    del_panel(statpanel);    delwin(statwin);    update_panels();    doupdate();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品日韩在线一区| 亚洲免费资源在线播放| 亚洲欧洲无码一区二区三区| 亚洲成人免费av| 成人夜色视频网站在线观看| 欧美另类videos死尸| 中文字幕在线观看一区| 国产精品一区二区三区99| 欧美一区二区人人喊爽| 一区二区三区免费网站| 成人午夜在线免费| 精品欧美黑人一区二区三区| 婷婷一区二区三区| 欧美午夜宅男影院| 亚洲黄色小说网站| 99精品1区2区| 国产精品乱子久久久久| 国产成人午夜精品5599| 精品国产欧美一区二区| 日本不卡一二三| 91麻豆精品国产91| 亚洲成人免费看| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 国产日韩欧美精品一区| 国产一本一道久久香蕉| 欧美精品一区二区久久久| 日本不卡一区二区三区高清视频| 欧美日韩一级二级三级| 亚洲福利一二三区| 欧美一区二区三区在| 日韩精品色哟哟| 欧美一区二区性放荡片| 裸体歌舞表演一区二区| 精品第一国产综合精品aⅴ| 麻豆精品在线视频| 精品国产三级电影在线观看| 国产综合色视频| 国产精品色婷婷| av网站一区二区三区| 自拍偷自拍亚洲精品播放| 91视频www| 午夜视频在线观看一区二区三区| 欧美日韩一区二区三区免费看| 偷拍日韩校园综合在线| 欧美成人在线直播| 国产成人无遮挡在线视频| 亚洲国产成人午夜在线一区| av激情成人网| 亚洲精品乱码久久久久久日本蜜臀| 在线观看日韩一区| 手机精品视频在线观看| 久久综合九色欧美综合狠狠| 国产传媒久久文化传媒| 一区二区三区资源| 日韩欧美亚洲另类制服综合在线| 国产在线不卡视频| 亚洲精品乱码久久久久久黑人| 91精品国产综合久久福利软件 | 国产欧美日韩综合精品一区二区| 国产成人在线视频免费播放| 国产精品久久久久影院| 欧美日韩亚洲不卡| 国产毛片精品一区| 亚洲欧美激情在线| 欧美xxxxxxxxx| 99免费精品视频| 日韩 欧美一区二区三区| 久久久高清一区二区三区| 欧美视频在线一区| 国产成人av福利| 日韩和的一区二区| 国产精品视频线看| 日韩亚洲欧美中文三级| 99免费精品在线观看| 麻豆国产一区二区| 一区二区三区中文免费| 久久久亚洲高清| 3d成人动漫网站| 91丨九色丨蝌蚪丨老版| 极品少妇一区二区三区精品视频| 亚洲人成精品久久久久久| 精品国产亚洲在线| 91麻豆精品国产91久久久久久| 国产成人av一区二区三区在线 | 风间由美一区二区三区在线观看 | 一区二区三区在线视频观看| 久久综合狠狠综合| 欧美日韩成人综合在线一区二区| 国产精品一区专区| 免费欧美在线视频| 亚洲制服丝袜一区| 国产精品进线69影院| 久久麻豆一区二区| 日韩亚洲欧美中文三级| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 亚洲一区二区三区小说| 欧美韩日一区二区三区| 日韩精品专区在线影院重磅| 欧美视频日韩视频| 91国产丝袜在线播放| 成+人+亚洲+综合天堂| 国产成人精品www牛牛影视| 久久国产成人午夜av影院| 日韩精品午夜视频| 日韩高清不卡在线| 五月天网站亚洲| 亚洲午夜电影网| 夜色激情一区二区| 亚洲精品免费电影| 亚洲精品写真福利| 亚洲精品日韩综合观看成人91| 中文字幕一区二区三区四区| 国产精品婷婷午夜在线观看| 久久精品一区蜜桃臀影院| 久久久久久久久岛国免费| 久久久久久亚洲综合| 久久久久久久av麻豆果冻| 国产欧美日韩精品在线| 中文一区在线播放| 亚洲色图视频网| 亚洲午夜av在线| 蜜桃av一区二区| 精品一区二区三区在线观看| 国产毛片精品一区| 成人午夜在线播放| 91久久精品一区二区三| 欧美日韩久久久久久| 日韩欧美的一区| 久久九九99视频| 亚洲女爱视频在线| 水蜜桃久久夜色精品一区的特点| 九一九一国产精品| 大陆成人av片| 欧美天堂一区二区三区| 日韩一二三四区| 国产精品伦理一区二区| 亚洲国产中文字幕在线视频综合| 免费成人在线网站| 福利电影一区二区| 欧美在线你懂得| 精品欧美乱码久久久久久1区2区| 国产精品热久久久久夜色精品三区| 亚洲欧美另类小说| 麻豆精品在线播放| 91网址在线看| 日韩欧美国产午夜精品| 国产精品色噜噜| 免费在线观看日韩欧美| 成人丝袜高跟foot| 欧美一区二区三区在| 成人欧美一区二区三区| 日韩va欧美va亚洲va久久| 国产高清不卡二三区| 欧美体内she精高潮| 国产午夜精品一区二区三区四区| 一区二区三区欧美| 国产精品夜夜嗨| 欧美日韩中文一区| 久久蜜桃av一区精品变态类天堂| 亚洲一区二区三区爽爽爽爽爽| 国产精品一品视频| 欧美日韩成人综合天天影院| 亚洲国产精品成人久久综合一区| 日韩中文字幕区一区有砖一区 | 免费成人美女在线观看| av激情综合网| 久久久久亚洲蜜桃| 日韩av网站免费在线| 色综合久久综合网欧美综合网| 精品久久久久久最新网址| 亚洲专区一二三| jlzzjlzz欧美大全| 久久久噜噜噜久久人人看| 免费国产亚洲视频| 精品视频在线免费观看| 综合激情网...| jlzzjlzz亚洲日本少妇| 国产亚洲婷婷免费| 极品美女销魂一区二区三区| 欧美日韩亚洲国产综合| 亚洲一二三区在线观看| 色综合久久99| 亚洲图片你懂的| 91片在线免费观看| 国产精品乱码一区二三区小蝌蚪| 国模无码大尺度一区二区三区| 欧美一区二区三区播放老司机| 亚洲国产成人av| 在线观看日韩一区| 亚洲福利一区二区三区| 欧洲国内综合视频| 亚洲激情校园春色| 色av成人天堂桃色av| 亚洲区小说区图片区qvod| 91在线一区二区| 亚洲男人的天堂av| 日本高清成人免费播放| 亚洲精品精品亚洲| 欧美视频在线观看一区| 亚洲1区2区3区视频|