diff options
Diffstat (limited to 'net/tipc/discover.c')
-rw-r--r-- | net/tipc/discover.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/tipc/discover.c b/net/tipc/discover.c index 491eff56b9da..d2163bd99e59 100644 --- a/net/tipc/discover.c +++ b/net/tipc/discover.c | |||
@@ -52,6 +52,7 @@ | |||
52 | * struct link_req - information about an ongoing link setup request | 52 | * struct link_req - information about an ongoing link setup request |
53 | * @bearer: bearer issuing requests | 53 | * @bearer: bearer issuing requests |
54 | * @dest: destination address for request messages | 54 | * @dest: destination address for request messages |
55 | * @domain: network domain to which links can be established | ||
55 | * @buf: request message to be (repeatedly) sent | 56 | * @buf: request message to be (repeatedly) sent |
56 | * @timer: timer governing period between requests | 57 | * @timer: timer governing period between requests |
57 | * @timer_intv: current interval between requests (in ms) | 58 | * @timer_intv: current interval between requests (in ms) |
@@ -59,6 +60,7 @@ | |||
59 | struct link_req { | 60 | struct link_req { |
60 | struct tipc_bearer *bearer; | 61 | struct tipc_bearer *bearer; |
61 | struct tipc_media_addr dest; | 62 | struct tipc_media_addr dest; |
63 | u32 domain; | ||
62 | struct sk_buff *buf; | 64 | struct sk_buff *buf; |
63 | struct timer_list timer; | 65 | struct timer_list timer; |
64 | unsigned int timer_intv; | 66 | unsigned int timer_intv; |
@@ -147,7 +149,7 @@ void tipc_disc_recv_msg(struct sk_buff *buf, struct tipc_bearer *b_ptr) | |||
147 | } | 149 | } |
148 | if (!tipc_in_scope(dest, tipc_own_addr)) | 150 | if (!tipc_in_scope(dest, tipc_own_addr)) |
149 | return; | 151 | return; |
150 | if (!in_own_cluster(orig)) | 152 | if (!tipc_in_scope(b_ptr->link_req->domain, orig)) |
151 | return; | 153 | return; |
152 | 154 | ||
153 | /* Locate structure corresponding to requesting node */ | 155 | /* Locate structure corresponding to requesting node */ |
@@ -287,7 +289,7 @@ static void disc_timeout(struct link_req *req) | |||
287 | * tipc_disc_init_link_req - start sending periodic link setup requests | 289 | * tipc_disc_init_link_req - start sending periodic link setup requests |
288 | * @b_ptr: ptr to bearer issuing requests | 290 | * @b_ptr: ptr to bearer issuing requests |
289 | * @dest: destination address for request messages | 291 | * @dest: destination address for request messages |
290 | * @dest_domain: network domain of node(s) which should respond to message | 292 | * @dest_domain: network domain to which links can be established |
291 | * | 293 | * |
292 | * Returns pointer to link request structure, or NULL if unable to create. | 294 | * Returns pointer to link request structure, or NULL if unable to create. |
293 | */ | 295 | */ |
@@ -310,6 +312,7 @@ struct link_req *tipc_disc_init_link_req(struct tipc_bearer *b_ptr, | |||
310 | 312 | ||
311 | memcpy(&req->dest, dest, sizeof(*dest)); | 313 | memcpy(&req->dest, dest, sizeof(*dest)); |
312 | req->bearer = b_ptr; | 314 | req->bearer = b_ptr; |
315 | req->domain = dest_domain; | ||
313 | req->timer_intv = TIPC_LINK_REQ_INIT; | 316 | req->timer_intv = TIPC_LINK_REQ_INIT; |
314 | k_init_timer(&req->timer, (Handler)disc_timeout, (unsigned long)req); | 317 | k_init_timer(&req->timer, (Handler)disc_timeout, (unsigned long)req); |
315 | k_start_timer(&req->timer, req->timer_intv); | 318 | k_start_timer(&req->timer, req->timer_intv); |