|
Lines 387-402
int ip6_mc_source(int add, int omode, st
Link Here
|
| 387 |
|
387 |
|
| 388 |
psl = pmc->sflist; |
388 |
psl = pmc->sflist; |
| 389 |
if (!add) { |
389 |
if (!add) { |
| 390 |
if (!psl) |
390 |
if (!psl || !psl->sl_count) |
| 391 |
goto done; |
391 |
goto done; |
| 392 |
rv = !0; |
392 |
rv = 1; |
| 393 |
for (i=0; i<psl->sl_count; i++) { |
393 |
for (i=0; i<psl->sl_count; i++) { |
| 394 |
rv = memcmp(&psl->sl_addr, group, |
394 |
rv = memcmp(&psl->sl_addr[i], source, |
| 395 |
sizeof(struct in6_addr)); |
395 |
sizeof(struct in6_addr)); |
| 396 |
if (rv >= 0) |
396 |
if (rv >= 0) /* array is sorted */ |
| 397 |
break; |
397 |
break; |
| 398 |
} |
398 |
} |
| 399 |
if (!rv) /* source not found */ |
399 |
if (rv) /* source not found */ |
| 400 |
goto done; |
400 |
goto done; |
| 401 |
|
401 |
|
| 402 |
/* update the interface filter */ |
402 |
/* update the interface filter */ |
|
Lines 437-443
int ip6_mc_source(int add, int omode, st
Link Here
|
| 437 |
} |
437 |
} |
| 438 |
rv = 1; /* > 0 for insert logic below if sl_count is 0 */ |
438 |
rv = 1; /* > 0 for insert logic below if sl_count is 0 */ |
| 439 |
for (i=0; i<psl->sl_count; i++) { |
439 |
for (i=0; i<psl->sl_count; i++) { |
| 440 |
rv = memcmp(&psl->sl_addr, group, sizeof(struct in6_addr)); |
440 |
rv = memcmp(&psl->sl_addr[i], source, sizeof(struct in6_addr)); |
| 441 |
if (rv >= 0) |
441 |
if (rv >= 0) |
| 442 |
break; |
442 |
break; |
| 443 |
} |
443 |
} |