Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F152735594
D30575.id90247.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D30575.id90247.diff
View Options
Index: sys/netinet/libalias/alias_db.c
===================================================================
--- sys/netinet/libalias/alias_db.c
+++ sys/netinet/libalias/alias_db.c
@@ -318,14 +318,16 @@
#define LINK_UNFIREWALLED 0x08
int timestamp; /* Time link was last accessed */
- int expire_time; /* Expire time for link */
#ifndef NO_USE_SOCKETS
int sockfd; /* socket descriptor */
#endif
/* Linked list of pointers for input and output lookup tables */
LIST_ENTRY (alias_link) list_out;
LIST_ENTRY (alias_link) list_in;
- TAILQ_ENTRY (alias_link) list_expire;
+ struct {
+ TAILQ_ENTRY(alias_link) list;
+ int time; /* Expire time for link */
+ } expire;
/* Auxiliary data */
union {
char *frag_ptr;
@@ -839,7 +841,7 @@
LIBALIAS_LOCK_ASSERT(la);
/* permanent entries may stay */
- TAILQ_FOREACH_SAFE(lnk, &la->checkExpire, list_expire, lnk_tmp)
+ TAILQ_FOREACH_SAFE(lnk, &la->checkExpire, expire.list, lnk_tmp)
DeleteLink(&lnk);
for (i = 0; i < LINK_TABLE_IN_SIZE; i++)
@@ -858,15 +860,15 @@
if (lnk == NULL || *lnk == NULL)
return;
- if (LibAliasTime - (*lnk)->timestamp > (*lnk)->expire_time) {
+ if (LibAliasTime - (*lnk)->timestamp > (*lnk)->expire.time) {
DeleteLink(lnk);
if ((*lnk) == NULL)
return;
}
/* move to end, swap may fail on a single entry list */
- TAILQ_REMOVE(&la->checkExpire, (*lnk), list_expire);
- TAILQ_INSERT_TAIL(&la->checkExpire, (*lnk), list_expire);
+ TAILQ_REMOVE(&la->checkExpire, (*lnk), expire.list);
+ TAILQ_INSERT_TAIL(&la->checkExpire, (*lnk), expire.list);
}
static struct alias_link *
@@ -912,7 +914,7 @@
LIST_REMOVE(lnk, list_in);
/* remove from housekeeping */
- TAILQ_REMOVE(&la->checkExpire, lnk, list_expire);
+ TAILQ_REMOVE(&la->checkExpire, lnk, expire.list);
#ifndef NO_USE_SOCKETS
/* Close socket, if one has been allocated */
@@ -995,27 +997,27 @@
/* Expiration time */
switch (link_type) {
case LINK_ICMP:
- lnk->expire_time = ICMP_EXPIRE_TIME;
+ lnk->expire.time = ICMP_EXPIRE_TIME;
break;
case LINK_UDP:
- lnk->expire_time = UDP_EXPIRE_TIME;
+ lnk->expire.time = UDP_EXPIRE_TIME;
break;
case LINK_TCP:
- lnk->expire_time = TCP_EXPIRE_INITIAL;
+ lnk->expire.time = TCP_EXPIRE_INITIAL;
break;
case LINK_PPTP:
lnk->flags |= LINK_PERMANENT; /* no timeout. */
break;
case LINK_FRAGMENT_ID:
- lnk->expire_time = FRAGMENT_ID_EXPIRE_TIME;
+ lnk->expire.time = FRAGMENT_ID_EXPIRE_TIME;
break;
case LINK_FRAGMENT_PTR:
- lnk->expire_time = FRAGMENT_PTR_EXPIRE_TIME;
+ lnk->expire.time = FRAGMENT_PTR_EXPIRE_TIME;
break;
case LINK_ADDR:
break;
default:
- lnk->expire_time = PROTO_EXPIRE_TIME;
+ lnk->expire.time = PROTO_EXPIRE_TIME;
break;
}
@@ -1098,7 +1100,7 @@
}
/* Include the element into the housekeeping list */
- TAILQ_INSERT_TAIL(&la->checkExpire, lnk, list_expire);
+ TAILQ_INSERT_TAIL(&la->checkExpire, lnk, expire.list);
} else {
#ifdef LIBALIAS_DEBUG
fprintf(stderr, "PacketAlias/AddLink(): ");
@@ -1841,13 +1843,13 @@
switch (state) {
case ALIAS_TCP_STATE_DISCONNECTED:
if (lnk->data.tcp->state.out != ALIAS_TCP_STATE_CONNECTED)
- lnk->expire_time = TCP_EXPIRE_DEAD;
+ lnk->expire.time = TCP_EXPIRE_DEAD;
else
- lnk->expire_time = TCP_EXPIRE_SINGLEDEAD;
+ lnk->expire.time = TCP_EXPIRE_SINGLEDEAD;
break;
case ALIAS_TCP_STATE_CONNECTED:
if (lnk->data.tcp->state.out == ALIAS_TCP_STATE_CONNECTED)
- lnk->expire_time = TCP_EXPIRE_CONNECTED;
+ lnk->expire.time = TCP_EXPIRE_CONNECTED;
break;
default:
#ifdef _KERNEL
@@ -1866,13 +1868,13 @@
switch (state) {
case ALIAS_TCP_STATE_DISCONNECTED:
if (lnk->data.tcp->state.in != ALIAS_TCP_STATE_CONNECTED)
- lnk->expire_time = TCP_EXPIRE_DEAD;
+ lnk->expire.time = TCP_EXPIRE_DEAD;
else
- lnk->expire_time = TCP_EXPIRE_SINGLEDEAD;
+ lnk->expire.time = TCP_EXPIRE_SINGLEDEAD;
break;
case ALIAS_TCP_STATE_CONNECTED:
if (lnk->data.tcp->state.in == ALIAS_TCP_STATE_CONNECTED)
- lnk->expire_time = TCP_EXPIRE_CONNECTED;
+ lnk->expire.time = TCP_EXPIRE_CONNECTED;
break;
default:
#ifdef _KERNEL
@@ -2121,7 +2123,7 @@
} else if (expire == -1) {
lnk->flags |= LINK_PERMANENT;
} else if (expire > 0) {
- lnk->expire_time = expire;
+ lnk->expire.time = expire;
} else {
#ifdef LIBALIAS_DEBUG
fprintf(stderr, "PacketAlias/SetExpire(): ");
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Apr 17, 7:19 PM (4 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31676026
Default Alt Text
D30575.id90247.diff (4 KB)
Attached To
Mode
D30575: libalias: Restructure - Group expire handling entries
Attached
Detach File
Event Timeline
Log In to Comment