From 2d0ae0560f0697f8366c0ce831baf63f5ff4f736 Mon Sep 17 00:00:00 2001
From: Benny Baumann <BenBE@geshi.org>
Date: Tue, 5 Jan 2021 01:52:00 +0100
Subject: [PATCH] fix: Workaround for compile issue with -Weffc++

---
 src/net/socketaddress.hpp | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/net/socketaddress.hpp b/src/net/socketaddress.hpp
index 7a32f28..ccb0c76 100644
--- a/src/net/socketaddress.hpp
+++ b/src/net/socketaddress.hpp
@@ -10,6 +10,7 @@
 
 #include <functional>
 
+#include "macros.hpp"
 #include "net/netio_exception.hpp"
 
 #ifdef __linux__
@@ -80,17 +81,24 @@ public:
     }
 
     template <typename T>
-    socketaddr &operator=(T *rhs) {
+    socketaddr& operator=(const T *rhs) {
         if (rhs->*(family_map<T>::sa_family_field) != family_map<T>::sa_family) {
             throw netio_exception("Address family mismatch in sockaddr structure.");
         }
 
         memcpy(&addr, rhs, sizeof(T));
         len = sizeof(T);
+
+COMPILER_SUPRESS("-Weffc++");
+        return *this;
+COMPILER_RESTORE("-Weffc++");
     }
 
-    socketaddr &operator=(sockaddr_storage *rhs) {
-        return *this = (sockaddr*)rhs;
+    socketaddr& operator=(const sockaddr_storage *rhs) {
+        *this = (sockaddr*)rhs;
+COMPILER_SUPRESS("-Weffc++");
+        return *this;
+COMPILER_RESTORE("-Weffc++");
     }
 
     socketaddr& operator=(sockaddr *rhs) {
-- 
GitLab