From 043c6c62e63f0fcdd573f47137fb3be5c565aef1 Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Wed, 26 Jan 2000 19:22:41 +0000 Subject: [PATCH] add isc_sockaddr_setport() --- lib/isc/include/isc/sockaddr.h | 6 ++++++ lib/isc/sockaddr.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/isc/include/isc/sockaddr.h b/lib/isc/include/isc/sockaddr.h index bc66142bf8..6e5a896b28 100644 --- a/lib/isc/include/isc/sockaddr.h +++ b/lib/isc/include/isc/sockaddr.h @@ -77,6 +77,12 @@ isc_sockaddr_pf(const isc_sockaddr_t *sockaddr); * The protocol family of 'sockaddr', e.g. PF_INET or PF_INET6. */ +void +isc_sockaddr_setport(isc_sockaddr_t *sockaddr, in_port_t port); +/* + * Set the port of 'sockaddr' to 'port'. + */ + isc_result_t isc_sockaddr_totext(const isc_sockaddr_t *sockaddr, isc_buffer_t *target); /* diff --git a/lib/isc/sockaddr.c b/lib/isc/sockaddr.c index 4e34db4b87..e8ad07d2dc 100644 --- a/lib/isc/sockaddr.c +++ b/lib/isc/sockaddr.c @@ -323,3 +323,17 @@ isc_sockaddr_pf(const isc_sockaddr_t *sockaddr) { } #endif } + +void +isc_sockaddr_setport(isc_sockaddr_t *sockaddr, in_port_t port) { + switch (sockaddr->type.sa.sa_family) { + case AF_INET: + sockaddr->type.sin.sin_port = htons(port); + break; + case AF_INET6: + sockaddr->type.sin6.sin6_port = htons(port); + break; + default: + FATAL_ERROR(__FILE__, __LINE__, "unknown address family"); + } +}