Changeset 8d48c7e in mainline for uspace/lib/nettl/src/amap.c
- Timestamp:
- 2015-06-02T16:00:42Z (9 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 2c4bb828
- Parents:
- ab6326bc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/nettl/src/amap.c
rab6326bc r8d48c7e 510 510 } 511 511 512 int amap_find(amap_t *map, inet_ep2_t *epp, void **rarg) 513 { 514 log_msg(LOG_DEFAULT, LVL_NOTE, "amap_find()"); 515 return EOK; 512 /** Find association matching an endpoint pair. 513 * 514 * Used to find which association to deliver a datagram to. 515 * 516 * @param map Association map 517 * @param epp Endpoint pair 518 * @param rarg Place to store user argument for the matching association. 519 * 520 * @return EOK on success, ENOENT if not found. 521 */ 522 int amap_find_match(amap_t *map, inet_ep2_t *epp, void **rarg) 523 { 524 int rc; 525 amap_repla_t *repla; 526 amap_laddr_t *laddr; 527 amap_llink_t *llink; 528 529 log_msg(LOG_DEFAULT, LVL_NOTE, "amap_find_match(llink=%zu)", 530 epp->local_link); 531 532 /* Remode endpoint, local address */ 533 rc = amap_repla_find(map, &epp->remote, &epp->local.addr, &repla); 534 if (rc == EOK) { 535 rc = portrng_find_port(repla->portrng, epp->local.port, 536 rarg); 537 if (rc == EOK) { 538 log_msg(LOG_DEFAULT, LVL_NOTE, "Matched repla / " 539 "port %" PRIu16, epp->local.port); 540 return EOK; 541 } 542 } 543 544 /* Local address */ 545 rc = amap_laddr_find(map, &epp->local.addr, &laddr); 546 if (rc == EOK) { 547 rc = portrng_find_port(laddr->portrng, epp->local.port, 548 rarg); 549 if (rc == EOK) { 550 log_msg(LOG_DEFAULT, LVL_NOTE, "Matched laddr / " 551 "port %" PRIu16, epp->local.port); 552 return EOK; 553 } 554 } 555 556 /* Local link */ 557 rc = amap_llink_find(map, epp->local_link, &llink); 558 if (epp->local_link != 0 && rc == EOK) { 559 rc = portrng_find_port(llink->portrng, epp->local.port, 560 rarg); 561 if (rc == EOK) { 562 log_msg(LOG_DEFAULT, LVL_NOTE, "Matched llink / " 563 "port %" PRIu16, epp->local.port); 564 return EOK; 565 } 566 } 567 568 /* Unspecified */ 569 rc = portrng_find_port(map->unspec, epp->local.port, rarg); 570 if (rc == EOK) { 571 log_msg(LOG_DEFAULT, LVL_NOTE, "Matched unspec / port %" PRIu16, 572 epp->local.port); 573 return EOK; 574 } 575 576 log_msg(LOG_DEFAULT, LVL_NOTE, "No match."); 577 return ENOENT; 516 578 } 517 579
Note:
See TracChangeset
for help on using the changeset viewer.