summaryrefslogtreecommitdiff
path: root/net-misc/rdate/files/rdate-1.10.2-fix-musl-compat-stdint.patch
blob: a6ff70b353d5fdb18e44f9cc9a2bc49c95d320a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
https://github.com/resurrecting-open-source-projects/openrdate/pull/3

From: Sam James <sam@gentoo.org>
Date: Thu, 3 Feb 2022 09:23:35 +0000
Subject: [PATCH] Use <stdint.h> to fix musl compatibility

uint32_t and friends are provided by <stdint.h> and the types
previously being relied on are non-standard, so let's swap.

This fixes building rdate on e.g. musl rather than glibc.

Bug: https://bugs.gentoo.org/832554
Signed-off-by: Sam James <sam@gentoo.org>
--- a/src/ntp.c
+++ b/src/ntp.c
@@ -52,6 +52,7 @@
 #include <netdb.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdint.h>
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
@@ -106,11 +107,11 @@ struct ntp_data {
     double		receive;
     double		transmit;
     double		current;
-    u_int64_t	recvck;
+    uint64_t	recvck;
 
     /* Local State */
     double		originate;
-    u_int64_t	xmitck;
+    uint64_t	xmitck;
 };
 
 void	ntp_client(const char *, int, struct timeval *, struct timeval *, int, int, int);
@@ -282,7 +283,7 @@ write_packet(int fd, struct ntp_data *data)
 
     packet[0] = (NTP_VERSION << 3) | (NTP_MODE_CLIENT);
 
-    data->xmitck = (u_int64_t)arc4random() << 32 | arc4random();
+    data->xmitck = (uint64_t)arc4random() << 32 | arc4random();
 
     /*
      * Send out a random 64-bit number as our transmit time.  The NTP
@@ -300,7 +301,7 @@ write_packet(int fd, struct ntp_data *data)
      * the transmit field intelligible.
      */
 
-    *(u_int64_t *)(packet + NTP_TRANSMIT) = data->xmitck;
+    *(uint64_t *)(packet + NTP_TRANSMIT) = data->xmitck;
 
     data->originate = current_time(JAN_1970);
 
@@ -453,7 +454,7 @@ double
 current_time(double offset)
 {
     struct timeval current;
-    u_int64_t t;
+    uint64_t t;
 
     if (gettimeofday(&current, NULL))
         err(1, "Could not get local time of day");
--- a/src/ntpleaps.c
+++ b/src/ntpleaps.c
@@ -45,12 +45,13 @@
 #include <fcntl.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <stdint.h>
 #include <string.h>
 #include <unistd.h>
 
 #include "ntpleaps.h"
 
-static u_int64_t *leapsecs;
+static uint64_t *leapsecs;
 static unsigned int leapsecs_num;
 
 
@@ -81,10 +82,10 @@ ntpleaps_init(void)
 }
 
 int
-ntpleaps_sub(u_int64_t *t)
+ntpleaps_sub(uint64_t *t)
 {
     unsigned int i = 0;
-    u_int64_t u;
+    uint64_t u;
     int r = 1;
 
     if (ntpleaps_init() == -1)
@@ -105,10 +106,10 @@ ntpleaps_sub(u_int64_t *t)
     return (r);
 }
 
-u_int32_t
-read_be_dword(u_int8_t *ptr)
+uint32_t
+read_be_dword(uint8_t *ptr)
 {
-    u_int32_t res;
+    uint32_t res;
 
     memcpy(&res, ptr, 4);
     return (ntohl(res));
@@ -120,10 +121,10 @@ ntpleaps_read(void)
 {
     int fd;
     unsigned int r;
-    u_int8_t buf[32];
-    u_int32_t m1, m2, m3;
-    u_int64_t s;
-    u_int64_t *l;
+    uint8_t buf[32];
+    uint32_t m1, m2, m3;
+    uint64_t s;
+    uint64_t *l;
 
     fd = open("/usr/share/zoneinfo/right/UTC", O_RDONLY | O_NDELAY);
     if (fd == -1)
@@ -153,7 +154,7 @@ ntpleaps_read(void)
         close(fd);
         return (-1);
     }
-    if ((l = (u_int64_t *)malloc(r << 3)) == NULL) {
+    if ((l = (uint64_t *)malloc(r << 3)) == NULL) {
         close(fd);
         return (-1);
     }
--- a/src/ntpleaps.h
+++ b/src/ntpleaps.h
@@ -46,11 +46,13 @@
 #ifndef _NTPLEAPS_H
 #define _NTPLEAPS_H
 
+#include <stdint.h>
+
 /* Offset between struct timeval.tv_sec and a tai64_t */
 #define	NTPLEAPS_OFFSET	(4611686018427387914ULL)
 
 /* Hide this ugly value from programmes */
-#define	SEC_TO_TAI64(s)	(NTPLEAPS_OFFSET + (u_int64_t)(s))
+#define	SEC_TO_TAI64(s)	(NTPLEAPS_OFFSET + (uint64_t)(s))
 #define	TAI64_TO_SEC(t)	((t) - NTPLEAPS_OFFSET)
 
 /* Initializes the leap second table. Does not need to be called
@@ -70,6 +72,6 @@ int ntpleaps_read(void);
  * to posix clock tick time.
  * returns 0 on success, -1 on error (time is unchanged), 1 on leap second
  */
-int ntpleaps_sub(u_int64_t *);
+int ntpleaps_sub(uint64_t *);
 
 #endif
--- a/src/rfc868time.c
+++ b/src/rfc868time.c
@@ -50,6 +50,7 @@
 #include <stdio.h>
 #include <ctype.h>
 #include <err.h>
+#include <stdint.h>
 #include <string.h>
 #include <netdb.h>
 #include <unistd.h>
@@ -68,10 +69,10 @@ rfc868time_client (const char *hostname, int family, struct timeval *new,
 {
     struct addrinfo hints, *res0, *res;
     struct timeval old;
-    u_int32_t tim;	/* RFC 868 states clearly this is an uint32 */
+    uint32_t tim;	/* RFC 868 states clearly this is an uint32 */
     int s;
     int error;
-    u_int64_t td;
+    uint64_t td;
 
     memset(&hints, 0, sizeof(hints));
     hints.ai_family = family;