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

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

?? status.c++

?? fax相關的東西
?? C++
字號:
/*	$Id: Status.c++,v 1.7 2003/04/19 16:26:08 tim Exp $ *//* * Copyright (c) 1995-1996 Sam Leffler * Copyright (c) 1995-1996 Silicon Graphics, Inc. * HylaFAX is a trademark of Silicon Graphics * * Permission to use, copy, modify, distribute, and sell this software and  * its documentation for any purpose is hereby granted without fee, provided * that (i) the above copyright notices and this permission notice appear in * all copies of the software and related documentation, and (ii) the names of * Sam Leffler and Silicon Graphics may not be used in any advertising or * publicity relating to the software without the specific, prior written * permission of Sam Leffler and Silicon Graphics. *  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.   *  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE  * OF THIS SOFTWARE. *//* * Support related to server status. */#include "HylaFAXServer.h"#include "Sys.h"#include "config.h"#include <ctype.h>#include <sys/file.h>class ModemConfig : public FaxConfig {public:    enum {			// ClassModem::SpeakerVolume	OFF	= 0,		// nothing	QUIET	= 1,		// somewhere near a dull chirp	LOW	= 2,		// normally acceptable	MEDIUM	= 3,		// heard above a stereo	HIGH	= 4		// ear splitting    };    u_int	speakerVolume;		// volume control    u_int	tracingLevel;		// tracing level w/o session    u_int	logTracingLevel;	// tracing level during session    u_int	maxRecvPages;		// max pages to accept on receive    fxStr	localIdentifier;	// to use in place of FAXNumber    fxStr	FAXNumber;		// phone number    fxStr	modemName;		// canonical modem name    bool	isGettyRunning;		// true if faxgetty responds via FIFO    fxStr	status;			// from status file    ModemConfig(const char* name);    ~ModemConfig() {};    bool setConfigItem(const char* tag, const char* value);    void configError(const char* fmt, ...);    void configTrace(const char* fmt, ...);    void checkGetty(const char* fifoFile);};ModemConfig::ModemConfig(const char* name) : modemName(name){    HylaFAXServer::canonModem(modemName);    maxRecvPages = (u_int) -1;    tracingLevel = 0;    logTracingLevel = 0;    speakerVolume = QUIET;}void ModemConfig::configError(const char*, ...) {}void ModemConfig::configTrace(const char*, ...) {}voidModemConfig::checkGetty(const char* fifoFile){    int fifo;    Sys::close(fifo = Sys::open(fifoFile, O_WRONLY|O_NDELAY));    isGettyRunning = (fifo != -1);}boolModemConfig::setConfigItem(const char* tag, const char* value){    if (streq(tag, "faxnumber"))	FAXNumber = value;    else if (streq(tag, "localidentifier"))	localIdentifier = value;    else if (streq(tag, "speakervolume")) {	// XXX duplicates code elsewhere	if (strcasecmp(value, "off") == 0)	    speakerVolume = OFF;	else if (strcasecmp(value, "quiet") == 0)	    speakerVolume = QUIET;	else if (strcasecmp(value, "low") == 0)	    speakerVolume = LOW;	else if (strcasecmp(value, "medium") == 0)	    speakerVolume = MEDIUM;	else	    speakerVolume = HIGH;    } else if (streq(tag, "tracinglevel"))	tracingLevel = getNumber(value);    else if (streq(tag, "logtracinglevel"))	logTracingLevel = getNumber(value);    else if (streq(tag, "maxrecvpages"))	maxRecvPages = getNumber(value);    return (true);				// avoid complaints}voidHylaFAXServer::listStatus(FILE* fd, const SpoolDir& sd, DIR* dir){    /*     * Check scheduler status.     */    int fifo;    Sys::close(fifo = Sys::open("/" FAX_FIFO, O_WRONLY|O_NDELAY));    fprintf(fd, "HylaFAX scheduler on %s: %s\r\n"	, (const char*) hostname	, fifo != -1 ? "Running" : "Not running"    );    /*     * Cross-check entries in the status directory     * against the other files required for an operating     * modem.  There must be a configuration file and,     * if there is a faxgetty process running, there must     * be a FIFO special file in the root filesystem.     */    fxStr path(sd.pathname);    struct stat sb;    fxStr fifoPrefix("/" FAX_FIFO ".");    struct dirent* dp;    while ((dp = readdir(dir))) {	fxStr statusFile(path | dp->d_name);	if (!FileCache::update(statusFile, sb) || !S_ISREG(sb.st_mode))	    continue;	// verify there is a modem config file	fxStr configFile = fxStr::format("/" FAX_CONFIG ".%s", dp->d_name);	if (!FileCache::lookup(configFile, sb) || !S_ISREG(sb.st_mode))	    continue;	fxStr fifoFile(fifoPrefix | dp->d_name);	if (!FileCache::lookup(fifoFile, sb) || !S_ISFIFO(sb.st_mode))	    continue;	ModemConfig config(dp->d_name);	config.readConfig(configFile);			// read config file	config.checkGetty(fifoFile);			// check for faxgetty	getServerStatus(statusFile, config.status);	// XXX	Mprintf(fd, modemFormat, config);	fputs("\r\n", fd);    }}voidHylaFAXServer::listStatusFile(FILE* fd, const SpoolDir& dir,    const char* filename, const struct stat& sb){    listUnixFile(fd, dir, filename, sb);}voidHylaFAXServer::getServerStatus(const char* fileName, fxStr& status){    int fd = Sys::open(fileName, O_RDONLY);    if (fd > 0) {        struct stat sb;        (void) Sys::fstat(fd, sb);        status.resize((u_int) sb.st_size);        char* buff = new char[sb.st_size];        int n = Sys::read(fd, buff, (size_t) sb.st_size);        status = buff;        Sys::close(fd);        if (n > 0 && status[n-1] == '\n') n--;        if (n == 0) {            status = "No status (empty file)";        } else {            status.resize(n);        }        delete [] buff;    } else {        status = "No status (cannot open file)";    }}static const char mformat[] = {    'a',		// a    'b',		// b    'c',		// c    'd',		// d    'e',		// e    'f',		// f    'g',		// g    's',		// h (hostname)    'i',		// i    'j',		// j    'k',		// k    's',		// l (local identifier)    's',		// m (canonical modem name)    's',		// n (phone number)    'o',		// o    'p',		// p    'q',		// q    's',		// r (max recv pages)    's',		// s (status information)    's',		// t (server/session tracing level)    'x',		// u (server tracing level)    'c',		// v (speaker volume)    'w',		// w    'x',		// x    'y',		// y    'c'			// z (``*'' if faxgetty is running)};/* * Print a formatted string with fields filled in from * the specified modem state.  This functionality is * used to permit clients to get modem status listings * in preferred formats. */voidHylaFAXServer::Mprintf(FILE* fd, const char* fmt, const ModemConfig& config){    for (const char* cp = fmt; *cp; cp++) {	if (*cp == '%') {#define	MAXSPEC	20	    char fspec[MAXSPEC];	    char* fp = fspec;	    *fp++ = '%';	    char c = *++cp;	    if (c == '-')		*fp++ = c, c = *++cp;	    if (isdigit(c)) {		do {		    *fp++ = c;		} while (isdigit(c = *++cp) && fp < &fspec[MAXSPEC-3]);	    }	    if (c == '.') {		do {		    *fp++ = c;		} while (isdigit(c = *++cp) && fp < &fspec[MAXSPEC-2]);	    }	    if (!islower(c)) {		if (c == '%')		// %% -> %		    putc(c, fd);		else		    fprintf(fd, "%.*s%c", fp-fspec, fspec, c);		continue;	    }	    fp[0] = mformat[c-'a'];	// printf format string	    fp[1] = '\0';	    switch (c) {	    case 'h':		fprintf(fd, fspec, (const char*) hostname);		break;	    case 'l':		fprintf(fd, fspec, (const char*) config.localIdentifier);		break;	    case 'm':		fprintf(fd, fspec, (const char*) config.modemName);		break;	    case 'n':		fprintf(fd, fspec, (const char*) config.FAXNumber);		break;	    case 'r':        /*         * this is not used for some reason ie -1 represents infinite		* if (config.maxRecvPages == (u_int) -1) {		*    tmp = "INF";		* } else {		*    tmp = fxStr::format("%u", config.maxRecvPages);        * }        */		fprintf(fd, fspec, config.maxRecvPages);		break;	    case 's':		fprintf(fd, fspec, (const char*) config.status);		break;            case 't': {		            fxStr tmp = fxStr::format("%05x:%05x",                        config.tracingLevel&0xfffff,                        config.logTracingLevel&0xfffff);                    fprintf(fd, fspec, (const char*)tmp);                }		        break;	    case 'v':		fprintf(fd, fspec, " QLMH"[config.speakerVolume]);		break;	    case 'z':		fprintf(fd, fspec, config.isGettyRunning ? '*' : ' ');		break;	    }	} else	    putc(*cp, fd);    }}voidHylaFAXServer::nlstStatus(FILE* fd, const SpoolDir& sd, DIR* dir){    /*     * Cross-check entries in the status directory     * against the other files required for an operating     * modem.  There must be a configuration file and,     * if there is a faxgetty process running, there must     * be a FIFO special file in the root filesystem.     */    fxStr path(sd.pathname);    struct stat sb;    fxStr fifoPrefix("/" FAX_FIFO ".");    struct dirent* dp;    while ((dp = readdir(dir))) {	fxStr statusFile(path | dp->d_name);	if (!FileCache::update(statusFile, sb) || !S_ISREG(sb.st_mode))	    continue;	// verify there is a modem config file	fxStr configFile = fxStr::format("/" FAX_CONFIG ".%s", dp->d_name);	if (!FileCache::lookup(configFile, sb) || !S_ISREG(sb.st_mode))	    continue;	fxStr fifoFile(fifoPrefix | dp->d_name);	if (!FileCache::lookup(fifoFile, sb) || !S_ISFIFO(sb.st_mode))	    continue;	ModemConfig config(dp->d_name);	config.readConfig(configFile);			// read config file	config.checkGetty(fifoFile);			// check for faxgetty	getServerStatus(statusFile, config.status);	// XXX	Mprintf(fd, "%m\r\n", config);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久99精品久久| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧美一区二区三区极速播放 | 欧美系列亚洲系列| 精品国产乱子伦一区| 亚洲午夜精品在线| 成人免费视频视频| 久久在线观看免费| 奇米色777欧美一区二区| 在线区一区二视频| 中文字幕五月欧美| 国产精品中文字幕日韩精品| 日韩午夜激情电影| 亚洲成av人影院| 色狠狠一区二区| 国产精品全国免费观看高清 | 日韩欧美国产一区二区三区 | 国产成人在线免费观看| 欧美电影一区二区三区| 亚洲国产乱码最新视频| 91亚洲国产成人精品一区二区三 | 亚洲人快播电影网| 国产高清无密码一区二区三区| 在线成人av网站| 天堂一区二区在线| 91精品国产综合久久小美女| 亚洲成人动漫一区| 欧美区视频在线观看| 五月天网站亚洲| 欧美三级日韩在线| 天堂va蜜桃一区二区三区 | 欧美电影免费观看完整版| 亚洲电影第三页| 制服丝袜国产精品| 轻轻草成人在线| 精品成人免费观看| 国产一区二区三区黄视频| 国产日本欧洲亚洲| 成人av在线电影| 亚洲裸体在线观看| 欧美午夜理伦三级在线观看| 亚洲高清视频中文字幕| 欧美丰满嫩嫩电影| 一本一道波多野结衣一区二区| 国产精品国产三级国产| 99在线视频精品| 亚洲激情中文1区| 欧美精品自拍偷拍| 久久精工是国产品牌吗| 久久精品一区蜜桃臀影院| 成人激情小说乱人伦| 亚洲精品视频自拍| 91精品免费在线观看| 国产精品66部| 亚洲人成影院在线观看| 7777精品伊人久久久大香线蕉最新版| 青青草伊人久久| 国产欧美视频一区二区| 日本高清不卡视频| 日本不卡视频在线| 日本一区二区不卡视频| 欧美亚洲一区三区| 美美哒免费高清在线观看视频一区二区| 欧美成人乱码一区二区三区| 粗大黑人巨茎大战欧美成人| 亚洲自拍与偷拍| 久久久久久久久一| 欧美丝袜丝交足nylons图片| 国内精品伊人久久久久av影院 | 一区二区在线观看视频| 日韩亚洲电影在线| 日本道在线观看一区二区| 麻豆成人av在线| 一区二区视频在线| 久久先锋影音av| 欧美日韩视频在线一区二区| 国产精品99久久久久久有的能看 | 韩国视频一区二区| 自拍偷拍欧美精品| 日韩美一区二区三区| 色先锋aa成人| 国产精品69久久久久水密桃 | 一区二区三区日本| 欧美国产激情二区三区 | 九九**精品视频免费播放| 一区二区三区在线播| 久久久久久免费网| 91麻豆精品国产综合久久久久久 | 欧美一级片在线| 色94色欧美sute亚洲13| 成人午夜精品在线| 国产综合久久久久影院| 青青草97国产精品免费观看无弹窗版| 最新国产成人在线观看| 中文字幕欧美国产| 国产亚洲成av人在线观看导航| 欧美肥大bbwbbw高潮| 欧美综合一区二区三区| 不卡免费追剧大全电视剧网站| 国产在线播放一区三区四| 美日韩黄色大片| youjizz国产精品| 风间由美一区二区三区在线观看 | 国产福利精品一区| 精品综合久久久久久8888| 日日夜夜精品视频免费| 无码av中文一区二区三区桃花岛| 亚洲精品国产成人久久av盗摄| 中文字幕一区二区视频| 国产精品美女久久久久aⅴ| 欧美国产一区二区在线观看| 久久久亚洲午夜电影| 欧美本精品男人aⅴ天堂| 91精品久久久久久蜜臀| 欧美一区二区三区在线观看| 91精品国产综合久久精品性色| 欧美日韩高清在线播放| 欧美久久久久久久久久| 欧美一二三区精品| 日韩精品一区二区三区视频| 久久夜色精品国产欧美乱极品| wwww国产精品欧美| 欧美国产日韩a欧美在线观看| 日本一区二区电影| 亚洲精品网站在线观看| 亚洲影院理伦片| 日本亚洲一区二区| 国产自产v一区二区三区c| 国产精品自拍在线| zzijzzij亚洲日本少妇熟睡| 一本大道久久a久久综合| 欧美亚洲国产一区二区三区va | 丁香激情综合五月| 99在线热播精品免费| 欧美天天综合网| 日韩久久久精品| 国产女人水真多18毛片18精品视频| 国产精品国产成人国产三级| 亚洲一区二区三区影院| 蜜桃av一区二区| 国产91精品一区二区麻豆网站 | 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 91浏览器打开| 欧美日韩成人综合天天影院 | 国产在线麻豆精品观看| eeuss鲁片一区二区三区| 欧美日本在线视频| 久久精品无码一区二区三区| 亚洲男人的天堂一区二区| 日本aⅴ免费视频一区二区三区 | 国产午夜精品美女毛片视频| 国产精品嫩草影院av蜜臀| 亚洲福利一区二区三区| 国产精品亚洲视频| 在线视频一区二区三| 久久综合久久综合久久综合| 亚洲精品高清视频在线观看| 久久激情五月婷婷| 精品国产第一区二区三区观看体验| 国产精品天天摸av网| 亚洲成人精品影院| av电影在线观看不卡| 日韩欧美精品在线视频| 亚洲精品欧美在线| 国产一区不卡在线| 欧美乱妇15p| 亚洲欧美日韩精品久久久久| 国内外精品视频| 91超碰这里只有精品国产| 国产精品美女一区二区在线观看| 日本强好片久久久久久aaa| 99精品视频一区二区三区| 精品国产亚洲在线| 日韩精品久久理论片| 91高清视频免费看| 国产精品人人做人人爽人人添 | 久久色成人在线| 日韩国产精品91| 色先锋aa成人| 自拍偷在线精品自拍偷无码专区 | 久久综合综合久久综合| 欧美在线短视频| 中文字幕在线不卡视频| 国产精品18久久久久久vr| 日韩三级高清在线| 天天综合天天做天天综合| 91极品美女在线| 亚洲人快播电影网| 99精品欧美一区| 国产精品久久久久桃色tv| 国产99精品国产| 国产亚洲欧美日韩在线一区| 久久电影网站中文字幕| 欧美一区二区三区婷婷月色| 手机精品视频在线观看| 欧美日本在线一区| 午夜欧美大尺度福利影院在线看| 欧美性猛交xxxx黑人交| 一片黄亚洲嫩模| 欧美私人免费视频|