aboutsummaryrefslogtreecommitdiff
path: root/dhcp6relay.c
diff options
context:
space:
mode:
Diffstat (limited to 'dhcp6relay.c')
-rw-r--r--dhcp6relay.c6
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));