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

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

?? fetch.c

?? EFI(Extensible Firmware Interface)是下一代BIOS
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
	oldintr = NULL;
	if (setjmp(httpabort)) {
		if (oldintr)
			(void)signal(SIGINT, oldintr);
		goto cleanup_url_get;
	}
	oldintr = signal(SIGINT, aborthttp);

	bytes = 0;
	hashbytes = mark;
	progressmeter(-1);

	/* Finally, suck down the file. */
	i = 0;
	while ((len = read(s, buf, sizeof(buf))) > 0) {
		bytes += len;
		for (cp = buf; len > 0; len -= i, cp += i) {
			if ((i = (int)write(out, cp, len)) == -1) {
				warn("Writing %s", savefile);
				goto cleanup_url_get;
			}
			else if (i == 0)
				break;
		}
		if (hash && !progress) {
			while (bytes >= hashbytes) {
				(void)putchar('#');
				hashbytes += mark;
			}
			(void)fflush(stdout);
		}
	}
	if (hash && !progress && bytes > 0) {
		if (bytes < mark)
			(void)putchar('#');
		(void)putchar('\n');
		(void)fflush(stdout);
	}
	if (len != 0) {
		warn("Reading from socket");
		goto cleanup_url_get;
	}
	progressmeter(1);
	if (verbose)
		puts("Successfully retrieved file.");
	(void)signal(SIGINT, oldintr);

	close(s);
	close(out);
	if (proxy)
		free(proxy);
	free(line);
	return (0);

noftpautologin:
	warnx(
	    "Auto-login using ftp URLs isn't supported when using $ftp_proxy");
	goto cleanup_url_get;

improper:
	warnx("Improper response from %s", host);

cleanup_url_get:
	if (s != -1)
		close(s);
	if (proxy)
		free(proxy);
	free(line);
	return (-1);
}

/*
 * Abort a http retrieval
 */
void
aborthttp(notused)
	int notused;
{

	alarmtimer(0);
	puts("\nhttp fetch aborted.");
	(void)fflush(stdout);
	longjmp(httpabort, 1);
}

/*
 * Retrieve multiple files from the command line, transferring
 * files of the form "host:path", "ftp://host/path" using the
 * ftp protocol, and files of the form "http://host/path" using
 * the http protocol.
 * If path has a trailing "/", then return (-1);
 * the path will be cd-ed into and the connection remains open,
 * and the function will return -1 (to indicate the connection
 * is alive).
 * If an error occurs the return value will be the offset+1 in
 * argv[] of the file that caused a problem (i.e, argv[x]
 * returns x+1)
 * Otherwise, 0 is returned if all files retrieved successfully.
 */
int
auto_fetch(argc, argv)
	int argc;
	char *argv[];
{
	static char lasthost[MAXHOSTNAMELEN];
	char *xargv[5];
	char *cp, *line, *host, *dir, *file, *portnum;
	char *user, *pass;
	char *ftpproxy, *httpproxy;
	int rval, xargc;
	volatile int argpos;
	int dirhasglob, filehasglob;
	char rempath[MAXPATHLEN];

	argpos = 0;

	if (setjmp(toplevel)) {
		if (connected)
			disconnect(0, NULL);
		return (argpos + 1);
	}
	(void)signal(SIGINT, (sig_t)intr);
	(void)signal(SIGPIPE, (sig_t)lostpeer);

	ftpproxy = getenv(FTP_PROXY);
	httpproxy = getenv(HTTP_PROXY);

	/*
	 * Loop through as long as there's files to fetch.
	 */
	for (rval = 0; (rval == 0) && (argpos < argc); free(line), argpos++) {
		if (strchr(argv[argpos], ':') == NULL)
			break;
		host = dir = file = portnum = user = pass = NULL;

		/*
		 * We muck with the string, so we make a copy.
		 */
		line = strdup(argv[argpos]);
		if (line == NULL)
			errx(1, "Can't allocate memory for auto-fetch.");

		/*
		 * Try HTTP URL-style arguments first.
		 */
		if (strncasecmp(line, HTTP_URL, sizeof(HTTP_URL) - 1) == 0) {
			if (url_get(line, httpproxy) == -1)
				rval = argpos + 1;
			continue;
		}

		/*
		 * Try FTP URL-style arguments next. If ftpproxy is
		 * set, use url_get() instead of standard ftp.
		 * Finally, try host:file.
		 */
		host = line;
		if (strncasecmp(line, FTP_URL, sizeof(FTP_URL) - 1) == 0) {
			if (ftpproxy) {
				if (url_get(line, ftpproxy) == -1)
					rval = argpos + 1;
				continue;
			}
			host += sizeof(FTP_URL) - 1;
			dir = strchr(host, '/');

				/* look for [user:pass@]host[:port] */
			pass = strpbrk(host, ":@/");
			if (pass == NULL || *pass == '/') {
				pass = NULL;
				goto parsed_url;
			}
			if (pass == host || *pass == '@') {
bad_ftp_url:
				warnx("Invalid URL: %s", argv[argpos]);
				rval = argpos + 1;
				continue;
			}
			*pass++ = '\0';
			cp = strpbrk(pass, ":@/");
			if (cp == NULL || *cp == '/') {
				portnum = pass;
				pass = NULL;
				goto parsed_url;
			}
			if (EMPTYSTRING(cp) || *cp == ':')
				goto bad_ftp_url;
			*cp++ = '\0';
			user = host;
			if (EMPTYSTRING(user))
				goto bad_ftp_url;
			host = cp;
			portnum = strchr(host, ':');
			if (portnum != NULL)
				*portnum++ = '\0';
		} else {			/* classic style `host:file' */
			dir = strchr(host, ':');
		}
parsed_url:
		if (EMPTYSTRING(host)) {
			rval = argpos + 1;
			continue;
		}

		/*
		 * If dir is NULL, the file wasn't specified
		 * (URL looked something like ftp://host)
		 */
		if (dir != NULL)
			*dir++ = '\0';

		/*
		 * Extract the file and (if present) directory name.
		 */
		if (! EMPTYSTRING(dir)) {
			cp = strrchr(dir, '/');
			if (cp != NULL) {
				*cp++ = '\0';
				file = cp;
			} else {
				file = dir;
				dir = NULL;
			}
		}
		if (debug)
			printf("user %s:%s host %s port %s dir %s file %s\n",
			    user, pass, host, portnum, dir, file);

		/*
		 * Set up the connection if we don't have one.
		 */
		if (strcmp(host, lasthost) != 0) {
			int oautologin;

			(void)strcpy(lasthost, host);
			if (connected)
				disconnect(0, NULL);
			xargv[0] = __progname;
			xargv[1] = host;
			xargv[2] = NULL;
			xargc = 2;
			if (! EMPTYSTRING(portnum)) {
				xargv[2] = portnum;
				xargv[3] = NULL;
				xargc = 3;
			}
			oautologin = autologin;
			if (user != NULL)
				autologin = 0;
			setpeer(xargc, xargv);
			autologin = oautologin;
			if ((connected == 0)
			 || ((connected == 1) && !login(host, user, pass)) ) {
				warnx("Can't connect or login to host `%s'",
				    host);
				rval = argpos + 1;
				continue;
			}

			/* Always use binary transfers. */
			setbinary(0, NULL);
		}
			/* cd back to '/' */
		xargv[0] = "cd";
		xargv[1] = "/";
		xargv[2] = NULL;
		cd(2, xargv);
		if (! dirchange) {
			rval = argpos + 1;
			continue;
		}

		dirhasglob = filehasglob = 0;
		if (doglob) {
			if (! EMPTYSTRING(dir) &&
			    strpbrk(dir, "*?[]{}") != NULL)
				dirhasglob = 1;
			if (! EMPTYSTRING(file) &&
			    strpbrk(file, "*?[]{}") != NULL)
				filehasglob = 1;
		}

		/* Change directories, if necessary. */
		if (! EMPTYSTRING(dir) && !dirhasglob) {
			xargv[0] = "cd";
			xargv[1] = dir;
			xargv[2] = NULL;
			cd(2, xargv);
			if (! dirchange) {
				rval = argpos + 1;
				continue;
			}
		}

		if (EMPTYSTRING(file)) {
			rval = -1;
			continue;
		}

		if (!verbose)
			printf("Retrieving %s/%s\n", dir ? dir : "", file);

		if (dirhasglob) {
			snprintf(rempath, sizeof(rempath), "%s/%s", dir, file);
			file = rempath;
		}

		/* Fetch the file(s). */
		xargv[0] = "get";
		xargv[1] = file;
		xargv[2] = NULL;
		if (dirhasglob || filehasglob) {
			int ointeractive;

			ointeractive = interactive;
			interactive = 0;
			xargv[0] = "mget";
			mget(2, xargv);
			interactive = ointeractive;
		} else
			get(2, xargv);

		if ((code / 100) != COMPLETE)
			rval = argpos + 1;
	}
	if (connected && rval != -1)
		disconnect(0, NULL);
	return (rval);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频123区在线观看| 久久免费看少妇高潮| 国产精品伦一区| 黄页网站大全一区二区| 亚洲裸体xxx| 日韩免费电影网站| 99国产麻豆精品| 一区二区三区免费观看| 日韩一级二级三级| 国内久久精品视频| 偷拍日韩校园综合在线| 日韩一区二区在线观看| av日韩在线网站| 亚洲高清一区二区三区| 日韩伦理电影网| 国内精品国产三级国产a久久| 国产日韩欧美不卡在线| 日韩午夜在线播放| 色婷婷av一区| 91在线视频免费91| 国产1区2区3区精品美女| 精品国产123| 在线观看视频欧美| 亚洲裸体在线观看| 欧美自拍偷拍一区| 日本不卡在线视频| 亚洲色图视频网| 国产91丝袜在线18| 亚洲国产综合在线| 午夜视频一区二区三区| 天天综合色天天| 亚洲美女屁股眼交3| 在线精品视频免费播放| 国产日韩精品久久久| 欧美一区二区视频免费观看| 国产又粗又猛又爽又黄91精品| 欧美视频一区二区在线观看| 亚洲成a人片在线不卡一二三区| 欧美剧在线免费观看网站| 国产一区二区伦理| 亚洲成人动漫一区| 久久久综合精品| 欧美天堂亚洲电影院在线播放| 蜜桃视频在线观看一区| 亚洲乱码国产乱码精品精98午夜| 日韩视频免费观看高清完整版 | 国产精品一卡二卡| 亚洲精品国产无天堂网2021| 91精品国产综合久久蜜臀| 99精品国产一区二区三区不卡| 久久国产精品区| 日本视频一区二区| 日日夜夜免费精品| 亚洲综合在线免费观看| 国产精品久久久久久久久搜平片 | 日韩专区一卡二卡| 在线成人免费视频| 成人激情小说网站| 成人免费毛片片v| 成人av影院在线| 粗大黑人巨茎大战欧美成人| 丁香婷婷综合五月| 成人免费视频网站在线观看| 另类专区欧美蜜桃臀第一页| 日韩电影在线免费看| 亚洲精品五月天| 日本一区二区免费在线| 久久狠狠亚洲综合| 国产亚洲一区字幕| 国产黄色91视频| ...av二区三区久久精品| 97se狠狠狠综合亚洲狠狠| 亚洲精品高清在线观看| 欧美色图12p| 久久精品噜噜噜成人88aⅴ| 国产欧美日韩在线| 欧美大片在线观看一区| 成人黄色av电影| 国产精品日产欧美久久久久| 一区二区三区.www| 国产精品亚洲专一区二区三区 | 韩国欧美一区二区| 91精品福利在线一区二区三区 | 久久国产精品露脸对白| 欧美日韩国产一级二级| 偷拍一区二区三区| 日韩三级视频在线看| 免费欧美日韩国产三级电影| 欧美哺乳videos| 国产资源精品在线观看| 国产午夜精品一区二区| proumb性欧美在线观看| 亚洲精品国产高清久久伦理二区| 91免费看视频| 亚洲亚洲精品在线观看| 91精品国产欧美日韩| 美女在线一区二区| 国产日本一区二区| 99re热这里只有精品免费视频| 亚洲综合在线第一页| 欧美一级精品大片| 国产91高潮流白浆在线麻豆| 一区二区三区资源| 在线不卡的av| 国产精品18久久久久久久久久久久 | 国产欧美一区二区精品性| 本田岬高潮一区二区三区| 一个色综合网站| 精品人伦一区二区色婷婷| a在线欧美一区| 亚洲电影在线免费观看| 精品国产91久久久久久久妲己 | 欧美日韩在线观看一区二区| 久久aⅴ国产欧美74aaa| 国产精品久久久久久福利一牛影视 | 99精品热视频| 久久99国内精品| 亚洲乱码日产精品bd| 久久毛片高清国产| 欧美色男人天堂| 丁香婷婷综合网| 看国产成人h片视频| 亚洲精品视频在线看| 精品国产一区二区三区不卡| 欧美丝袜丝交足nylons图片| 成人综合在线网站| 日韩精品欧美成人高清一区二区| 欧美国产成人在线| 欧美一区二区二区| 欧美体内she精视频| 国产成人免费在线观看不卡| 日韩激情av在线| 亚洲天堂av一区| 久久婷婷国产综合精品青草 | 久久影院视频免费| 欧美日韩aaaaaa| 94-欧美-setu| 成人免费看片app下载| 久久精品国产亚洲5555| 亚洲永久精品大片| 国产精品色一区二区三区| 日韩一区二区免费在线电影| 欧美日韩一区二区电影| 99热这里都是精品| 国产综合久久久久影院| 日本不卡在线视频| 午夜视频久久久久久| 亚洲精品免费在线观看| 国产精品三级电影| 久久老女人爱爱| 久久影院午夜片一区| 久久综合狠狠综合久久综合88| 欧美日韩在线播放| 欧美性高清videossexo| 色噜噜久久综合| 欧洲一区在线电影| 欧美视频自拍偷拍| 欧美日韩一卡二卡三卡 | 国产欧美一区二区精品性| 国产欧美一区二区三区在线看蜜臀| 久久精品在线免费观看| 久久久久久久精| 日本一区免费视频| 亚洲欧洲性图库| 亚洲精品国产a| 图片区日韩欧美亚洲| 久久99精品国产| 国产sm精品调教视频网站| 成人免费视频一区二区| 91蝌蚪porny九色| 欧亚洲嫩模精品一区三区| 欧美日韩电影在线播放| 日韩午夜在线观看| 精品国产免费一区二区三区四区 | 日本伦理一区二区| 欧美丰满嫩嫩电影| 日韩三级高清在线| 国产视频在线观看一区二区三区| 中文字幕免费一区| 亚洲男女一区二区三区| 午夜伊人狠狠久久| 韩国午夜理伦三级不卡影院| 不卡在线观看av| 欧美日韩黄色影视| 国产日本欧洲亚洲| 亚洲一区影音先锋| 精品一区二区三区影院在线午夜 | 国产麻豆91精品| 99国产欧美另类久久久精品| 欧美日韩国产欧美日美国产精品| 欧美一卡2卡3卡4卡| 久久精品在这里| 亚洲成人动漫在线观看| 国产成人综合自拍| 欧美日韩大陆一区二区| 国产精品婷婷午夜在线观看| 性做久久久久久| 波多野结衣中文一区| 91 com成人网| 亚洲美女淫视频|