More updates from FreeBSD.

This commit is contained in:
Ralf Corsepius
2007-03-25 05:40:14 +00:00
parent c922991bf2
commit 4c672b9308
2 changed files with 6 additions and 8 deletions

View File

@@ -37,13 +37,14 @@
#ifndef _NET_RAW_CB_H_
#define _NET_RAW_CB_H_
#include <sys/queue.h>
/*
* Raw protocol interface control block. Used
* to tie a socket to the generic raw interface.
*/
struct rawcb {
struct rawcb *rcb_next; /* doubly linked list */
struct rawcb *rcb_prev;
LIST_ENTRY(rawcb) list;
struct socket *rcb_socket; /* back pointer to socket */
struct sockaddr *rcb_faddr; /* destination address */
struct sockaddr *rcb_laddr; /* socket's address */
@@ -59,7 +60,7 @@ struct rawcb {
#define RAWRCVQ 8192
#ifdef _KERNEL
extern struct rawcb rawcb; /* head of list */
extern LIST_HEAD(rawcb_list_head, rawcb) rawcb_list;
int raw_attach(struct socket *, int);
void raw_ctlinput(int, struct sockaddr *, void *);

View File

@@ -56,7 +56,7 @@ void
raw_init()
{
rawcb.rcb_next = rawcb.rcb_prev = &rawcb;
LIST_INIT(&rawcb_list);
}
@@ -76,11 +76,10 @@ raw_input(m0, proto, src, dst)
{
register struct rawcb *rp;
register struct mbuf *m = m0;
register int sockets = 0;
struct socket *last;
last = 0;
for (rp = rawcb.rcb_next; rp != &rawcb; rp = rp->rcb_next) {
LIST_FOREACH(rp, &rawcb_list, list) {
if (rp->rcb_proto.sp_family != proto->sp_family)
continue;
if (rp->rcb_proto.sp_protocol &&
@@ -110,7 +109,6 @@ raw_input(m0, proto, src, dst)
m_freem(n);
else {
sorwakeup(last);
sockets++;
}
}
}
@@ -122,7 +120,6 @@ raw_input(m0, proto, src, dst)
m_freem(m);
else {
sorwakeup(last);
sockets++;
}
} else
m_freem(m);