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

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

?? sock.c

?? elinux jffs初始版本 具體了解JFFS的文件系統(tǒng)!
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* *  sock.c * *  Copyright (C) 1995, 1996 by Paal-Kr. Engstad and Volker Lendecke * */#include <linux/sched.h>#include <linux/smb_fs.h>#include <linux/errno.h>#include <linux/socket.h>#include <linux/fcntl.h>#include <linux/stat.h>#include <asm/segment.h>#include <linux/in.h>#include <linux/net.h>#include <linux/mm.h>#include <linux/netdevice.h>#include <net/ip.h>#include <linux/smb.h>#include <linux/smbno.h>#define _S(nr) (1<<((nr)-1))static int_recvfrom(struct socket *sock, unsigned char *ubuf, int size,	  int noblock, unsigned flags, struct sockaddr_in *sa, int *addr_len){	struct iovec iov;	struct msghdr msg;	iov.iov_base = ubuf;	iov.iov_len = size;	msg.msg_name = (void *) sa;	msg.msg_namelen = 0;	if (addr_len)		msg.msg_namelen = *addr_len;	msg.msg_control = NULL;	msg.msg_iov = &iov;	msg.msg_iovlen = 1;	return sock->ops->recvmsg(sock, &msg, size, noblock, flags, addr_len);}static int_send(struct socket *sock, const void *buff, int len,      int nonblock, unsigned flags){	struct iovec iov;	struct msghdr msg;	iov.iov_base = (void *) buff;	iov.iov_len = len;	msg.msg_name = NULL;	msg.msg_namelen = 0;	msg.msg_control = NULL;	msg.msg_iov = &iov;	msg.msg_iovlen = 1;	return sock->ops->sendmsg(sock, &msg, len, nonblock, flags);}static voidsmb_data_callback(struct sock *sk, int len){	struct socket *sock = sk->socket;	if (!sk->dead)	{		unsigned char peek_buf[4];		int result;		unsigned short fs;		fs = get_fs();		set_fs(get_ds());		result = _recvfrom(sock, (void *) peek_buf, 1, 1,				   MSG_PEEK, NULL, NULL);		while ((result != -EAGAIN) && (peek_buf[0] == 0x85))		{			/* got SESSION KEEP ALIVE */			result = _recvfrom(sock, (void *) peek_buf,					   4, 1, 0, NULL, NULL);			DDPRINTK("smb_data_callback:"				 " got SESSION KEEP ALIVE\n");			if (result == -EAGAIN)			{				break;			}			result = _recvfrom(sock, (void *) peek_buf,					   1, 1, MSG_PEEK,					   NULL, NULL);		}		set_fs(fs);		if (result != -EAGAIN)		{			wake_up_interruptible(sk->sleep);		}	}}intsmb_catch_keepalive(struct smb_server *server){	struct file *file;	struct inode *inode;	struct socket *sock;	struct sock *sk;	if ((server == NULL)	    || ((file = server->sock_file) == NULL)	    || ((inode = file->f_inode) == NULL)	    || (!S_ISSOCK(inode->i_mode)))	{		printk("smb_catch_keepalive: did not get valid server!\n");		server->data_ready = NULL;		return -EINVAL;	}	sock = &(inode->u.socket_i);	if (sock->type != SOCK_STREAM)	{		printk("smb_catch_keepalive: did not get SOCK_STREAM\n");		server->data_ready = NULL;		return -EINVAL;	}	sk = (struct sock *) (sock->data);	if (sk == NULL)	{		printk("smb_catch_keepalive: sk == NULL");		server->data_ready = NULL;		return -EINVAL;	}	DDPRINTK("smb_catch_keepalive.: sk->d_r = %x, server->d_r = %x\n",		 (unsigned int) (sk->data_ready),		 (unsigned int) (server->data_ready));	if (sk->data_ready == smb_data_callback)	{		printk("smb_catch_keepalive: already done\n");		return -EINVAL;	}	server->data_ready = sk->data_ready;	sk->data_ready = smb_data_callback;	return 0;}intsmb_dont_catch_keepalive(struct smb_server *server){	struct file *file;	struct inode *inode;	struct socket *sock;	struct sock *sk;	if ((server == NULL)	    || ((file = server->sock_file) == NULL)	    || ((inode = file->f_inode) == NULL)	    || (!S_ISSOCK(inode->i_mode)))	{		printk("smb_dont_catch_keepalive: "		       "did not get valid server!\n");		return -EINVAL;	}	sock = &(inode->u.socket_i);	if (sock->type != SOCK_STREAM)	{		printk("smb_dont_catch_keepalive: did not get SOCK_STREAM\n");		return -EINVAL;	}	sk = (struct sock *) (sock->data);	if (sk == NULL)	{		printk("smb_dont_catch_keepalive: sk == NULL");		return -EINVAL;	}	if (server->data_ready == NULL)	{		printk("smb_dont_catch_keepalive: "		       "server->data_ready == NULL\n");		return -EINVAL;	}	if (sk->data_ready != smb_data_callback)	{		printk("smb_dont_catch_keepalive: "		       "sk->data_callback != smb_data_callback\n");		return -EINVAL;	}	DDPRINTK("smb_dont_catch_keepalive: sk->d_r = %x, server->d_r = %x\n",		 (unsigned int) (sk->data_ready),		 (unsigned int) (server->data_ready));	sk->data_ready = server->data_ready;	server->data_ready = NULL;	return 0;}static intsmb_send_raw(struct socket *sock, unsigned char *source, int length){	int result;	int already_sent = 0;	while (already_sent < length)	{		result = _send(sock,			       (void *) (source + already_sent),			       length - already_sent, 0, 0);		if (result < 0)		{			DPRINTK("smb_send_raw: sendto error = %d\n",				-result);			return result;		}		already_sent += result;	}	return already_sent;}static intsmb_receive_raw(struct socket *sock, unsigned char *target, int length){	int result;	int already_read = 0;	while (already_read < length)	{		result = _recvfrom(sock,				   (void *) (target + already_read),				   length - already_read, 0, 0,				   NULL, NULL);		if (result == 0)		{			return -EIO;		}		if (result < 0)		{			DPRINTK("smb_receive_raw: recvfrom error = %d\n",				-result);			return result;		}		already_read += result;	}	return already_read;}static intsmb_get_length(struct socket *sock, unsigned char *header){	int result;	unsigned char peek_buf[4];	unsigned short fs;      re_recv:	fs = get_fs();	set_fs(get_ds());	result = smb_receive_raw(sock, peek_buf, 4);	set_fs(fs);	if (result < 0)	{		DPRINTK("smb_get_length: recv error = %d\n", -result);		return result;	}	switch (peek_buf[0])	{	case 0x00:	case 0x82:		break;	case 0x85:		DPRINTK("smb_get_length: Got SESSION KEEP ALIVE\n");		goto re_recv;	default:		printk("smb_get_length: Invalid NBT packet\n");		return -EIO;	}	if (header != NULL)	{		memcpy(header, peek_buf, 4);	}	/* The length in the RFC NB header is the raw data length */	return smb_len(peek_buf);}static struct socket *server_sock(struct smb_server *server){	struct file *file;	struct inode *inode;	if (server == NULL)		return NULL;	if ((file = server->sock_file) == NULL)		return NULL;	if ((inode = file->f_inode) == NULL)		return NULL;	return &(inode->u.socket_i);}/* * smb_receive * fs points to the correct segment */static intsmb_receive(struct smb_server *server){	struct socket *sock = server_sock(server);	int len;	int result;	unsigned char peek_buf[4];	len = smb_get_length(sock, peek_buf);	if (len < 0)	{		return len;	}	if (len + 4 > server->packet_size)	{		/* Some servers do not care about our max_xmit. They		   send larger packets */		DPRINTK("smb_receive: Increase packet size from %d to %d\n",			server->packet_size, len + 4);		smb_vfree(server->packet);		server->packet = NULL;		server->packet_size = 0;		server->packet = smb_vmalloc(len + 4);		if (server->packet == NULL)		{			return -ENOMEM;		}		server->packet_size = len + 4;	}	memcpy(server->packet, peek_buf, 4);	result = smb_receive_raw(sock, server->packet + 4, len);	if (result < 0)	{		printk("smb_receive: receive error: %d\n", result);		return result;	}	server->rcls = BVAL(server->packet, 9);	server->err = WVAL(server->packet, 11);	if (server->rcls != 0)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人自拍视频在线观看| 欧美日韩在线播| 亚洲在线视频网站| 久久精品视频在线看| 欧美影片第一页| www.日韩在线| 麻豆极品一区二区三区| 亚洲一区二区在线免费看| 久久久亚洲精品一区二区三区| 欧美色中文字幕| 99久久国产综合色|国产精品| 黄色成人免费在线| 日本午夜精品一区二区三区电影 | 久久久亚洲精品一区二区三区| 欧美性生活一区| 91性感美女视频| 丁香网亚洲国际| 国产精品一品视频| 国模一区二区三区白浆| 蜜乳av一区二区| 视频一区视频二区在线观看| 亚洲影视在线观看| 亚洲精品videosex极品| 亚洲欧洲三级电影| 国产精品美女久久久久久久久久久 | 日韩视频一区二区| 91精品福利在线一区二区三区| 欧美亚洲综合在线| 91色porny在线视频| 成人av在线一区二区三区| 国产一区不卡精品| 国产精品资源在线观看| 黑人精品欧美一区二区蜜桃| 精品亚洲欧美一区| 精品一区二区av| 国产一区二区精品在线观看| 国产精品综合在线视频| 国产成人精品一区二区三区四区| 国产精品123| 国产v日产∨综合v精品视频| 岛国一区二区三区| 成人av网站在线观看免费| 成人免费看视频| 波多野结衣中文一区| 99精品久久久久久| 在线免费av一区| 欧美日韩国产三级| 宅男噜噜噜66一区二区66| 91精品国产综合久久福利软件| 欧美一区二区久久| 精品国产青草久久久久福利| 国产三级久久久| 亚洲欧美激情视频在线观看一区二区三区| 日韩毛片高清在线播放| 亚洲第一主播视频| 久久国产精品色| 成人听书哪个软件好| 99麻豆久久久国产精品免费优播| 欧美高清视频不卡网| 色婷婷精品久久二区二区蜜臀av| 亚洲精品一区二区三区精华液 | 欧美视频在线一区二区三区| 欧美日韩另类国产亚洲欧美一级| 欧美老肥妇做.爰bbww视频| 欧美一级片免费看| 国产人久久人人人人爽| 亚洲色欲色欲www| 欧美a级理论片| 成人精品免费看| 色94色欧美sute亚洲线路一久| 欧美一区二区三区婷婷月色| 久久嫩草精品久久久久| 亚洲另类色综合网站| 日本在线不卡视频| 成人av网址在线| 欧美一区二区三区四区久久| 久久精品欧美一区二区三区不卡 | 国产成人午夜精品5599| 91麻豆免费看| 欧美大黄免费观看| 成人免费在线观看入口| 日本伊人精品一区二区三区观看方式| 国产成人亚洲精品狼色在线| 欧美撒尿777hd撒尿| 国产日韩精品一区| 亚洲国产wwwccc36天堂| 国产精品一区二区三区网站| 91久久香蕉国产日韩欧美9色| 日韩一区二区三区在线| 亚洲日本一区二区三区| 精品在线一区二区| 欧美三级日本三级少妇99| 久久久精品tv| 首页国产欧美日韩丝袜| 91丨九色丨尤物| 久久综合狠狠综合| 日本va欧美va欧美va精品| 色综合天天综合网天天狠天天| 精品美女被调教视频大全网站| 亚洲精品日日夜夜| 国产成人精品免费网站| 日韩亚洲欧美中文三级| 亚洲一区二区在线观看视频| 成人午夜电影网站| 日韩欧美国产不卡| 亚洲成av人在线观看| 91视频国产观看| 国产欧美一区二区精品性色| 另类的小说在线视频另类成人小视频在线 | 亚洲第一在线综合网站| av影院午夜一区| 欧美精品一区二区三区很污很色的 | 亚洲亚洲精品在线观看| 国产99久久久久久免费看农村| 欧美不卡在线视频| 秋霞影院一区二区| 555夜色666亚洲国产免| 亚洲午夜精品久久久久久久久| 不卡av电影在线播放| 国产日产亚洲精品系列| 国产精品自在在线| 久久久久久久久免费| 激情欧美一区二区| 欧美成人a∨高清免费观看| 另类小说欧美激情| 欧美xxxxxxxx| 韩国毛片一区二区三区| 精品国产乱码久久久久久蜜臀| 麻豆成人免费电影| 精品国产乱子伦一区| 狠狠狠色丁香婷婷综合久久五月| 日韩欧美电影一区| 久久99精品一区二区三区 | 欧美一区二区三区色| 日日骚欧美日韩| 正在播放亚洲一区| 另类小说色综合网站| 久久色在线观看| 国产成人精品www牛牛影视| 国产免费成人在线视频| 国产99久久久久| 亚洲欧洲日韩在线| 日本国产一区二区| 五月天视频一区| 精品成a人在线观看| 国产成人av福利| 亚洲情趣在线观看| 欧美性videosxxxxx| 免费观看在线综合| 久久亚洲影视婷婷| 波多野结衣中文一区| 亚洲综合清纯丝袜自拍| 7777精品伊人久久久大香线蕉最新版| 蜜桃精品在线观看| 国产日本欧洲亚洲| 91久久精品网| 日韩中文字幕区一区有砖一区| 日韩你懂的在线观看| 国产精品一二三区| 亚洲三级在线看| 欧美一区二视频| 国产成人亚洲精品狼色在线| 亚洲精品中文在线影院| 欧美精品在线观看一区二区| 精品一区二区三区在线观看国产 | 亚洲成人1区2区| 日韩免费观看高清完整版在线观看| 国产露脸91国语对白| 亚洲免费在线视频| 日韩欧美国产麻豆| 99久久久久免费精品国产| 日韩精品一卡二卡三卡四卡无卡| 久久综合99re88久久爱| 在线视频中文字幕一区二区| 免费国产亚洲视频| 亚洲欧美一区二区三区孕妇| 欧美精品三级日韩久久| 成人伦理片在线| 美女看a上一区| 亚洲人成亚洲人成在线观看图片 | 国产精品色婷婷久久58| 欧美精品一二三四| 波多野结衣中文字幕一区 | 欧美日韩一级视频| 国产91丝袜在线播放九色| 亚洲高清不卡在线观看| 久久精品人人做人人爽97| 欧美喷潮久久久xxxxx| 成人深夜福利app| 毛片基地黄久久久久久天堂| 亚洲女同女同女同女同女同69| 精品国产sm最大网站免费看| 91九色02白丝porn| 国产高清精品网站| 日韩av电影一区| 亚洲情趣在线观看| 欧美国产激情一区二区三区蜜月| 欧美一区二区在线免费观看| 在线亚洲免费视频| www.欧美日韩国产在线|