]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- adjust generic proxy-protocol header for IPv6 support with ifdef.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 25 Apr 2023 06:16:19 +0000 (08:16 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Tue, 25 Apr 2023 06:16:19 +0000 (08:16 +0200)
util/proxy_protocol.c
util/proxy_protocol.h

index fd253372f87f1c138fe1a894761e472e0cf1b05c..03db060375aed750f0dbe6071a2f1cd9f03a7d78 100644 (file)
@@ -83,7 +83,12 @@ pp_lookup_error(enum pp_parse_errors error) {
 }
 
 size_t
-pp2_write_to_buf(uint8_t* buf, size_t buflen, struct sockaddr_storage* src,
+pp2_write_to_buf(uint8_t* buf, size_t buflen,
+#ifdef INET6
+       struct sockaddr_storage* src,
+#else
+       struct sockaddr_in* src,
+#endif
        int stream)
 {
        int af;
@@ -123,6 +128,7 @@ pp2_write_to_buf(uint8_t* buf, size_t buflen, struct sockaddr_storage* src,
                /* dst port */
                (*pp_data.write_uint16)(buf, 12);
        } else {
+#ifdef INET6
                /* family and protocol */
                *buf = (PP2_AF_INET6<<4) |
                        (stream?PP2_PROT_STREAM:PP2_PROT_DGRAM);
@@ -142,6 +148,9 @@ pp2_write_to_buf(uint8_t* buf, size_t buflen, struct sockaddr_storage* src,
                buf += 2;
                /* dst port */
                (*pp_data.write_uint16)(buf, 0);
+#else
+               return 0;
+#endif /* INET6 */
        }
        return expected_size;
 }
index f4867ad6c09c1fc0b852841c1f9c78c323aaa091..58d3f8d57588c667848e7707aa3d977bd24dae1e 100644 (file)
@@ -144,7 +144,12 @@ const char* pp_lookup_error(enum pp_parse_errors error);
  * @return 1 on success, 0 on failure.
  */
 size_t pp2_write_to_buf(uint8_t* buf, size_t buflen,
-       struct sockaddr_storage* src, int stream);
+#ifdef INET6
+       struct sockaddr_storage* src,
+#else
+       struct sockaddr_in* src,
+#endif
+       int stream);
 
 /**
  * Read a PROXYv2 header from the current position of the buffer.