Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F111023336
D30572.id90244.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D30572.id90244.diff
View Options
Index: sys/netinet/libalias/alias_db.c
===================================================================
--- sys/netinet/libalias/alias_db.c
+++ sys/netinet/libalias/alias_db.c
@@ -1097,50 +1097,65 @@
return (new_lnk);
}
-static struct alias_link *
-_FindLinkOut(struct libalias *la, struct in_addr src_addr,
- struct in_addr dst_addr,
- u_short src_port,
- u_short dst_port,
- int link_type,
- int replace_partial_links)
-{
- u_int i;
- struct alias_link *lnk;
#define OUTGUARD \
if (lnk->src_port != src_port || \
lnk->src_addr.s_addr != src_addr.s_addr || \
+ lnk->dst_addr.s_addr != dst_addr.s_addr || \
+ lnk->dst_port != dst_port || \
lnk->link_type != link_type || \
lnk->server != NULL) \
continue;
- LIBALIAS_LOCK_ASSERT(la);
+static struct alias_link *
+_SearchLinkOut(struct libalias *la, struct in_addr src_addr,
+ struct in_addr dst_addr,
+ u_short src_port,
+ u_short dst_port,
+ int link_type) {
+ u_int i;
+ struct alias_link *lnk;
+
i = StartPointOut(src_addr, dst_addr, src_port, dst_port, link_type);
LIST_FOREACH(lnk, &la->linkTableOut[i], list_out) {
OUTGUARD;
- if (lnk->dst_addr.s_addr == dst_addr.s_addr &&
- lnk->dst_port == dst_port)
- break;
+ CleanupLink(la, &lnk);
+ if (lnk != NULL)
+ lnk->timestamp = LibAliasTime;
+ return (lnk);
}
- CleanupLink(la, &lnk);
- if (lnk != NULL)
- lnk->timestamp = LibAliasTime;
+ return (NULL);
+}
+
+#undef OUTGUARD
+
+static struct alias_link *
+_FindLinkOut(struct libalias *la, struct in_addr src_addr,
+ struct in_addr dst_addr,
+ u_short src_port,
+ u_short dst_port,
+ int link_type,
+ int replace_partial_links)
+{
+ struct alias_link *lnk;
+
+ LIBALIAS_LOCK_ASSERT(la);
+ lnk = _SearchLinkOut(la, src_addr, dst_addr, src_port, dst_port, link_type);
/* Search for partially specified links. */
if (lnk == NULL && replace_partial_links) {
if (dst_port != 0 && dst_addr.s_addr != INADDR_ANY) {
- lnk = _FindLinkOut(la, src_addr, dst_addr, src_port, 0,
- link_type, 0);
+ lnk = _SearchLinkOut(la, src_addr, dst_addr, src_port, 0,
+ link_type);
if (lnk == NULL)
- lnk = _FindLinkOut(la, src_addr, ANY_ADDR, src_port,
- dst_port, link_type, 0);
+ lnk = _SearchLinkOut(la, src_addr, ANY_ADDR, src_port,
+ dst_port, link_type);
}
if (lnk == NULL &&
(dst_port != 0 || dst_addr.s_addr != INADDR_ANY)) {
- lnk = _FindLinkOut(la, src_addr, ANY_ADDR, src_port, 0,
- link_type, 0);
+ lnk = _SearchLinkOut(la, src_addr, ANY_ADDR, src_port, 0,
+ link_type);
}
if (lnk != NULL) {
lnk = ReLink(lnk,
@@ -1149,7 +1164,6 @@
link_type);
}
}
-#undef OUTGUARD
return (lnk);
}
@@ -1230,10 +1244,9 @@
if (lnk->dst_addr.s_addr == dst_addr.s_addr
&& lnk->dst_port == dst_port) {
CleanupLink(la, &lnk);
- if (lnk != NULL) {
+ if (lnk != NULL)
lnk->timestamp = LibAliasTime;
- return (lnk);
- }
+ return (lnk);
}
}
} else {
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Feb 27, 8:43 AM (10 h, 8 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16865496
Default Alt Text
D30572.id90244.diff (2 KB)
Attached To
Mode
D30572: libalias: Restructure - Outgoing search
Attached
Detach File
Event Timeline
Log In to Comment