From f9fe8b8355652aa61a27c53ce4fc925a03247b08 Mon Sep 17 00:00:00 2001 From: pennam Date: Wed, 12 Oct 2022 12:51:56 +0200 Subject: [PATCH 1/3] Allow creating IPAddress object from string and provide = overload --- api/IPAddress.cpp | 11 +++++++++++ api/IPAddress.h | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/api/IPAddress.cpp b/api/IPAddress.cpp index ee941f6d..4b729319 100644 --- a/api/IPAddress.cpp +++ b/api/IPAddress.cpp @@ -89,6 +89,11 @@ IPAddress::IPAddress(IPType ip_type, const uint8_t *address) } } +IPAddress::IPAddress(const char *address) +{ + fromString(address); +} + bool IPAddress::fromString(const char *address) { if (!fromString4(address)) { return fromString6(address); @@ -225,6 +230,12 @@ IPAddress& IPAddress::operator=(const uint8_t *address) return *this; } +IPAddress& IPAddress::operator=(const char *address) +{ + fromString(address); + return *this; +} + IPAddress& IPAddress::operator=(uint32_t address) { // IPv4 conversion diff --git a/api/IPAddress.h b/api/IPAddress.h index 03f2e8e2..61f104d4 100644 --- a/api/IPAddress.h +++ b/api/IPAddress.h @@ -67,6 +67,8 @@ class IPAddress : public Printable { // Default IPv4 IPAddress(const uint8_t *address); IPAddress(IPType ip_type, const uint8_t *address); + // If IPv4 fails tries IPv6 see fromSting function + IPAddress(const char *address); bool fromString(const char *address); bool fromString(const String &address) { return fromString(address.c_str()); } @@ -90,6 +92,8 @@ class IPAddress : public Printable { IPAddress& operator=(const uint8_t *address); // NOTE: IPv4 only; see implementation note IPAddress& operator=(uint32_t address); + // If IPv4 fails tries IPv6 see fromSting function + IPAddress& operator=(const char *address); virtual size_t printTo(Print& p) const; From 53f3f2931e349b5a6e3a44baf1640029a44e74d0 Mon Sep 17 00:00:00 2001 From: Mattia Pennasilico Date: Fri, 14 Oct 2022 16:15:03 +0200 Subject: [PATCH 2/3] Fix typo in comment Co-authored-by: per1234 --- api/IPAddress.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/IPAddress.h b/api/IPAddress.h index 61f104d4..415c1735 100644 --- a/api/IPAddress.h +++ b/api/IPAddress.h @@ -67,7 +67,7 @@ class IPAddress : public Printable { // Default IPv4 IPAddress(const uint8_t *address); IPAddress(IPType ip_type, const uint8_t *address); - // If IPv4 fails tries IPv6 see fromSting function + // If IPv4 fails tries IPv6 see fromString function IPAddress(const char *address); bool fromString(const char *address); From f25d3c885f3b88d7b4dea47adbde11fb2d032db4 Mon Sep 17 00:00:00 2001 From: Mattia Pennasilico Date: Fri, 14 Oct 2022 16:15:10 +0200 Subject: [PATCH 3/3] Fix typo in comment Co-authored-by: per1234 --- api/IPAddress.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/IPAddress.h b/api/IPAddress.h index 415c1735..964faa67 100644 --- a/api/IPAddress.h +++ b/api/IPAddress.h @@ -92,7 +92,7 @@ class IPAddress : public Printable { IPAddress& operator=(const uint8_t *address); // NOTE: IPv4 only; see implementation note IPAddress& operator=(uint32_t address); - // If IPv4 fails tries IPv6 see fromSting function + // If IPv4 fails tries IPv6 see fromString function IPAddress& operator=(const char *address); virtual size_t printTo(Print& p) const;