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

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

?? drcomd.c

?? 校園網(wǎng)撥號端軟件
?? C
字號:
#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <sys/un.h>#include <sys/stat.h>#include <unistd.h>#include <fcntl.h>#include <errno.h>#include "drcomd.h"#include "client_daemon.h"#include "log.h"#define DRCOM_VERSION	"1.4.0"int status = 0;int sigusr1_pipe[2] = {-1,-1};pthread_t th_watchport = 0, th_keepalive = 0;static void usage(void){	puts("drcomd, daemon part of the drcomc-drcomcd client-daemon programs\n\n"		 "	usage: drcomd [ -n | --nodaemon ]\n");	exit(EXIT_FAILURE);}static void daemonize(void){	pid_t pid, sid;	int fd;	pid = fork();	if(pid > 0)		exit(0);	if(pid < 0){		logerr("fork of daemon failed: %s", strerror(errno));		exit(-1);	}	fd = open("/dev/null", O_RDWR);	if (fd >= 0) {		if (fd != STDIN_FILENO)			dup2(fd, STDIN_FILENO);		if (fd != STDOUT_FILENO)			dup2(fd, STDOUT_FILENO);		if (fd != STDERR_FILENO)			dup2(fd, STDERR_FILENO);		if (fd > STDERR_FILENO)			close(fd);	}	if (fd < 0)		logerr("fatal, could not open /dev/null: %s", strerror(errno));	chdir("/");	umask(022);	/* become session leader */	sid = setsid();	dbg("our session is %d", sid);}static void load_kernel_module(void){	int r;	char s[50];	strcpy(s, "/sbin/modprobe drcom");	r = system(s);	if (r) {		fprintf(stderr, "drcomd: Error loading drcom module\n");		exit(EXIT_FAILURE);	}}static void do_one_client(int s, struct drcom_handle *h){	struct drcomcd_hdr cd_hdr;	int s2;	fd_set	rfds;	struct timeval t;	int r;	s2 = accept(s, NULL, NULL);	if (s2 == -1 && errno != EINTR) {		logerr("daemon: accept failed: %s", strerror(errno));		return;	}	FD_ZERO(&rfds);	FD_SET(s2, &rfds);	t.tv_sec = 2;	t.tv_usec = 0;	r = select(s2+1, &rfds, NULL, NULL, &t);	if(r<=0){		logerr("accepted, but no data\n");		goto error;	}	if(!FD_ISSET(s2, &rfds)){		goto error;	}	r = safe_recv(s2, &cd_hdr, sizeof(struct drcomcd_hdr));	if (r != sizeof(struct drcomcd_hdr)){		logerr("daemon: recv: %s", strerror(errno));		goto error;	}	if (cd_hdr.signature != DRCOM_SIGNATURE) {		logerr("Unknown signature\n");		goto error;	}	switch (cd_hdr.type) {	case DRCOMCD_LOGIN:		do_command_login(s2, h);		break;	case DRCOMCD_LOGOUT:		do_command_logout(s2, h);		break;	case DRCOMCD_PASSWD:		do_command_passwd(s2, h);		break;	default:		break;	}error:	close(s2);	return;} static int init_daemon_socket(void){	int s, r;	struct sockaddr_un un_daemon;	memset(&un_daemon, 0x00, sizeof(struct sockaddr_un));	un_daemon.sun_family = AF_UNIX;	/* use abstract namespace */	strncpy(&un_daemon.sun_path[1], DRCOMCD_SOCK, sizeof(un_daemon.sun_path)-1);	s = socket(PF_UNIX, SOCK_STREAM, 0);	if (s == -1) {		logerr("drcomd: Socket creation failed: %s\n", strerror(errno));		return -1;	}	/* this ensures only one copy running */	r = bind(s, (struct sockaddr *) &un_daemon, sizeof(un_daemon));	if (r) {		logerr("drcomd: Bind failed: %s\n", strerror(errno));		return -1;	}	r = listen(s, 1);	if (r) {		logerr("drcomd: Listen failed: %s\n", strerror(errno));		return -1;	}	return s;}static void drcomd_daemon(struct drcom_handle *h){	int s;	int r;	s = init_daemon_socket();	if(s < 0)		exit(-1);	if(setup_sig_handlers()<0){		logerr("sig handlers not setup, exit.\n");		exit(1);	}	loginfo("drcomd %s started.\n", DRCOM_VERSION);	while (1) {		int maxfd;		fd_set readfds;		FD_ZERO(&readfds);		FD_SET(s, &readfds);		FD_SET(sigusr1_pipe[READ_END], &readfds);				maxfd = s;		if(maxfd < sigusr1_pipe[READ_END])			maxfd = sigusr1_pipe[READ_END];		unblock_sigusr1();		r = select(maxfd+1, &readfds, NULL,NULL, NULL);		if(r<0){			if(errno != EINTR)				logerr("signal caught\n");			continue;		}		if(FD_ISSET(sigusr1_pipe[READ_END], &readfds)){			char buf[256];			int *sig = (int*)buf;			read(sigusr1_pipe[READ_END], &buf, sizeof(buf));			do_signals(h, *sig);		}		if(!FD_ISSET(s, &readfds))			continue;		block_sigusr1();		do_one_client(s, h);	}	/* FIXME: 	 * drcom_clean_up();	 * drcom_destroy_handle();	 * close_daemon_socket(); 	 */}int main(int argc, char **argv){	struct drcom_handle *h;	int daemon = 1;	int i;	if(argc > 2)		usage();	for (i = 1 ; i < argc; i++) {		char *arg = argv[i];		if (strcmp(arg, "--nodaemon") == 0 || strcmp(arg, "-n") == 0) {			printf("%s: log to stderr.\n", argv[0]);			daemon = 0;		}	}	/* Initialize the handle for the lifetime of the daemon */	h = drcom_create_handle();	if(drcom_init(h)<0){		logerr("conf file err\n");		exit(-1);	}	load_kernel_module();	if (daemon)		daemonize();	logging_init("drcomd", daemon);	drcomd_daemon(h);	logging_close();	return 0;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费在线| 色婷婷精品久久二区二区蜜臂av| 国产美女娇喘av呻吟久久| 91在线精品一区二区| 欧美一区二区三区的| 国产精品国产三级国产三级人妇 | 亚洲成av人影院| 国产成a人无v码亚洲福利| 91精品国产综合久久香蕉的特点| 成人免费在线视频观看| 国产一区二区免费在线| 欧美一区二区视频免费观看| 中文字幕永久在线不卡| 高清免费成人av| www欧美成人18+| 激情综合亚洲精品| 91精品国产综合久久精品图片| 奇米亚洲午夜久久精品| 色欧美日韩亚洲| 亚洲视频香蕉人妖| bt7086福利一区国产| 国产精品久久久久久久久晋中| 国产乱码精品一区二区三区五月婷 | 在线观看国产91| 国产精品成人网| 成人av在线电影| 国产欧美日韩视频一区二区| 激情文学综合丁香| 日韩免费看的电影| 久久er99精品| www久久精品| 国产精品亚洲第一| 国产精品亲子伦对白| 成人免费视频免费观看| 国产精品丝袜久久久久久app| 国产精品18久久久| 欧美国产综合色视频| 国产91富婆露脸刺激对白| 中文字幕av免费专区久久| 国产1区2区3区精品美女| 欧美国产1区2区| 91麻豆swag| 午夜免费欧美电影| 日韩欧美成人激情| 成人在线视频一区| 中文字幕一区二区日韩精品绯色| 色综合中文字幕国产 | 国产成人精品综合在线观看| 一区二区三区久久久| aaa欧美大片| 一区二区在线免费观看| 69精品人人人人| 国产一区二区三区免费在线观看| 欧美激情一区在线观看| 91麻豆精东视频| 日韩在线卡一卡二| 久久综合色播五月| 色又黄又爽网站www久久| 日日夜夜免费精品| 国产亚洲1区2区3区| 91亚洲精品乱码久久久久久蜜桃| 亚洲成人福利片| 久久久精品影视| 91福利国产成人精品照片| 日本午夜一区二区| 一区在线中文字幕| 日韩视频一区二区三区在线播放 | 亚洲成人三级小说| 精品av综合导航| 日本韩国精品在线| 精彩视频一区二区| 亚洲精品日产精品乱码不卡| 日韩美女一区二区三区四区| 99re热这里只有精品免费视频 | 国产老肥熟一区二区三区| 亚洲精品欧美激情| 欧美精品一区男女天堂| 在线精品视频一区二区| 国产寡妇亲子伦一区二区| 亚洲不卡一区二区三区| 国产精品福利在线播放| 欧美一区二区免费观在线| 91色在线porny| 国产最新精品精品你懂的| 蜜臀av一区二区在线免费观看| 国产精品久久久久久久第一福利| 日韩一级大片在线| 欧美性色黄大片| av成人老司机| 国产福利一区在线| 蜜桃av噜噜一区| 午夜私人影院久久久久| 亚洲乱码中文字幕| 欧美国产1区2区| 久久女同性恋中文字幕| 日韩午夜精品视频| 欧美久久久久久久久| 一本到不卡免费一区二区| 成人午夜精品在线| 国产福利91精品一区二区三区| 强制捆绑调教一区二区| 亚洲国产一区在线观看| 亚洲视频香蕉人妖| 中文字幕在线播放不卡一区| 久久久久久久国产精品影院| 久久综合五月天婷婷伊人| 欧美一区二区三区的| 欧美丰满美乳xxx高潮www| 欧美亚洲一区二区在线观看| 色婷婷激情综合| 色88888久久久久久影院野外| 成人av在线影院| 成av人片一区二区| heyzo一本久久综合| 北条麻妃一区二区三区| 成人激情电影免费在线观看| 成人免费视频一区二区| 成人免费高清视频| www..com久久爱| 一本大道综合伊人精品热热| 在线观看www91| 日本一区二区三区电影| 国产日韩在线不卡| 中文字幕视频一区| 亚洲一区二区精品3399| 午夜精品免费在线| 日本va欧美va瓶| 国产在线一区二区| 成人午夜大片免费观看| 91麻豆精品一区二区三区| 在线一区二区视频| 欧美一级日韩一级| 久久精品男人的天堂| 国产精品乱人伦一区二区| 亚洲综合清纯丝袜自拍| 三级欧美韩日大片在线看| 久久99精品久久久久久| 懂色av中文一区二区三区| 91在线无精精品入口| 777奇米成人网| 久久精品夜夜夜夜久久| 一区二区三区四区中文字幕| 日韩精品久久理论片| 国产成人亚洲综合a∨猫咪| 色综合久久99| 欧美精品日韩精品| 国产欧美一区二区三区沐欲| 亚洲欧美成aⅴ人在线观看| 日本欧美一区二区在线观看| 成人性生交大片免费看视频在线| 欧美在线制服丝袜| 久久影音资源网| 亚洲国产人成综合网站| 国产一区不卡精品| 欧美色综合网站| 久久婷婷色综合| 亚洲第一久久影院| 成人av在线一区二区| 69堂成人精品免费视频| 国产精品美女视频| 捆绑变态av一区二区三区| 99久久精品免费观看| 欧美sm极限捆绑bd| 亚洲一区二区五区| 成人久久视频在线观看| 91精品欧美一区二区三区综合在 | 日韩亚洲欧美中文三级| 亚洲欧美日韩国产一区二区三区| 蜜桃视频在线观看一区| 欧美在线视频日韩| 国产精品少妇自拍| 老司机精品视频导航| 欧美三级欧美一级| 中文字幕综合网| 国产高清不卡一区二区| 在线91免费看| 亚洲成在人线免费| 91啪亚洲精品| 国产精品成人在线观看| 国产乱码精品一区二区三区忘忧草| 欧美色爱综合网| 又紧又大又爽精品一区二区| 国产精品99精品久久免费| 精品三级av在线| 毛片av一区二区| 欧美一区二区三区免费在线看| 亚洲午夜久久久| 色婷婷综合激情| 亚洲欧美日韩国产综合| 99久久久免费精品国产一区二区| 国产视频在线观看一区二区三区 | 91精品欧美福利在线观看| 亚洲中国最大av网站| 色综合天天综合网天天狠天天| 日本一区二区免费在线观看视频 | 成人av综合一区| 国产精品欧美一区二区三区| 国产成人免费网站| 中文字幕第一区综合| 顶级嫩模精品视频在线看|