diff options
Diffstat (limited to 'dhcp6relay.c')
-rw-r--r-- | dhcp6relay.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/dhcp6relay.c b/dhcp6relay.c index b282115..e9b6dfd 100644 --- a/dhcp6relay.c +++ b/dhcp6relay.c @@ -1007,6 +1007,12 @@ relay_to_client(dh6relay, len, from) dh6 = (struct dhcp6 *) optinfo.relaymsg_msg; if (dh6->dh6_msgtype != DH6_RELAY_REPLY) { relayed++; + } else { + /* + * change dst port to server/relay port, since it's a + * reply to relay, not to a client + */ + peer.sin6_port = htons(547); /* DH6PORT_UPSTREAM */ } memcpy(&peer.sin6_addr, &dh6relay->dh6relay_peeraddr, sizeof (peer.sin6_addr)); |