Browse Source

IP4: make sure to set IPADDR_TYPE_V4; add operator !=

H. Peter Anvin 1 year ago
parent
commit
6983035210
5 changed files with 13 additions and 13 deletions
  1. 13 13
      esp32/max80/IP4.h
  2. BIN
      esp32/output/max80.ino.bin
  3. BIN
      fpga/output/max80.fw
  4. BIN
      fpga/output/v1.fw
  5. BIN
      fpga/output/v2.fw

+ 13 - 13
esp32/max80/IP4.h

@@ -30,24 +30,24 @@ public:
 	l{ip.type == IPADDR_TYPE_V4 ? ip.u_addr.ip4.addr : 0} { }
     IP4(const char *str);
 
-    operator uint32_t () { return l; }
-    operator IPAddress () {
-	IPAddress ip(l);
-	return ip;
+    constexpr operator uint32_t () { return l; }
+    operator IPAddress () { return IPAddress(l); }
+    constexpr operator ip_addr_t () {
+	return ip_addr_t {
+	    .u_addr = {.ip4 = {.addr = l}},
+	    .type = IPADDR_TYPE_V4
+	};
     }
-    operator ip_addr_t () {
-	ip_addr_t ip = { };
-	ip.u_addr.ip4.addr = l;
-	return ip;
-    }
-    operator esp_ip_addr_t () {
-	esp_ip_addr_t ip = { };
-	ip.u_addr.ip4.addr = l;
-	return ip;
+    constexpr operator esp_ip_addr_t () {
+	return esp_ip_addr_t {
+	    .u_addr = {.ip4 = {.addr = l }},
+	    .type = IPADDR_TYPE_V4
+	};
     }
     constexpr operator bool () { return l != 0; }
     constexpr bool operator ! () { return l == 0; }
     constexpr bool operator == (const IP4 &b) { return l == b.l; }
+    constexpr bool operator != (const IP4 &b) { return l != b.l; }
     constexpr uint8_t operator [] (size_t n) { return b[n]; }
     uint8_t & operator [] (size_t n) { return b[n]; }
 

BIN
esp32/output/max80.ino.bin


BIN
fpga/output/max80.fw


BIN
fpga/output/v1.fw


BIN
fpga/output/v2.fw