[Openvpn-devel] [M] Change in openvpn[master]: otime: Fix various conversion warnings

2025-11-16 Thread cron2 (Code Review)
cron2 has submitted this change. ( 
http://gerrit.openvpn.net/c/openvpn/+/1274?usp=email )

Change subject: otime: Fix various conversion warnings
..

otime: Fix various conversion warnings

Generally just use better types. Use typedef
to handle the Win32 situation where tv_sec
is long which is smaller than time_t (which
is long long).

Change-Id: Ie22f4902162b7004542f030c734b968de71e0e9e
Signed-off-by: Frank Lichtenheld 
Acked-by: Gert Doering 
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1274
Message-Id: <[email protected]>
URL: 
https://www.mail-archive.com/[email protected]/msg34462.html
Signed-off-by: Gert Doering 
---
M src/openvpn/otime.c
M src/openvpn/otime.h
2 files changed, 26 insertions(+), 39 deletions(-)




diff --git a/src/openvpn/otime.c b/src/openvpn/otime.c
index d9bf157..1b3b096 100644
--- a/src/openvpn/otime.c
+++ b/src/openvpn/otime.c
@@ -95,50 +95,37 @@
 const char *
 tv_string_abs(const struct timeval *tv, struct gc_arena *gc)
 {
-return time_string((time_t)tv->tv_sec, (long)tv->tv_usec, true, gc);
+return time_string(tv->tv_sec, tv->tv_usec, true, gc);
 }

 /* format a time_t as ascii, or use current time if 0 */

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
-
 const char *
-time_string(time_t t, long usec, bool show_usec, struct gc_arena *gc)
+time_string(time_t t, tv_usec_t usec, bool show_usec, struct gc_arena *gc)
 {
 struct buffer out = alloc_buf_gc(64, gc);
 struct timeval tv;

-if (t)
-{
-tv.tv_sec = t;
-tv.tv_usec = usec;
-}
-else
+if (!t)
 {
 gettimeofday(&tv, NULL);
+t = tv.tv_sec;
+usec = tv.tv_usec;
 }

-t = tv.tv_sec;
 struct tm *tm = localtime(&t);

 buf_printf(&out, "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, 
tm->tm_mon + 1,
tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);

-if (show_usec && tv.tv_usec)
+if (show_usec && usec)
 {
-buf_printf(&out, " us=%ld", (long)tv.tv_usec);
+buf_printf(&out, " us=%ld", (long)usec);
 }
 
 return BSTR(&out);
 }

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic pop
-#endif
-
 /*
  * Limit the frequency of an event stream.
  *
diff --git a/src/openvpn/otime.h b/src/openvpn/otime.h
index 108d0f2..60533fd 100644
--- a/src/openvpn/otime.h
+++ b/src/openvpn/otime.h
@@ -27,6 +27,14 @@
 #include "integer.h"
 #include "buffer.h"

+#ifdef _WIN32
+typedef long tv_sec_t;
+typedef long tv_usec_t;
+#else
+typedef time_t tv_sec_t;
+typedef suseconds_t tv_usec_t;
+#endif
+
 struct frequency_limit
 {
 int max;
@@ -42,7 +50,7 @@
 bool frequency_limit_event_allowed(struct frequency_limit *f);

 /* format a time_t as ascii, or use current time if 0 */
-const char *time_string(time_t t, long usec, bool show_usec, struct gc_arena 
*gc);
+const char *time_string(time_t t, tv_usec_t usec, bool show_usec, struct 
gc_arena *gc);

 /* struct timeval functions */

@@ -59,11 +67,6 @@
 extern time_t now_usec;
 void update_now_usec(struct timeval *tv);

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
-
 static inline int
 openvpn_gettimeofday(struct timeval *tv, void *tz)
 {
@@ -71,8 +74,8 @@
 if (!status)
 {
 update_now_usec(tv);
-tv->tv_sec = now;
-tv->tv_usec = now_usec;
+tv->tv_sec = (tv_sec_t)now;
+tv->tv_usec = (tv_usec_t)now_usec;
 }
 return status;
 }
@@ -116,20 +119,21 @@

 /* return tv1 - tv2 in usec, constrained by max_seconds */
 static inline int
-tv_subtract(const struct timeval *tv1, const struct timeval *tv2, const 
unsigned int max_seconds)
+tv_subtract(const struct timeval *tv1, const struct timeval *tv2, const int 
max_seconds)
 {
 const int max_usec = max_seconds * 100;
-const int sec_diff = tv1->tv_sec - tv2->tv_sec;
+const tv_sec_t sec_diff = tv1->tv_sec - tv2->tv_sec;

-if (sec_diff > ((int)max_seconds + 10))
+if (sec_diff > (max_seconds + 10))
 {
 return max_usec;
 }
-else if (sec_diff < -((int)max_seconds + 10))
+else if (sec_diff < -(max_seconds + 10))
 {
 return -max_usec;
 }
-return constrain_int(sec_diff * 100 + (tv1->tv_usec - tv2->tv_usec), 
-max_usec, max_usec);
+const time_t complete_diff = sec_diff * 100 + (tv1->tv_usec - 
tv2->tv_usec);
+return constrain_int((int)complete_diff, -max_usec, max_usec);
 }

 static inline void
@@ -223,8 +227,8 @@
 static inline void
 tv_delta(struct timeval *dest, const struct timeval *t1, const struct timeval 
*t2)
 {
-int sec = t2->tv_sec - t1->tv_sec;
-int usec = t2->tv_usec - t1->tv_usec;
+tv_sec_t sec = t2->tv_sec - t1->tv_sec;
+tv_usec_t usec = t2->tv_usec - t1->tv_usec;

 while (

[Openvpn-devel] [M] Change in openvpn[master]: otime: Fix various conversion warnings

2025-11-16 Thread cron2 (Code Review)
cron2 has uploaded a new patch set (#9) to the change originally created by 
flichtenheld. ( http://gerrit.openvpn.net/c/openvpn/+/1274?usp=email )

The following approvals got outdated and were removed:
Code-Review+2 by cron2


Change subject: otime: Fix various conversion warnings
..

otime: Fix various conversion warnings

Generally just use better types. Use typedef
to handle the Win32 situation where tv_sec
is long which is smaller than time_t (which
is long long).

Change-Id: Ie22f4902162b7004542f030c734b968de71e0e9e
Signed-off-by: Frank Lichtenheld 
Acked-by: Gert Doering 
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1274
Message-Id: <[email protected]>
URL: 
https://www.mail-archive.com/[email protected]/msg34462.html
Signed-off-by: Gert Doering 
---
M src/openvpn/otime.c
M src/openvpn/otime.h
2 files changed, 26 insertions(+), 39 deletions(-)


  git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/74/1274/9

diff --git a/src/openvpn/otime.c b/src/openvpn/otime.c
index d9bf157..1b3b096 100644
--- a/src/openvpn/otime.c
+++ b/src/openvpn/otime.c
@@ -95,50 +95,37 @@
 const char *
 tv_string_abs(const struct timeval *tv, struct gc_arena *gc)
 {
-return time_string((time_t)tv->tv_sec, (long)tv->tv_usec, true, gc);
+return time_string(tv->tv_sec, tv->tv_usec, true, gc);
 }

 /* format a time_t as ascii, or use current time if 0 */

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
-
 const char *
-time_string(time_t t, long usec, bool show_usec, struct gc_arena *gc)
+time_string(time_t t, tv_usec_t usec, bool show_usec, struct gc_arena *gc)
 {
 struct buffer out = alloc_buf_gc(64, gc);
 struct timeval tv;

-if (t)
-{
-tv.tv_sec = t;
-tv.tv_usec = usec;
-}
-else
+if (!t)
 {
 gettimeofday(&tv, NULL);
+t = tv.tv_sec;
+usec = tv.tv_usec;
 }

-t = tv.tv_sec;
 struct tm *tm = localtime(&t);

 buf_printf(&out, "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, 
tm->tm_mon + 1,
tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);

-if (show_usec && tv.tv_usec)
+if (show_usec && usec)
 {
-buf_printf(&out, " us=%ld", (long)tv.tv_usec);
+buf_printf(&out, " us=%ld", (long)usec);
 }

 return BSTR(&out);
 }

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic pop
-#endif
-
 /*
  * Limit the frequency of an event stream.
  *
diff --git a/src/openvpn/otime.h b/src/openvpn/otime.h
index 108d0f2..60533fd 100644
--- a/src/openvpn/otime.h
+++ b/src/openvpn/otime.h
@@ -27,6 +27,14 @@
 #include "integer.h"
 #include "buffer.h"

+#ifdef _WIN32
+typedef long tv_sec_t;
+typedef long tv_usec_t;
+#else
+typedef time_t tv_sec_t;
+typedef suseconds_t tv_usec_t;
+#endif
+
 struct frequency_limit
 {
 int max;
@@ -42,7 +50,7 @@
 bool frequency_limit_event_allowed(struct frequency_limit *f);

 /* format a time_t as ascii, or use current time if 0 */
-const char *time_string(time_t t, long usec, bool show_usec, struct gc_arena 
*gc);
+const char *time_string(time_t t, tv_usec_t usec, bool show_usec, struct 
gc_arena *gc);

 /* struct timeval functions */
 
@@ -59,11 +67,6 @@
 extern time_t now_usec;
 void update_now_usec(struct timeval *tv);

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
-
 static inline int
 openvpn_gettimeofday(struct timeval *tv, void *tz)
 {
@@ -71,8 +74,8 @@
 if (!status)
 {
 update_now_usec(tv);
-tv->tv_sec = now;
-tv->tv_usec = now_usec;
+tv->tv_sec = (tv_sec_t)now;
+tv->tv_usec = (tv_usec_t)now_usec;
 }
 return status;
 }
@@ -116,20 +119,21 @@

 /* return tv1 - tv2 in usec, constrained by max_seconds */
 static inline int
-tv_subtract(const struct timeval *tv1, const struct timeval *tv2, const 
unsigned int max_seconds)
+tv_subtract(const struct timeval *tv1, const struct timeval *tv2, const int 
max_seconds)
 {
 const int max_usec = max_seconds * 100;
-const int sec_diff = tv1->tv_sec - tv2->tv_sec;
+const tv_sec_t sec_diff = tv1->tv_sec - tv2->tv_sec;

-if (sec_diff > ((int)max_seconds + 10))
+if (sec_diff > (max_seconds + 10))
 {
 return max_usec;
 }
-else if (sec_diff < -((int)max_seconds + 10))
+else if (sec_diff < -(max_seconds + 10))
 {
 return -max_usec;
 }
-return constrain_int(sec_diff * 100 + (tv1->tv_usec - tv2->tv_usec), 
-max_usec, max_usec);
+const time_t complete_diff = sec_diff * 100 + (tv1->tv_usec - 
tv2->tv_usec);
+return constrain_int((int)complete_diff, -max_usec, max_usec);
 }

 static inline void
@@ -223,8 +227,8 @@
 static inline void
 tv_delta(struct timeval *dest, const struct timeval *t1, const struc

[Openvpn-devel] [M] Change in openvpn[master]: otime: Fix various conversion warnings

2025-11-16 Thread cron2 (Code Review)
Attention is currently required from: flichtenheld, plaisthos.

cron2 has posted comments on this change by flichtenheld. ( 
http://gerrit.openvpn.net/c/openvpn/+/1274?usp=email )

Change subject: otime: Fix various conversion warnings
..


Patch Set 8: Code-Review+2


--
To view, visit http://gerrit.openvpn.net/c/openvpn/+/1274?usp=email
To unsubscribe, or for help writing mail filters, visit 
http://gerrit.openvpn.net/settings?usp=email

Gerrit-MessageType: comment
Gerrit-Project: openvpn
Gerrit-Branch: master
Gerrit-Change-Id: Ie22f4902162b7004542f030c734b968de71e0e9e
Gerrit-Change-Number: 1274
Gerrit-PatchSet: 8
Gerrit-Owner: flichtenheld 
Gerrit-Reviewer: cron2 
Gerrit-Reviewer: plaisthos 
Gerrit-CC: openvpn-devel 
Gerrit-Attention: plaisthos 
Gerrit-Attention: flichtenheld 
Gerrit-Comment-Date: Sun, 16 Nov 2025 13:57:42 +
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
___
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel


[Openvpn-devel] [M] Change in openvpn[master]: otime: Fix various conversion warnings

2025-10-18 Thread flichtenheld (Code Review)
Attention is currently required from: plaisthos.

Hello plaisthos,

I'd like you to do a code review.
Please visit

http://gerrit.openvpn.net/c/openvpn/+/1274?usp=email

to review the following change.


Change subject: otime: Fix various conversion warnings
..

otime: Fix various conversion warnings

Generally just use better types. Use typedef
to handle the Win32 situation where tv_sec
is long which is smaller than time_t (which
is long long).

Change-Id: Ie22f4902162b7004542f030c734b968de71e0e9e
Signed-off-by: Frank Lichtenheld 
---
M src/openvpn/otime.c
M src/openvpn/otime.h
2 files changed, 26 insertions(+), 39 deletions(-)



  git pull ssh://gerrit.openvpn.net:29418/openvpn refs/changes/74/1274/1

diff --git a/src/openvpn/otime.c b/src/openvpn/otime.c
index d9bf157..1b3b096 100644
--- a/src/openvpn/otime.c
+++ b/src/openvpn/otime.c
@@ -95,50 +95,37 @@
 const char *
 tv_string_abs(const struct timeval *tv, struct gc_arena *gc)
 {
-return time_string((time_t)tv->tv_sec, (long)tv->tv_usec, true, gc);
+return time_string(tv->tv_sec, tv->tv_usec, true, gc);
 }

 /* format a time_t as ascii, or use current time if 0 */

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
-
 const char *
-time_string(time_t t, long usec, bool show_usec, struct gc_arena *gc)
+time_string(time_t t, tv_usec_t usec, bool show_usec, struct gc_arena *gc)
 {
 struct buffer out = alloc_buf_gc(64, gc);
 struct timeval tv;

-if (t)
-{
-tv.tv_sec = t;
-tv.tv_usec = usec;
-}
-else
+if (!t)
 {
 gettimeofday(&tv, NULL);
+t = tv.tv_sec;
+usec = tv.tv_usec;
 }

-t = tv.tv_sec;
 struct tm *tm = localtime(&t);

 buf_printf(&out, "%04d-%02d-%02d %02d:%02d:%02d", tm->tm_year + 1900, 
tm->tm_mon + 1,
tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);

-if (show_usec && tv.tv_usec)
+if (show_usec && usec)
 {
-buf_printf(&out, " us=%ld", (long)tv.tv_usec);
+buf_printf(&out, " us=%ld", (long)usec);
 }

 return BSTR(&out);
 }

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic pop
-#endif
-
 /*
  * Limit the frequency of an event stream.
  *
diff --git a/src/openvpn/otime.h b/src/openvpn/otime.h
index 108d0f2..60533fd 100644
--- a/src/openvpn/otime.h
+++ b/src/openvpn/otime.h
@@ -27,6 +27,14 @@
 #include "integer.h"
 #include "buffer.h"

+#ifdef _WIN32
+typedef long tv_sec_t;
+typedef long tv_usec_t;
+#else
+typedef time_t tv_sec_t;
+typedef suseconds_t tv_usec_t;
+#endif
+
 struct frequency_limit
 {
 int max;
@@ -42,7 +50,7 @@
 bool frequency_limit_event_allowed(struct frequency_limit *f);

 /* format a time_t as ascii, or use current time if 0 */
-const char *time_string(time_t t, long usec, bool show_usec, struct gc_arena 
*gc);
+const char *time_string(time_t t, tv_usec_t usec, bool show_usec, struct 
gc_arena *gc);

 /* struct timeval functions */

@@ -59,11 +67,6 @@
 extern time_t now_usec;
 void update_now_usec(struct timeval *tv);

-#if defined(__GNUC__) || defined(__clang__)
-#pragma GCC diagnostic push
-#pragma GCC diagnostic ignored "-Wconversion"
-#endif
-
 static inline int
 openvpn_gettimeofday(struct timeval *tv, void *tz)
 {
@@ -71,8 +74,8 @@
 if (!status)
 {
 update_now_usec(tv);
-tv->tv_sec = now;
-tv->tv_usec = now_usec;
+tv->tv_sec = (tv_sec_t)now;
+tv->tv_usec = (tv_usec_t)now_usec;
 }
 return status;
 }
@@ -116,20 +119,21 @@

 /* return tv1 - tv2 in usec, constrained by max_seconds */
 static inline int
-tv_subtract(const struct timeval *tv1, const struct timeval *tv2, const 
unsigned int max_seconds)
+tv_subtract(const struct timeval *tv1, const struct timeval *tv2, const int 
max_seconds)
 {
 const int max_usec = max_seconds * 100;
-const int sec_diff = tv1->tv_sec - tv2->tv_sec;
+const tv_sec_t sec_diff = tv1->tv_sec - tv2->tv_sec;

-if (sec_diff > ((int)max_seconds + 10))
+if (sec_diff > (max_seconds + 10))
 {
 return max_usec;
 }
-else if (sec_diff < -((int)max_seconds + 10))
+else if (sec_diff < -(max_seconds + 10))
 {
 return -max_usec;
 }
-return constrain_int(sec_diff * 100 + (tv1->tv_usec - tv2->tv_usec), 
-max_usec, max_usec);
+const time_t complete_diff = sec_diff * 100 + (tv1->tv_usec - 
tv2->tv_usec);
+return constrain_int((int)complete_diff, -max_usec, max_usec);
 }

 static inline void
@@ -223,8 +227,8 @@
 static inline void
 tv_delta(struct timeval *dest, const struct timeval *t1, const struct timeval 
*t2)
 {
-int sec = t2->tv_sec - t1->tv_sec;
-int usec = t2->tv_usec - t1->tv_usec;
+tv_sec_t sec = t2->tv_sec - t1->tv_sec;
+tv_usec_t usec = t2->tv_usec - t1->tv_usec;

 while (usec < 0)
 {
@@ -241,10 +245,6 @@
 dest->tv_usec = usec