[libvirt PATCH 03/10] virNetworkDHCPLeaseTimeDef: Make expiry unsigned long long

Tim Wiederhake twiederh at redhat.com
Mon May 10 12:48:34 UTC 2021


The width of `unsigned long` differs on 32 bit and 64 bit architectures.
There is no compelling reason why the maximum DHCP lease time should
depend on the architecture.

Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
---
 src/conf/network_conf.c     | 8 ++++----
 src/conf/network_conf.h     | 2 +-
 src/network/bridge_driver.c | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/conf/network_conf.c b/src/conf/network_conf.c
index d6eafa3f57..c3c335135b 100644
--- a/src/conf/network_conf.c
+++ b/src/conf/network_conf.c
@@ -412,13 +412,13 @@ virNetworkDHCPLeaseTimeDefParseXML(virNetworkDHCPLeaseTimeDef **lease,
     virNetworkDHCPLeaseTimeDef *new_lease = NULL;
     g_autofree char *expirystr = NULL;
     g_autofree char *unitstr = NULL;
-    unsigned long expiry;
+    unsigned long long expiry;
     int unit = VIR_NETWORK_DHCP_LEASETIME_UNIT_MINUTES;
 
     if (!(expirystr = virXMLPropString(node, "expiry")))
         return 0;
 
-    if (virStrToLong_ul(expirystr, NULL, 10, &expiry) < 0) {
+    if (virStrToLong_ull(expirystr, NULL, 10, &expiry) < 0) {
         virReportError(VIR_ERR_XML_ERROR,
                        _("failed to parse expiry value '%s'"), expirystr);
         return -1;
@@ -2312,7 +2312,7 @@ virNetworkIPDefFormat(virBuffer *buf,
                 if (!lease->expiry) {
                     virBufferAddLit(buf, "<lease expiry='0'/>\n");
                 } else {
-                    virBufferAsprintf(buf, "<lease expiry='%lu' unit='%s'/>\n",
+                    virBufferAsprintf(buf, "<lease expiry='%llu' unit='%s'/>\n",
                                       lease->expiry,
                                       virNetworkDHCPLeaseTimeUnitTypeToString(lease->unit));
                 }
@@ -2344,7 +2344,7 @@ virNetworkIPDefFormat(virBuffer *buf,
                 if (!lease->expiry) {
                     virBufferAddLit(buf, "<lease expiry='0'/>\n");
                 } else {
-                    virBufferAsprintf(buf, "<lease expiry='%lu' unit='%s'/>\n",
+                    virBufferAsprintf(buf, "<lease expiry='%llu' unit='%s'/>\n",
                                       lease->expiry,
                                       virNetworkDHCPLeaseTimeUnitTypeToString(lease->unit));
                 }
diff --git a/src/conf/network_conf.h b/src/conf/network_conf.h
index a7e6b7a2a6..6199f3f588 100644
--- a/src/conf/network_conf.h
+++ b/src/conf/network_conf.h
@@ -105,7 +105,7 @@ VIR_ENUM_DECL(virNetworkForwardDriverName);
 
 typedef struct _virNetworkDHCPLeaseTimeDef virNetworkDHCPLeaseTimeDef;
 struct _virNetworkDHCPLeaseTimeDef {
-    unsigned long expiry;
+    unsigned long long expiry;
     virNetworkDHCPLeaseTimeUnitType unit;
 };
 
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index ee3f9dab0a..a711b34c48 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -988,7 +988,7 @@ networkBuildDnsmasqLeaseTime(virNetworkDHCPLeaseTimeDef *lease)
     } else {
         unit = virNetworkDHCPLeaseTimeUnitTypeToString(lease->unit);
         /* We get only first compatible char from string: 's', 'm' or 'h' */
-        virBufferAsprintf(&buf, "%lu%c", lease->expiry, unit[0]);
+        virBufferAsprintf(&buf, "%llu%c", lease->expiry, unit[0]);
     }
 
     return virBufferContentAndReset(&buf);
-- 
2.26.3




More information about the libvir-list mailing list