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

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

?? filesystem.c++

?? fax相關的東西
?? C++
?? 第 1 頁 / 共 2 頁
字號:
            logDebug("Filesystem has %s-style file creation semantics.",                IS(SETGID) ? "BSD" : "SysV");        }        state &= ~S_CHECKGID;    }    if (IS(SETGID)) {        struct stat sb;        if (!FileCache::lookup(file, sb)) {            fatal("setFileOwner called for non-existent file (set)");        }        if (!FileCache::chown(file, sb.st_uid, (gid_t) uid)) {            logError("%s: chown: %s", file, strerror(errno));        }    }}/* * Is the specified file visible to the client. */boolHylaFAXServer::fileVisible(const SpoolDir& dir, const char* filename, const struct stat& sb){    return (IS(PRIVILEGED) || (this->*dir.isVisibleFile)(filename, sb));}boolHylaFAXServer::isVisibletrue(const char*, const struct stat&)    { return (true); }boolHylaFAXServer::isVisibleDocQFile(const char* filename, const struct stat&)    { return (strncmp(filename, "doc", 3) == 0 || strncmp(filename, "cover", 5) == 0); }boolHylaFAXServer::isVisibleRootFile(const char*, const struct stat& sb)    { return (S_ISREG(sb.st_mode) || S_ISDIR(sb.st_mode)); }/* * Change the working (pseudo) directory. */voidHylaFAXServer::cwdCmd(const char* path){    SpoolDir* dir = dirAccess(path);    if (dir) {	if (Sys::chdir(path) >= 0) {	    ack(250, cmdToken(T_CWD));	    cwd = dir;	} else	    perror_reply(550, path, errno);    }}/* * Return the path of the current working (pseudo) directory. */voidHylaFAXServer::pwdCmd(void){    u_int len = strlen(cwd->pathname)-1;		// strip trailing "/"    reply(257, "\"%.*s\" is the current directory.",	len ? len : len+1, cwd->pathname);}/* * LIST a directory. */voidHylaFAXServer::listCmd(const char* pathname){    SpoolDir* sd = dirAccess(pathname);    if (sd) {	DIR* dir = opendir(pathname);	if (dir != NULL) {	    int code;	    FILE* dout = openDataConn("w", code);	    if (dout != NULL) {		reply(code, "%s for \"%s\".", dataConnMsg(code), pathname);		if (setjmp(urgcatch) == 0) {		    state |= S_TRANSFER;		    (this->*sd->listDirectory)(dout, *sd, dir);		    fflush(dout);		    reply(226, "Transfer complete.");		}		state &= ~S_TRANSFER;		closeDataConn(dout);	    }	    closedir(dir);	} else if (errno != 0)	    perror_reply(550, pathname, errno);	else	    reply(550, "%s: Cannot open directory.", pathname);    }}voidHylaFAXServer::listDirectory(FILE* fd, const SpoolDir& sd, DIR* dir){    /*     * Use an absolute pathname when doing file     * lookups to improve cache locality.     */    fxStr path(sd.pathname);    struct dirent* dp;    while ((dp = readdir(dir))) {	if (dp->d_name[0] == '.' &&	  (dp->d_name[1] == '\0' || strcmp(dp->d_name, "..") == 0))	    continue;	struct stat sb;	if (!FileCache::update(path | dp->d_name, sb))	    continue;	if ((this->*sd.isVisibleFile)(dp->d_name, sb)) {	    (this->*sd.listFile)(fd, sd, dp->d_name, sb);	    fputs("\r\n", fd);	}    }}voidHylaFAXServer::listUnixFile(FILE* fd, const SpoolDir&,    const char* filename, const struct stat& sb){    Fprintf(fd, fileFormat, filename, sb);}static const char fformat[] = {    's',		// a (last access time)    'b',		// b    's',		// c (create time)    'o',		// d (device)    'e',		// e    's',		// f (filename)    'u',		// g (GID of file)    'h',		// h    'u',		// i (inode number)    'j',		// j    'k',		// k    'u',		// l (link count)    's',		// m (last modification time)    'n',		// n    's',		// o (owner based on file GID)    's',		// p (fax-style protection flags, no group bits)    's',		// q (UNIX-style protection flags)    'o',		// r (root device)    'u',		// s (file size in bytes)    't',		// t    'u',		// u (UID of file)    'v',		// v    'w',		// w    'x',		// x    'y',		// y    'z'			// z};/* * Print a formatted string with fields filled in from * a file's stat buffer.  This functionality is * used to permit clients to get modem status listings * in preferred formats. */voidHylaFAXServer::Fprintf(FILE* fd, const char* fmt,    const char* filename, const struct stat& sb){    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] = fformat[c-'a'];	// printf format string	    fp[1] = '\0';	    switch (c) {	    case 'a':		fprintf(fd, fspec, asctime(cvtTime(sb.st_atime))+4);		break;	    case 'c':		fprintf(fd, fspec, asctime(cvtTime(sb.st_ctime))+4);		break;	    case 'd':		fprintf(fd, fspec, (u_int) sb.st_dev);		break;	    case 'f':		fprintf(fd, fspec, filename);		break;	    case 'g':		fprintf(fd, fspec, (u_int) sb.st_gid);		break;	    case 'i':		fprintf(fd, fspec, (u_int) sb.st_ino);		// XXX		break;	    case 'l':		fprintf(fd, fspec, (u_int) sb.st_nlink);		break;	    case 'm':		fprintf(fd, fspec, asctime(cvtTime(sb.st_mtime))+4);		break;	    case 'o':		fprintf(fd, fspec, userName((u_int) sb.st_gid));		break;	    case 'p':	    case 'q':		{ char prot[10];				// XXX HP C++		  makeProt(sb, c == 'q', prot);		  fprintf(fd, fspec, prot);		}		break;	    case 'r':		fprintf(fd, fspec, (u_int) sb.st_rdev);		break;	    case 's':		fprintf(fd, fspec, (u_int) sb.st_size);		// XXX		break;	    case 'u':		fprintf(fd, fspec, (u_int) sb.st_uid);		break;	    }	} else	    putc(*cp, fd);    }}voidHylaFAXServer::makeProt(const struct stat& sb, bool withGrp, char prot[10]){    char* pp = prot;    *pp++ = S_ISREG(sb.st_mode)  ? '-' :	    S_ISDIR(sb.st_mode)  ? 'd' :	    S_ISFIFO(sb.st_mode) ? 'p' :#ifdef S_ISSOCK	    S_ISSOCK(sb.st_mode) ? 's' :#endif				   '?' ;    *pp++ = (sb.st_mode&S_IRUSR) ? 'r' : '-';    *pp++ = (sb.st_mode&S_IWUSR) ? 'w' : '-';    *pp++ = (sb.st_mode&S_IXUSR) ? 'x' : '-';    if (withGrp) {	*pp++ = (sb.st_mode&S_IRGRP) ? 'r' : '-';	*pp++ = (sb.st_mode&S_IWGRP) ? 'w' : '-';	*pp++ = (sb.st_mode&S_IXGRP) ? 'x' : '-';    }    *pp++ = (sb.st_mode&S_IROTH) ? 'r' : '-';    *pp++ = (sb.st_mode&S_IWOTH) ? 'w' : '-';    *pp++ = (sb.st_mode&S_IXOTH) ? 'x' : '-';    *pp++ = '\0';}voidHylaFAXServer::statFileCmd(const char* pathname){    struct stat sb;    SpoolDir* dir = fileAccess(pathname, X_OK, sb);    if (dir) {	(void) FileCache::update(pathname, sb);	// insure up to date info	lreply(211, "Status of %s:", pathname);	const char* cp = strrchr(pathname, '/');	(this->*dir->listFile)(stdout, *dir, cp ? cp+1 : pathname, sb);	fputs("\r\n", stdout);	reply(211, "End of Status");    }}/* * NLST a directory. */voidHylaFAXServer::nlstCmd(const char* pathname){    SpoolDir* sd = dirAccess(pathname);    if (sd) {	DIR* dir = opendir(pathname);	if (dir != NULL) {	    int code;	    FILE* dout = openDataConn("w", code);	    if (dout != NULL) {		reply(code, "%s for \"%s\".", dataConnMsg(code), pathname);		if (setjmp(urgcatch) == 0) {		    state |= S_TRANSFER;		    (this->*sd->nlstDirectory)(dout, *sd, dir);		    fflush(dout);		    reply(226, "Transfer complete.");		}		state &= ~S_TRANSFER;		closeDataConn(dout);	    }	    closedir(dir);	} else if (errno != 0)	    perror_reply(550, pathname, errno);	else	    reply(550, "%s: Cannot open directory.", pathname);    }}voidHylaFAXServer::nlstDirectory(FILE* fd, const SpoolDir& sd, DIR* dir){    /*     * Use an absolute pathname when doing file     * lookups to improve cache locality.     */    fxStr path(sd.pathname);    struct dirent* dp;    while ((dp = readdir(dir))) {	if (dp->d_name[0] == '.' &&	  (dp->d_name[1] == '\0' || strcmp(dp->d_name, "..") == 0))	    continue;	struct stat sb;	if (!FileCache::update(path | dp->d_name, sb))	    continue;	if ((this->*sd.isVisibleFile)(dp->d_name, sb)) {	    (this->*sd.nlstFile)(fd, sd, dp->d_name, sb);	    fputs("\r\n", fd);	}    }}voidHylaFAXServer::nlstUnixFile(FILE* fd, const SpoolDir&,    const char* filename, const struct stat&){    fprintf(fd, "%s", filename);}static boolisTIFF(const TIFFHeader& h){    if (h.tiff_magic != TIFF_BIGENDIAN && h.tiff_magic != TIFF_LITTLEENDIAN)	return (false);    union {	int32	i;	char	c[4];    } u;    u.i = 1;    uint16 version = h.tiff_version;    // byte swap version stamp if opposite byte order    if ((u.c[0] == 0) ^ (h.tiff_magic == TIFF_BIGENDIAN))	TIFFSwabShort(&version);    return (version == TIFF_VERSION);}boolHylaFAXServer::docType(const char* docname, FaxSendOp& op){    op = FaxRequest::send_unknown;    int fd = Sys::open(docname, O_RDONLY);    if (fd >= 0) {	struct stat sb;	if (FileCache::lookup(docname, sb) && S_ISREG(sb.st_mode)) {	    union {		char buf[512];		TIFFHeader h;	    } b;	    ssize_t cc = Sys::read(fd, (char*) &b, sizeof (b));	    if (cc > 2 && b.buf[0] == '%' && b.buf[1] == '!')		op = FaxRequest::send_postscript;	    else if (cc > 2 && b.buf[0] == '%' && b.buf[1] == 'P') {	    	logDebug("What we have here is a PDF file");	    	op = FaxRequest::send_pdf;	    }	    else if (cc > (ssize_t)sizeof (b.h) && isTIFF(b.h))		op = FaxRequest::send_tiff;	    else		op = FaxRequest::send_data;	}	Sys::close(fd);    }    if (op == FaxRequest::send_unknown)    	    	logError("Don't know what file");    return (op != FaxRequest::send_unknown);   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩三级在线| 亚洲精品高清视频在线观看| 欧美日韩夫妻久久| 欧美性淫爽ww久久久久无| 色噜噜狠狠一区二区三区果冻| av激情综合网| 色视频一区二区| 欧美亚日韩国产aⅴ精品中极品| 99riav久久精品riav| 一本到不卡免费一区二区| 91麻豆产精品久久久久久 | 久久亚洲综合av| 精品国产sm最大网站免费看| 久久青草国产手机看片福利盒子 | 色88888久久久久久影院野外| 97se狠狠狠综合亚洲狠狠| 色综合久久久久综合体 | 日韩高清在线不卡| 黄网站免费久久| 99热这里都是精品| 欧美日韩精品久久久| 精品国产髙清在线看国产毛片| 国产欧美日韩在线| 亚洲一区二区精品视频| 奇米一区二区三区av| 韩国中文字幕2020精品| 99视频一区二区| 在线播放日韩导航| 久久久91精品国产一区二区精品| 最新欧美精品一区二区三区| 亚洲综合在线电影| 国内精品久久久久影院色| 91片黄在线观看| 日韩亚洲欧美高清| 国产精品国产三级国产普通话三级| 一区二区三区在线不卡| 加勒比av一区二区| 色呦呦国产精品| 久久久久久电影| 婷婷久久综合九色综合伊人色| 国产精品99久久久久久久vr | 日韩免费看的电影| 自拍偷拍亚洲综合| 久久99精品久久久久| 91高清在线观看| 欧美经典一区二区| 开心九九激情九九欧美日韩精美视频电影| 成人免费毛片aaaaa**| 日韩欧美国产一区二区在线播放| 亚洲青青青在线视频| 国产精品自在欧美一区| 91精品国产一区二区三区 | 午夜亚洲国产au精品一区二区| 国产不卡一区视频| 欧美一二三四区在线| 午夜影视日本亚洲欧洲精品| av亚洲精华国产精华| 久久久久久久综合色一本| 日本vs亚洲vs韩国一区三区二区 | 日韩av电影免费观看高清完整版| 99精品视频在线播放观看| 久久久久久毛片| 精品一区二区免费| 日韩一级视频免费观看在线| 亚洲国产视频一区二区| 91影院在线免费观看| 国产精品日产欧美久久久久| 国产成人午夜高潮毛片| 久久综合久久99| 狠狠色丁香九九婷婷综合五月| 制服.丝袜.亚洲.中文.综合| 亚洲大片在线观看| 欧美三级欧美一级| 亚洲国产成人av好男人在线观看| 色婷婷综合视频在线观看| 亚洲男人的天堂一区二区| 色哟哟一区二区三区| 一区二区三区在线观看动漫| 欧美色图在线观看| 午夜精品福利一区二区三区av | 午夜精品一区在线观看| 欧美日韩精品电影| 奇米精品一区二区三区在线观看 | 精品一区二区久久久| 精品日韩99亚洲| 国产精品一线二线三线| 国产欧美日韩中文久久| a美女胸又www黄视频久久| 亚洲日本一区二区三区| 在线视频一区二区三区| 日韩高清一级片| 26uuu久久天堂性欧美| 成人少妇影院yyyy| 亚洲精品国产a| 欧美一区二区三区婷婷月色| 黑人巨大精品欧美一区| 中文字幕中文乱码欧美一区二区| 91年精品国产| 日韩精品每日更新| 日本一二三不卡| 在线观看亚洲专区| 精品夜夜嗨av一区二区三区| 欧美国产视频在线| 欧美性受xxxx黑人xyx性爽| 蜜臂av日日欢夜夜爽一区| 久久久亚洲高清| 色吧成人激情小说| 国产在线不卡视频| 亚洲国产cao| 久久婷婷色综合| 欧美最新大片在线看| 国产在线视频一区二区三区| 亚洲男帅同性gay1069| 精品蜜桃在线看| 欧美最猛黑人xxxxx猛交| 国产呦萝稀缺另类资源| 亚洲一区二区三区爽爽爽爽爽| 26uuu久久综合| 欧美日韩国产一区| 成人久久视频在线观看| 捆绑变态av一区二区三区 | 欧美老年两性高潮| 成人小视频在线| 精品一区二区免费| 日韩高清一级片| 亚洲一区二区在线播放相泽| 国产日韩欧美精品电影三级在线| 91精品国产一区二区| 91传媒视频在线播放| 成人免费精品视频| 国产一区二区三区av电影| 亚洲成人黄色小说| 夜色激情一区二区| 亚洲美女视频在线| 国产精品久久久久影院亚瑟| 精品久久久久久久人人人人传媒| 欧美日韩综合在线免费观看| 91色porny蝌蚪| 91视频91自| 99久久综合国产精品| 成人午夜私人影院| 国产精品18久久久久久久网站| 久久精品国产久精国产| 日韩精品一二区| 天天综合色天天综合| 午夜电影一区二区三区| 亚洲电影在线免费观看| 午夜精品一区二区三区三上悠亚| 一区二区三区国产| 亚洲国产美国国产综合一区二区| 亚洲精品国产无天堂网2021| 椎名由奈av一区二区三区| **性色生活片久久毛片| 亚洲乱码中文字幕| 一区二区成人在线| 亚洲成av人片| 日韩成人伦理电影在线观看| 日本成人在线电影网| 久久电影国产免费久久电影| 久久国产精品99久久久久久老狼| 久久精品国产99| 国产精品亚洲一区二区三区在线 | 久久精品免费观看| 国产一区二区按摩在线观看| 国产成人免费高清| 91麻豆自制传媒国产之光| 欧美揉bbbbb揉bbbbb| 日韩欧美亚洲一区二区| 国产色一区二区| 亚洲男人的天堂在线观看| 午夜不卡av在线| 久久99国产精品麻豆| 成人福利视频网站| 精品视频在线视频| 久久久蜜桃精品| **性色生活片久久毛片| 天天综合天天做天天综合| 国产一区二区三区黄视频| 成人av在线播放网址| 欧美日韩一区二区在线视频| 日韩你懂的在线播放| 亚洲私人影院在线观看| 日本aⅴ精品一区二区三区| 国产精品白丝jk黑袜喷水| 欧美午夜一区二区| 久久久夜色精品亚洲| 亚洲精品日韩专区silk| 国产综合久久久久影院| 欧洲一区在线电影| 国产日韩欧美精品在线| 日韩精品三区四区| 91视频一区二区| 欧美成人欧美edvon| 亚洲激情男女视频| 国产美女在线观看一区| 欧美日韩精品三区| 亚洲视频香蕉人妖| 激情欧美日韩一区二区| 欧美性猛交xxxx乱大交退制版| 久久精品亚洲乱码伦伦中文|