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

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

?? ruserpass.c

?? UNIX FTP client
?? C
字號:
/* * Copyright (c) 1985 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *//* * from: @(#)ruserpass.c	5.3 (Berkeley) 3/1/91 */char ruserpass_rcsid[] =   "$Id: ruserpass.c,v 1.5 1997/04/06 00:00:24 dholland Exp $";#include <stdio.h>#include <stdlib.h>#include <utmp.h>#include <ctype.h>#include <sys/stat.h>#include <errno.h>#include <string.h>#include <unistd.h>#include "ftp_var.h"static FILE *cfile;static int token(void);#define	DEFAULT	1#define	LOGIN	2#define	PASSWD	3#define	ACCOUNT 4#define MACDEF  5#define	ID	10#define	MACH	11static char tokval[100];static struct toktab {	const char *tokstr;	int tval;} toktab[]= {	{ "default",	DEFAULT },	{ "login",	LOGIN },	{ "password",	PASSWD },	{ "passwd",	PASSWD },	{ "account",	ACCOUNT },	{ "machine",	MACH },	{ "macdef",	MACDEF },	{ NULL,		0 }};intxruserpass(const char *host, char **aname, char **apass, char **aacct){	const char *hdir;	char buf[BUFSIZ], *tmp;	char myname[MAXHOSTNAMELEN];	const char *mydomain;	int t, i, c, usedefault = 0;	struct stat stb;	hdir = getenv("HOME");	if (hdir == NULL)		hdir = ".";	snprintf(buf, sizeof(buf), "%s/.netrc", hdir);	cfile = fopen(buf, "r");	if (cfile == NULL) {		if (errno != ENOENT)			perror(buf);		return(0);	}	if (gethostname(myname, sizeof(myname)) < 0)		myname[0] = '\0';	if ((mydomain = strchr(myname, '.')) == NULL)		mydomain = "";next:	while ((t = token())) switch(t) {	case DEFAULT:		usedefault = 1;		/* FALL THROUGH */	case MACH:		if (!usedefault) {			if (token() != ID)				continue;			/*			 * Allow match either for user's input host name			 * or official hostname.  Also allow match of 			 * incompletely-specified host in local domain.			 */			if (strcasecmp(host, tokval) == 0)				goto match;			if (strcasecmp(hostname, tokval) == 0)				goto match;			if ((tmp = index(hostname, '.')) != NULL &&			    strcasecmp(tmp, mydomain) == 0 &&			    strncasecmp(hostname, tokval, tmp-hostname) == 0 &&			    tokval[tmp - hostname] == '\0')				goto match;			if ((tmp = index(host, '.')) != NULL &&			    strcasecmp(tmp, mydomain) == 0 &&			    strncasecmp(host, tokval, tmp - host) == 0 &&			    tokval[tmp - host] == '\0')				goto match;			continue;		}	match:		while ((t = token()) && t != MACH && t != DEFAULT) switch(t) {		case LOGIN:			if (token())				if (*aname == 0) { 					*aname = malloc((unsigned) strlen(tokval) + 1);					(void) strcpy(*aname, tokval);				} else {					if (strcmp(*aname, tokval))						goto next;				}			break;		case PASSWD:			if (*aname==NULL) {	fprintf(stderr, "Error: `password' must follow `login' in .netrc\n");				goto bad;			}			if (strcmp(*aname, "anonymous") &&			    fstat(fileno(cfile), &stb) >= 0 &&			    (stb.st_mode & 077) != 0) {	fprintf(stderr, "Error - .netrc file not correct permissions.\n");	fprintf(stderr, "Remove password or correct mode (should be 600).\n");				goto bad;			}			if (token() && *apass == 0) {				*apass = malloc((unsigned) strlen(tokval) + 1);				(void) strcpy(*apass, tokval);			}			break;		case ACCOUNT:			if (fstat(fileno(cfile), &stb) >= 0			    && (stb.st_mode & 077) != 0) {	fprintf(stderr, "Error - .netrc file not correct permissions.\n");	fprintf(stderr, "Remove account or correct mode (should be 600).\n");				goto bad;			}			if (token() && *aacct == 0) {				*aacct = malloc((unsigned) strlen(tokval) + 1);				(void) strcpy(*aacct, tokval);			}			break;		case MACDEF:			if (proxy) {				(void) fclose(cfile);				return(0);			}			while ((c=getc(cfile)) != EOF && (c == ' ' || c == '\t'));			if (c == EOF || c == '\n') {				printf("Missing macdef name argument.\n");				goto bad;			}			if (macnum == 16) {				printf("Limit of 16 macros have already been defined\n");				goto bad;			}			tmp = macros[macnum].mac_name;			*tmp++ = c;			for (i=0; i < 8 && (c=getc(cfile)) != EOF &&			    !isspace(c); ++i) {				*tmp++ = c;			}			if (c == EOF) {				printf("Macro definition missing null line terminator.\n");				goto bad;			}			*tmp = '\0';			if (c != '\n') {				while ((c=getc(cfile)) != EOF && c != '\n');			}			if (c == EOF) {				printf("Macro definition missing null line terminator.\n");				goto bad;			}			if (macnum == 0) {				macros[macnum].mac_start = macbuf;			}			else {				macros[macnum].mac_start = macros[macnum-1].mac_end + 1;			}			tmp = macros[macnum].mac_start;			while (tmp != macbuf + 4096) {				if ((c=getc(cfile)) == EOF) {				printf("Macro definition missing null line terminator.\n");					goto bad;				}				*tmp = c;				if (*tmp == '\n') {					if (*(tmp-1) == '\0') {					   macros[macnum++].mac_end = tmp - 1;					   break;					}					*tmp = '\0';				}				tmp++;			}			if (tmp == macbuf + 4096) {				printf("4K macro buffer exceeded\n");				goto bad;			}			break;		default:	fprintf(stderr, "Unknown .netrc keyword %s\n", tokval);			break;		}		goto done;	}done:	(void) fclose(cfile);	return(0);bad:	(void) fclose(cfile);	return(-1);}static inttoken(void){	char *cp;	int c;	struct toktab *t;	if (feof(cfile))		return (0);	while ((c = getc(cfile)) != EOF &&	    (c == '\n' || c == '\t' || c == ' ' || c == ','))		continue;	if (c == EOF)		return (0);	cp = tokval;	if (c == '"') {		while ((c = getc(cfile)) != EOF && c != '"') {			if (c == '\\')				c = getc(cfile);			*cp++ = c;		}	} else {		*cp++ = c;		while ((c = getc(cfile)) != EOF		    && c != '\n' && c != '\t' && c != ' ' && c != ',') {			if (c == '\\')				c = getc(cfile);			*cp++ = c;		}	}	*cp = 0;	if (tokval[0] == 0)		return (0);	for (t = toktab; t->tokstr; t++)		if (!strcmp(t->tokstr, tokval))			return (t->tval);	return (ID);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩13p一区二区三区| 91天堂素人约啪| 亚洲高清免费观看高清完整版在线观看 | 在线免费观看视频一区| 国产成人精品一区二| 蜜臀久久久久久久| 亚洲乱码中文字幕| 国产sm精品调教视频网站| 午夜av一区二区三区| 亚洲欧美国产77777| 中文字幕第一区第二区| 日韩精品自拍偷拍| 3atv在线一区二区三区| 欧美日本精品一区二区三区| 91麻豆国产在线观看| 99精品视频在线播放观看| 国产98色在线|日韩| 国产成人久久精品77777最新版本| 三级影片在线观看欧美日韩一区二区| 亚洲免费伊人电影| 亚洲精品成人a在线观看| 一区二区在线免费| 亚洲第一会所有码转帖| 丝袜国产日韩另类美女| 久久精品国产亚洲高清剧情介绍| 日本网站在线观看一区二区三区| 日本亚洲免费观看| 国产最新精品精品你懂的| 国产精品白丝jk黑袜喷水| 成人免费高清在线| 欧美日韩一区二区三区四区五区| 欧美色视频在线| 久久这里只有精品6| 中文字幕中文字幕中文字幕亚洲无线 | 亚洲一区二区欧美| 麻豆专区一区二区三区四区五区| 国模大尺度一区二区三区| 97久久久精品综合88久久| 欧美视频一区二区三区四区| 欧美成人a在线| 亚洲欧美日韩在线| 麻豆久久一区二区| 91丨九色丨国产丨porny| 91精品国产91综合久久蜜臀| 久久精品亚洲麻豆av一区二区 | 久久国产精品露脸对白| 欧美女孩性生活视频| 久久青草欧美一区二区三区| 人人狠狠综合久久亚洲| 欧美日韩免费视频| 午夜视频在线观看一区| 国内精品久久久久影院薰衣草| 国内精品在线播放| 久久婷婷成人综合色| 高清国产一区二区| 久久一夜天堂av一区二区三区| 美女视频一区二区| 日韩三级中文字幕| 国产剧情av麻豆香蕉精品| 国产亚洲一区二区三区在线观看| 国产精品一级在线| 亚洲天堂2016| 欧美日韩在线免费视频| 视频一区二区国产| 精品美女一区二区| 日韩亚洲欧美一区| 天涯成人国产亚洲精品一区av| 日韩一区二区视频在线观看| 久久99精品视频| 精品久久久久久最新网址| 国产伦精品一区二区三区在线观看| 国产欧美精品一区二区三区四区| 94-欧美-setu| 精品在线观看视频| 亚洲精品久久7777| 欧美日韩国产美女| 国产福利91精品一区二区三区| 亚洲乱码中文字幕| 久久天天做天天爱综合色| 欧美午夜理伦三级在线观看| 国产精品一线二线三线精华| 亚洲精品成人精品456| 精品999在线播放| 日本韩国一区二区三区视频| 韩国精品久久久| 午夜久久久久久| 一区二区三区 在线观看视频| 337p日本欧洲亚洲大胆色噜噜| 欧美日韩一区二区在线观看| 成人午夜电影久久影院| 精品一区二区久久| 午夜精品久久久久久久久久| 日韩美女视频一区二区| 久久久久久久久久久久久夜| 欧美另类一区二区三区| 不卡的电影网站| 国产夫妻精品视频| 国产精品99久久久久久有的能看 | 国产自产视频一区二区三区| 亚洲丰满少妇videoshd| 亚洲国产中文字幕| 亚洲国产欧美日韩另类综合| 国产精品久久久久影院色老大| 久久久久久电影| 中国av一区二区三区| 国产偷v国产偷v亚洲高清| 精品国产乱码久久久久久免费| 欧美成人性战久久| xf在线a精品一区二区视频网站| 日韩欧美一区在线观看| 日韩精品一区二区三区四区视频 | 3751色影院一区二区三区| 欧美精品第1页| 日韩欧美www| ●精品国产综合乱码久久久久 | 日韩一区二区三区高清免费看看| 欧美一区二区三区视频在线| 欧美一区二区视频在线观看| 日韩欧美一二区| 2021中文字幕一区亚洲| 国产欧美日韩视频在线观看| 中文字幕永久在线不卡| 亚洲视频一区二区在线| 亚洲国产综合91精品麻豆| 蜜桃视频在线观看一区| 国产激情一区二区三区桃花岛亚洲| 狠狠色丁香久久婷婷综合_中| 丁香婷婷综合激情五月色| 94-欧美-setu| 7777精品久久久大香线蕉| 久久伊99综合婷婷久久伊| 国产精品美女久久久久高潮| 亚洲一区二区黄色| 国产乱一区二区| 日本电影欧美片| 国产欧美日韩三区| 五月天婷婷综合| 91丝袜美女网| 2020国产精品| 天堂av在线一区| 成人天堂资源www在线| 91精品欧美综合在线观看最新| 国产精品午夜在线| 久久精品久久99精品久久| 成人aaaa免费全部观看| 国产日韩欧美制服另类| 亚洲国产欧美一区二区三区丁香婷| 国产成人精品亚洲日本在线桃色| 69成人精品免费视频| 国产精品第四页| 国产精品资源网站| 久久一区二区三区四区| 青青草一区二区三区| 91精品国产综合久久精品性色| 久久久久88色偷偷免费| 首页亚洲欧美制服丝腿| 一本一本大道香蕉久在线精品| 欧美成人精品高清在线播放| 亚洲小少妇裸体bbw| 欧美日韩亚州综合| 五月天久久比比资源色| 91麻豆国产自产在线观看| 精品国产3级a| bt7086福利一区国产| 亚洲综合丝袜美腿| 欧美福利电影网| 奇米色一区二区| 国产亚洲午夜高清国产拍精品| 豆国产96在线|亚洲| 亚洲三级电影网站| 欧美日韩二区三区| 美国三级日本三级久久99| 国产性色一区二区| 色综合久久久久久久久| 亚洲国产精品视频| 2020国产精品自拍| 91在线精品一区二区三区| 香蕉影视欧美成人| 久久久久亚洲蜜桃| 91免费版pro下载短视频| 首页国产丝袜综合| 中文字幕不卡一区| 欧美亚洲高清一区二区三区不卡| 日韩av电影天堂| 国产精品理伦片| 日韩欧美国产高清| 色久综合一二码| 国产精品一品二品| 天天av天天翘天天综合网| 中文字幕精品在线不卡| 欧美欧美欧美欧美首页| 91蜜桃视频在线| 激情综合亚洲精品| 亚洲国产一区二区三区| 国产精品毛片高清在线完整版| 日韩一区二区免费视频| 在线观看日韩毛片| 91亚洲男人天堂| 国产精品一区二区久久精品爱涩| 日韩精品一二区|