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

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

?? ruserpass.c

?? EFI(Extensible Firmware Interface)是下一代BIOS
?? C
字號(hào):
/*	$Id: ruserpass.c,v 1.7 1997/12/13 20:38:20 pst Exp $	*/
/*	$NetBSD: ruserpass.c,v 1.14.2.1 1997/11/18 01:02:05 mellon Exp $	*/

/*
 * Copyright (c) 1985, 1993, 1994
 *	The 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.
 */

#include <sys/cdefs.h>
#ifndef lint
#if 0
static char sccsid[] = "@(#)ruserpass.c	8.4 (Berkeley) 4/27/95";
#else
__RCSID("$Id: ruserpass.c,v 1.7 1997/12/13 20:38:20 pst Exp $");
__RCSID_SOURCE("$NetBSD: ruserpass.c,v 1.14.2.1 1997/11/18 01:02:05 mellon Exp $");
#endif
#endif /* not lint */

#include <sys/types.h>
#include <sys/stat.h>

#include <ctype.h>
#include <err.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

#include "ftp_var.h"

static	int token __P((void));
static	FILE *cfile;

#define	DEFAULT	1
#define	LOGIN	2
#define	PASSWD	3
#define	ACCOUNT 4
#define MACDEF  5
#define	ID	10
#define	MACH	11

static char tokval[100];

static struct toktab {
	char *tokstr;
	int tval;
} toktab[]= {
	{ "default",	DEFAULT },
	{ "login",	LOGIN },
	{ "password",	PASSWD },
	{ "passwd",	PASSWD },
	{ "account",	ACCOUNT },
	{ "machine",	MACH },
	{ "macdef",	MACDEF },
	{ NULL,		0 }
};

int
ruserpass(host, aname, apass, aacct)
	const char *host;
	char **aname, **apass, **aacct;
{
	char *hdir, buf[BUFSIZ], *tmp;
	char myname[MAXHOSTNAMELEN], *mydomain;
	int t, i, c, usedefault = 0;
	struct stat stb;

	hdir = getenv("HOME");
	if (hdir == NULL)
		hdir = ".";
	if (strlen(hdir) + sizeof(".netrc") < sizeof(buf)) {
		(void)snprintf(buf, sizeof buf, "%s/.netrc", hdir);
	} else {
		warnx("%s/.netrc: %s", hdir, strerror(ENAMETOOLONG));
		return (0);
	}
	cfile = fopen(buf, "r");
	if (cfile == NULL) {
		if (errno != ENOENT)
			warn("%s", 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 = strchr(hostname, '.')) != NULL &&
			    strcasecmp(tmp, mydomain) == 0 &&
			    strncasecmp(hostname, tokval, tmp-hostname) == 0 &&
			    tokval[tmp - hostname] == '\0')
				goto match;
			if ((tmp = strchr(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 == NULL) {
					*aname = strdup(tokval);
					if (*aname == NULL)
						err(1, "can't strdup *aname");
				} else {
					if (strcmp(*aname, tokval))
						goto next;
				}
			break;
		case PASSWD:
			if ((*aname == NULL || strcmp(*aname, "anonymous")) &&
			    fstat(fileno(cfile), &stb) >= 0 &&
			    (stb.st_mode & 077) != 0) {
	warnx("Error: .netrc file is readable by others.");
	warnx("Remove password or make file unreadable by others.");
				goto bad;
			}
			if (token() && *apass == NULL) {
				*apass = strdup(tokval);
				if (*apass == NULL)
					err(1, "can't strdup *apass");
			}
			break;
		case ACCOUNT:
			if (fstat(fileno(cfile), &stb) >= 0
			    && (stb.st_mode & 077) != 0) {
	warnx("Error: .netrc file is readable by others.");
	warnx("Remove account or make file unreadable by others.");
				goto bad;
			}
			if (token() && *aacct == NULL) {
				*aacct = strdup(tokval);
				if (*aacct == NULL)
					err(1, "can't strdup *aacct");
			}
			break;
		case MACDEF:
			if (proxy) {
				(void)fclose(cfile);
				return (0);
			}
			while ((c=getc(cfile)) != EOF)
				if (c != ' ' && c != '\t')
					break;
			if (c == EOF || c == '\n') {
				puts("Missing macdef name argument.");
				goto bad;
			}
			if (macnum == 16) {
				puts(
"Limit of 16 macros have already been defined.");
				goto bad;
			}
			tmp = macros[macnum].mac_name;
			*tmp++ = c;
			for (i=0; i < 8 && (c=getc(cfile)) != EOF &&
			     (!isascii(c) || !isspace(c)); ++i) {
				*tmp++ = c;
			}
			if (c == EOF) {
				puts(
"Macro definition missing null line terminator.");
				goto bad;
			}
			*tmp = '\0';
			if (c != '\n') {
				while ((c=getc(cfile)) != EOF && c != '\n');
			}
			if (c == EOF) {
				puts(
"Macro definition missing null line terminator.");
				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) {
				puts(
"Macro definition missing null line terminator.");
					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) {
				puts("4K macro buffer exceeded.");
				goto bad;
			}
			break;
		default:
			warnx("Unknown .netrc keyword %s", tokval);
			break;
		}
		goto done;
	}
done:
	(void)fclose(cfile);
	return (0);
bad:
	(void)fclose(cfile);
	return (-1);
}

static int
token()
{
	char *cp;
	int c;
	struct toktab *t;

	if (feof(cfile) || ferror(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
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产一区二区在线播放| 91精品国产综合久久精品app| 色综合激情久久| 欧美日本韩国一区二区三区视频| 欧美电视剧在线看免费| 国产女主播一区| 亚洲一区二区三区自拍| 裸体一区二区三区| 国产成人av一区二区三区在线 | 欧美精品色综合| 精品美女被调教视频大全网站| 中文字幕乱码日本亚洲一区二区 | 欧美日韩国产一级片| 精品国产一区二区三区不卡| 一区二区中文视频| 日韩av电影免费观看高清完整版 | 1024精品合集| 乱中年女人伦av一区二区| av电影在线不卡| 欧美一卡二卡三卡| 亚洲天堂av一区| 韩国欧美国产1区| 色综合天天综合网天天看片| 日韩欧美国产精品| 一区二区三区中文字幕| 国产真实乱子伦精品视频| 在线免费观看日韩欧美| 欧美激情综合网| 麻豆精品视频在线观看| 色呦呦国产精品| 久久精品亚洲乱码伦伦中文| 亚洲第一狼人社区| 91猫先生在线| 亚洲国产成人午夜在线一区| 日本女优在线视频一区二区| 在线观看免费视频综合| 国产亚洲欧美激情| 久久国产免费看| 91麻豆精品国产91久久久资源速度| 国产精品久久久久一区二区三区| 久久国产精品99精品国产 | 日韩成人一级大片| 色综合视频在线观看| 国产欧美va欧美不卡在线| 久久国内精品自在自线400部| 欧美伊人久久久久久久久影院| 欧美高清在线一区| 国产精品一区二区男女羞羞无遮挡| 精品视频1区2区3区| 中文字幕亚洲在| 国产91综合网| 久久影院视频免费| 毛片av中文字幕一区二区| 欧美日韩dvd在线观看| 亚洲一区在线观看免费 | 亚洲国产日韩一区二区| 91亚洲精品乱码久久久久久蜜桃 | av在线播放一区二区三区| 欧美精品一区二区三区一线天视频| 亚洲成人高清在线| 欧美亚洲综合色| 亚洲精品网站在线观看| 91在线观看地址| 亚洲视频一二三| 一本久道中文字幕精品亚洲嫩| 亚洲国产精品二十页| 国产福利不卡视频| 久久精品日产第一区二区三区高清版| 裸体在线国模精品偷拍| 欧美一区二区精美| 日本在线不卡视频| 日韩欧美在线网站| 麻豆精品一区二区综合av| 精品人在线二区三区| 精品一区二区三区在线观看国产| 精品乱人伦一区二区三区| 日日噜噜夜夜狠狠视频欧美人| 欧美日韩国产综合一区二区| 视频一区免费在线观看| 欧美一区二区视频在线观看 | 精品99久久久久久| 国产在线精品不卡| 国产精品色呦呦| 91亚洲资源网| 亚洲成人av电影在线| 欧美放荡的少妇| 久久99九九99精品| 国产网站一区二区| 99精品在线免费| 亚洲国产精品自拍| 日韩欧美第一区| 成人综合婷婷国产精品久久 | 91视视频在线观看入口直接观看www | 亚洲精品视频在线观看网站| 丁香激情综合五月| 亚洲视频资源在线| 欧美疯狂做受xxxx富婆| 精品综合久久久久久8888| 久久亚洲综合av| 成人国产精品免费| 一区二区在线观看免费| 欧美日韩成人在线| 国产精品一区二区三区四区| 亚洲日本免费电影| 欧美福利电影网| 国产精品白丝av| 一级日本不卡的影视| 日韩一区二区精品在线观看| 国产一区二区三区免费看 | 欧美亚洲国产一卡| 精品一区中文字幕| 亚洲精品视频免费看| 日韩欧美卡一卡二| 99久久久精品| 日本sm残虐另类| 国产精品国产三级国产普通话三级| 欧美三级电影网| 国产成a人亚洲| 婷婷综合五月天| 国产精品人成在线观看免费| 欧美日韩你懂的| 国产99久久久国产精品潘金网站| 亚洲一区二区综合| 国产视频一区二区三区在线观看| 在线观看精品一区| 国产91露脸合集magnet| 亚洲午夜一区二区三区| 国产日本欧洲亚洲| 欧美日韩精品电影| 成av人片一区二区| 美女视频一区二区三区| 亚洲精品久久久蜜桃| 久久久久99精品国产片| 欧美婷婷六月丁香综合色| 国产麻豆精品视频| 亚洲第一久久影院| 综合av第一页| 26uuu精品一区二区在线观看| 在线看不卡av| 成人精品高清在线| 久久97超碰国产精品超碰| 亚洲综合色噜噜狠狠| 欧美国产激情二区三区| 欧美成人a视频| 精品视频1区2区| 色婷婷亚洲一区二区三区| 国产精品亚洲成人| 麻豆成人久久精品二区三区红 | 欧美精品一卡两卡| 99精品桃花视频在线观看| 国产自产2019最新不卡| 视频一区视频二区在线观看| 亚洲欧美一区二区三区国产精品| 精品国产1区二区| 91精品国产日韩91久久久久久| 色婷婷综合久久| 99热精品国产| 国产91高潮流白浆在线麻豆| 国精产品一区一区三区mba桃花| 午夜伦理一区二区| 亚洲老司机在线| 亚洲精品视频免费观看| 中文字幕一区日韩精品欧美| 国产日产亚洲精品系列| 精品福利一区二区三区| 日韩视频一区在线观看| 91精品国产福利| 宅男在线国产精品| 欧美一区二区三区视频在线观看| 欧美日精品一区视频| 欧美色网站导航| 欧美午夜精品一区二区蜜桃| 在线日韩国产精品| 在线观看不卡一区| 欧美色大人视频| 欧美午夜在线一二页| 欧美在线视频日韩| 欧美日韩中文一区| 久久久美女毛片| 亚洲精品在线免费观看视频| 欧美电视剧免费观看| 久久综合中文字幕| www成人在线观看| 久久久精品欧美丰满| 国产欧美日韩三级| 中文字幕在线一区| 亚洲欧美日韩国产手机在线 | 8x8x8国产精品| 欧美一区二区三区视频免费播放 | 国产精品一二二区| 粉嫩aⅴ一区二区三区四区五区| 成人免费视频app| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美精品久久天天躁| 91精品欧美综合在线观看最新| 欧美一区二区三区男人的天堂| 欧美videos中文字幕| 2021国产精品久久精品| 欧美国产欧美综合| 亚洲麻豆国产自偷在线|