|
Lines 443-449
Link Here
|
| 443 |
IcmpAliasIn(struct libalias *la, struct ip *pip) |
443 |
IcmpAliasIn(struct libalias *la, struct ip *pip) |
| 444 |
{ |
444 |
{ |
| 445 |
struct icmp *ic; |
445 |
struct icmp *ic; |
| 446 |
int dlen, iresult; |
446 |
uint16_t dlen; |
|
|
447 |
int iresult; |
| 447 |
|
448 |
|
| 448 |
LIBALIAS_LOCK_ASSERT(la); |
449 |
LIBALIAS_LOCK_ASSERT(la); |
| 449 |
|
450 |
|
|
Lines 740-746
Link Here
|
| 740 |
{ |
741 |
{ |
| 741 |
struct udphdr *ud; |
742 |
struct udphdr *ud; |
| 742 |
struct alias_link *lnk; |
743 |
struct alias_link *lnk; |
| 743 |
int dlen; |
744 |
uint16_t dlen; |
| 744 |
|
745 |
|
| 745 |
LIBALIAS_LOCK_ASSERT(la); |
746 |
LIBALIAS_LOCK_ASSERT(la); |
| 746 |
|
747 |
|
|
Lines 839-845
Link Here
|
| 839 |
u_short dest_port; |
840 |
u_short dest_port; |
| 840 |
u_short proxy_server_port; |
841 |
u_short proxy_server_port; |
| 841 |
int proxy_type; |
842 |
int proxy_type; |
| 842 |
int dlen, error; |
843 |
uint16_t dlen; |
|
|
844 |
int error; |
| 843 |
|
845 |
|
| 844 |
LIBALIAS_LOCK_ASSERT(la); |
846 |
LIBALIAS_LOCK_ASSERT(la); |
| 845 |
|
847 |
|
|
Lines 944-950
Link Here
|
| 944 |
{ |
946 |
{ |
| 945 |
struct tcphdr *tc; |
947 |
struct tcphdr *tc; |
| 946 |
struct alias_link *lnk; |
948 |
struct alias_link *lnk; |
| 947 |
int dlen; |
949 |
uint16_t dlen; |
| 948 |
|
950 |
|
| 949 |
LIBALIAS_LOCK_ASSERT(la); |
951 |
LIBALIAS_LOCK_ASSERT(la); |
| 950 |
|
952 |
|
|
Lines 1069-1075
Link Here
|
| 1069 |
static int |
1071 |
static int |
| 1070 |
TcpAliasOut(struct libalias *la, struct ip *pip, int maxpacketsize, int create) |
1072 |
TcpAliasOut(struct libalias *la, struct ip *pip, int maxpacketsize, int create) |
| 1071 |
{ |
1073 |
{ |
| 1072 |
int dlen, proxy_type, error; |
1074 |
uint16_t dlen; |
|
|
1075 |
int proxy_type, error; |
| 1073 |
u_short dest_port; |
1076 |
u_short dest_port; |
| 1074 |
u_short proxy_server_port; |
1077 |
u_short proxy_server_port; |
| 1075 |
struct in_addr dest_address; |
1078 |
struct in_addr dest_address; |
|
Lines 1398-1411
Link Here
|
| 1398 |
error = find_handler(IN, IP, la, pip, &ad); |
1401 |
error = find_handler(IN, IP, la, pip, &ad); |
| 1399 |
if (error == 0) |
1402 |
if (error == 0) |
| 1400 |
iresult = PKT_ALIAS_OK; |
1403 |
iresult = PKT_ALIAS_OK; |
| 1401 |
else |
1404 |
else { |
|
|
1405 |
struct in_addr dst = pip->ip_dst; |
| 1406 |
u_short sum = pip->ip_sum; |
| 1402 |
iresult = ProtoAliasIn(la, pip->ip_src, |
1407 |
iresult = ProtoAliasIn(la, pip->ip_src, |
| 1403 |
&pip->ip_dst, pip->ip_p, &pip->ip_sum); |
1408 |
&dst, pip->ip_p, &sum); |
|
|
1409 |
} |
| 1404 |
} |
1410 |
} |
| 1405 |
break; |
1411 |
break; |
| 1406 |
default: |
1412 |
default: { |
| 1407 |
iresult = ProtoAliasIn(la, pip->ip_src, &pip->ip_dst, |
1413 |
struct in_addr dst = pip->ip_dst; |
| 1408 |
pip->ip_p, &pip->ip_sum); |
1414 |
u_short sum = pip->ip_sum; |
|
|
1415 |
iresult = ProtoAliasIn(la, pip->ip_src, &dst, |
| 1416 |
pip->ip_p, &sum); |
| 1417 |
} |
| 1409 |
break; |
1418 |
break; |
| 1410 |
} |
1419 |
} |
| 1411 |
|
1420 |
|
|
Lines 1421-1428
Link Here
|
| 1421 |
} |
1430 |
} |
| 1422 |
} |
1431 |
} |
| 1423 |
} else { |
1432 |
} else { |
| 1424 |
iresult = FragmentIn(la, pip->ip_src, &pip->ip_dst, pip->ip_id, |
1433 |
struct in_addr dst = pip->ip_dst; |
| 1425 |
&pip->ip_sum); |
1434 |
u_short sum = pip->ip_sum; |
|
|
1435 |
iresult = FragmentIn(la, pip->ip_src, &dst, pip->ip_id, |
| 1436 |
&sum); |
| 1426 |
} |
1437 |
} |
| 1427 |
|
1438 |
|
| 1428 |
getout: |
1439 |
getout: |
|
Lines 1555-1572
Link Here
|
| 1555 |
error = find_handler(OUT, IP, la, pip, &ad); |
1566 |
error = find_handler(OUT, IP, la, pip, &ad); |
| 1556 |
if (error == 0) |
1567 |
if (error == 0) |
| 1557 |
iresult = PKT_ALIAS_OK; |
1568 |
iresult = PKT_ALIAS_OK; |
| 1558 |
else |
1569 |
else { |
| 1559 |
iresult = ProtoAliasOut(la, &pip->ip_src, |
1570 |
struct in_addr src = pip->ip_src; |
| 1560 |
pip->ip_dst, pip->ip_p, &pip->ip_sum, create); |
1571 |
u_short sum = pip->ip_sum; |
|
|
1572 |
iresult = ProtoAliasOut(la, &src, |
| 1573 |
pip->ip_dst, pip->ip_p, &sum, create); |
| 1574 |
} |
| 1561 |
} |
1575 |
} |
| 1562 |
break; |
1576 |
break; |
| 1563 |
default: |
1577 |
default: { |
| 1564 |
iresult = ProtoAliasOut(la, &pip->ip_src, |
1578 |
struct in_addr src = pip->ip_src; |
| 1565 |
pip->ip_dst, pip->ip_p, &pip->ip_sum, create); |
1579 |
u_short sum = pip->ip_sum; |
|
|
1580 |
iresult = ProtoAliasOut(la, &src, |
| 1581 |
pip->ip_dst, pip->ip_p, &sum, create); |
| 1582 |
} |
| 1566 |
break; |
1583 |
break; |
| 1567 |
} |
1584 |
} |
| 1568 |
} else { |
1585 |
} else { |
| 1569 |
iresult = FragmentOut(la, &pip->ip_src, &pip->ip_sum); |
1586 |
struct in_addr src = pip->ip_src; |
|
|
1587 |
u_short sum = pip->ip_sum; |
| 1588 |
iresult = FragmentOut(la, &src, &sum); |
| 1570 |
} |
1589 |
} |
| 1571 |
|
1590 |
|
| 1572 |
SetDefaultAliasAddress(la, addr_save); |
1591 |
SetDefaultAliasAddress(la, addr_save); |