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

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

?? mcast_user.c

?? h內核
?? C
字號:
/* * user-mode-linux networking multicast transport * Copyright (C) 2001 by Harald Welte <laforge@gnumonks.org> * * based on the existing uml-networking code, which is * Copyright (C) 2001 Lennert Buytenhek (buytenh@gnu.org) and  * James Leu (jleu@mindspring.net). * Copyright (C) 2001 by various other people who didn't put their name here. * * Licensed under the GPL. * */#include <errno.h>#include <unistd.h>#include <linux/inet.h>#include <sys/socket.h>#include <sys/un.h>#include <sys/time.h>#include <netinet/in.h>#include "net_user.h"#include "mcast.h"#include "kern_util.h"#include "user_util.h"#include "user.h"#include "os.h"#define MAX_PACKET (ETH_MAX_PACKET + ETH_HEADER_OTHER)static struct sockaddr_in *new_addr(char *addr, unsigned short port){	struct sockaddr_in *sin;	sin = um_kmalloc(sizeof(struct sockaddr_in));	if(sin == NULL){		printk("new_addr: allocation of sockaddr_in failed\n");		return(NULL);	}	sin->sin_family = AF_INET;	sin->sin_addr.s_addr = in_aton(addr);	sin->sin_port = port;	return(sin);}static void mcast_user_init(void *data, void *dev){	struct mcast_data *pri = data;	pri->mcast_addr = new_addr(pri->addr, pri->port);	pri->dev = dev;}static int mcast_open(void *data){	struct mcast_data *pri = data;	struct sockaddr_in *sin = pri->mcast_addr;	struct ip_mreq mreq;	int fd, yes = 1;	if ((sin->sin_addr.s_addr == 0) || (sin->sin_port == 0)) {		fd = -EINVAL;		goto out;	}	fd = socket(AF_INET, SOCK_DGRAM, 0);	if (fd < 0){		printk("mcast_open : data socket failed, errno = %d\n", 		       errno);		fd = -ENOMEM;		goto out;	}	if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)) < 0) {		printk("mcast_open: SO_REUSEADDR failed, errno = %d\n",			errno);		os_close_file(fd);		fd = -EINVAL;		goto out;	}	/* set ttl according to config */	if (setsockopt(fd, SOL_IP, IP_MULTICAST_TTL, &pri->ttl,		       sizeof(pri->ttl)) < 0) {		printk("mcast_open: IP_MULTICAST_TTL failed, error = %d\n",			errno);		os_close_file(fd);		fd = -EINVAL;		goto out;	}	/* set LOOP, so data does get fed back to local sockets */	if (setsockopt(fd, SOL_IP, IP_MULTICAST_LOOP, &yes, sizeof(yes)) < 0) {		printk("mcast_open: IP_MULTICAST_LOOP failed, error = %d\n",			errno);		os_close_file(fd);		fd = -EINVAL;		goto out;	}	/* bind socket to mcast address */	if (bind(fd, (struct sockaddr *) sin, sizeof(*sin)) < 0) {		printk("mcast_open : data bind failed, errno = %d\n", errno);		os_close_file(fd);		fd = -EINVAL;		goto out;	}				/* subscribe to the multicast group */	mreq.imr_multiaddr.s_addr = sin->sin_addr.s_addr;	mreq.imr_interface.s_addr = 0;	if (setsockopt(fd, SOL_IP, IP_ADD_MEMBERSHIP, 		       &mreq, sizeof(mreq)) < 0) {		printk("mcast_open: IP_ADD_MEMBERSHIP failed, error = %d\n",			errno);		printk("There appears not to be a multicast-capable network "		       "interface on the host.\n");		printk("eth0 should be configured in order to use the "		       "multicast transport.\n");		os_close_file(fd);		fd = -EINVAL;	} out:	return(fd);}static void mcast_close(int fd, void *data){	struct ip_mreq mreq;	struct mcast_data *pri = data;	struct sockaddr_in *sin = pri->mcast_addr;	mreq.imr_multiaddr.s_addr = sin->sin_addr.s_addr;	mreq.imr_interface.s_addr = 0;	if (setsockopt(fd, SOL_IP, IP_DROP_MEMBERSHIP,		       &mreq, sizeof(mreq)) < 0) {		printk("mcast_open: IP_DROP_MEMBERSHIP failed, error = %d\n",			errno);	}	os_close_file(fd);}int mcast_user_write(int fd, void *buf, int len, struct mcast_data *pri){	struct sockaddr_in *data_addr = pri->mcast_addr;	return(net_sendto(fd, buf, len, data_addr, sizeof(*data_addr)));}static int mcast_set_mtu(int mtu, void *data){	return(mtu);}struct net_user_info mcast_user_info = {	.init		= mcast_user_init,	.open		= mcast_open,	.close	 	= mcast_close,	.remove	 	= NULL,	.set_mtu	= mcast_set_mtu,	.add_address	= NULL,	.delete_address = NULL,	.max_packet	= MAX_PACKET - ETH_HEADER_OTHER};/* * Overrides for Emacs so that we follow Linus's tabbing style. * Emacs will notice this stuff at the end of the file and automatically * adjust the settings for this buffer only.  This must remain at the end * of the file. * --------------------------------------------------------------------------- * Local variables: * c-file-style: "linux" * End: */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜久久电影网| 亚洲一区二区视频在线观看| 成人免费视频国产在线观看| 亚洲一区电影777| 久久精品视频在线看| 欧美亚男人的天堂| 成人手机电影网| 美腿丝袜亚洲色图| 亚洲第一综合色| 国产精品天干天干在线综合| 日韩一区二区视频在线观看| 91蜜桃在线观看| 粉嫩久久99精品久久久久久夜 | 日韩欧美综合在线| 99这里只有精品| 国产麻豆成人精品| 青青青爽久久午夜综合久久午夜| 一区二区在线电影| 国产一区二区三区免费在线观看| 一区二区在线观看av| 中文字幕在线不卡| 久久精品夜色噜噜亚洲a∨| 在线不卡a资源高清| 色婷婷激情久久| 99精品欧美一区二区三区综合在线| 久久99久久久久久久久久久| 亚洲成av人片一区二区梦乃| 亚洲免费在线观看视频| 亚洲国产精品成人综合 | 成人激情校园春色| 国产精品1区2区3区| 国产在线麻豆精品观看| 日本特黄久久久高潮| 亚洲444eee在线观看| 亚洲精品视频在线| 亚洲麻豆国产自偷在线| 日韩一区日韩二区| 亚洲人成精品久久久久久| 国产精品国产自产拍在线| 欧美国产精品中文字幕| 国产精品天天摸av网| 国产精品国产三级国产a| 亚洲国产精品t66y| 成人免费在线观看入口| 亚洲视频中文字幕| 一卡二卡三卡日韩欧美| 亚洲国产美女搞黄色| 亚洲一区二区四区蜜桃| 婷婷久久综合九色综合绿巨人| 亚洲va国产va欧美va观看| 天堂资源在线中文精品| 免费av网站大全久久| 精品综合免费视频观看| 国产传媒久久文化传媒| 不卡av电影在线播放| 色婷婷综合在线| 精品视频免费在线| 777亚洲妇女| 久久亚洲精精品中文字幕早川悠里 | 久久99国产精品成人| 国产一区91精品张津瑜| 国产成人av自拍| a级精品国产片在线观看| 91视频观看视频| 欧美视频一区二区三区四区 | 一本到高清视频免费精品| 在线观看不卡视频| 欧美电视剧在线看免费| 国产女人18毛片水真多成人如厕| 国产精品久久久久久亚洲毛片 | 国产99久久久久久免费看农村| bt欧美亚洲午夜电影天堂| 欧美三级电影网站| 3atv在线一区二区三区| 久久久久久久久久电影| 最好看的中文字幕久久| 琪琪久久久久日韩精品| 国产馆精品极品| 欧美色视频一区| 久久久久久99精品| 一区二区三区国产豹纹内裤在线 | www.视频一区| 欧美日韩和欧美的一区二区| 久久久久久久免费视频了| 亚洲一区国产视频| 国产精品一区久久久久| 91社区在线播放| 2020国产精品自拍| 夜夜夜精品看看| 国产精品中文字幕日韩精品| 在线精品亚洲一区二区不卡| 精品久久久久久久久久久久久久久 | 亚洲一二三四久久| 韩国理伦片一区二区三区在线播放| fc2成人免费人成在线观看播放| 欧美精品免费视频| 最新中文字幕一区二区三区| 日韩电影在线一区| 一本久道中文字幕精品亚洲嫩| 欧美va天堂va视频va在线| 日韩伦理电影网| 精东粉嫩av免费一区二区三区| 色噜噜狠狠色综合欧洲selulu | 一区二区三区四区不卡在线 | 欧美三级视频在线观看| 国产精品视频免费| 国产乱码精品一区二区三区五月婷| 在线观看日韩一区| 国产精品欧美一区喷水| 国内偷窥港台综合视频在线播放| 在线免费观看日本一区| 亚洲欧洲精品一区二区三区不卡| 久久av老司机精品网站导航| 欧美三级在线视频| 一区二区三区91| 91亚洲大成网污www| 国产色综合久久| 精东粉嫩av免费一区二区三区| 欧美高清视频www夜色资源网| 亚洲视频一二三| 成人久久久精品乱码一区二区三区| 精品国产制服丝袜高跟| 日日夜夜精品视频天天综合网| 91精品福利在线| 亚洲色图视频网| 99精品视频中文字幕| 国产午夜精品久久| 国产成人激情av| 国产精品全国免费观看高清| 国产九九视频一区二区三区| 精品伦理精品一区| 久久精品国产亚洲高清剧情介绍| 日韩一区二区三区四区| 青青草原综合久久大伊人精品| 欧美一级在线视频| 日韩电影在线一区二区三区| 欧美一区中文字幕| 麻豆成人综合网| 精品久久久久香蕉网| 国产精品一区二区三区99| 久久久久久久久岛国免费| 国产成人精品三级麻豆| 亚洲欧洲日韩在线| 在线亚洲+欧美+日本专区| 亚洲愉拍自拍另类高清精品| 欧美日本一道本在线视频| 视频一区二区不卡| 精品国产免费人成电影在线观看四季 | 亚洲国产日韩精品| 欧美日韩国产天堂| 秋霞电影网一区二区| 久久人人爽爽爽人久久久| 高清视频一区二区| 亚洲欧美一区二区三区国产精品| 91麻豆精品国产自产在线| 欧美一级视频精品观看| 韩国成人在线视频| 欧美国产禁国产网站cc| 高清成人免费视频| 亚洲乱码国产乱码精品精可以看| 欧美色窝79yyyycom| 奇米一区二区三区av| 久久久噜噜噜久久人人看| 972aa.com艺术欧美| 日韩1区2区3区| 久久久久久久久岛国免费| 一本久道久久综合中文字幕| 日韩综合一区二区| 欧美精彩视频一区二区三区| 色婷婷久久久综合中文字幕| 日韩av一级片| 亚洲欧美在线另类| 欧美丰满美乳xxx高潮www| 国产suv精品一区二区三区| 亚洲一区二区三区美女| 久久亚洲一区二区三区四区| 色av成人天堂桃色av| 国产尤物一区二区在线| 亚洲免费看黄网站| 欧美刺激脚交jootjob| 97aⅴ精品视频一二三区| 久久99日本精品| 亚洲精品国产无套在线观| 欧美电影精品一区二区| 91福利区一区二区三区| 国产精品一二三区在线| 一二三四社区欧美黄| 国产亚洲成av人在线观看导航| 欧美亚洲一区二区在线观看| 国产久卡久卡久卡久卡视频精品| 亚洲国产毛片aaaaa无费看| 国产欧美中文在线| 欧美日韩国产一级| 91欧美激情一区二区三区成人| 久久99精品国产| 亚洲国产精品久久久男人的天堂 | 国产精品欧美一级免费| 日韩欧美一二区| 欧美区视频在线观看| av电影在线观看不卡|