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
|
Source:
https://bugs.ntp.org/show_bug.cgi?id=3688
Juergen Perlinger 2020-12-24 07:10:49 UTC
Created attachment 1760 [details]
ultimate patch, v00
--- a/sntp/log.c 2020-12-24 08:02:05.206004072 +0100
+++ a/sntp/log.c 2020-12-24 08:02:05.206004072 +0100
@@ -2,7 +2,7 @@
#include "log.h"
-const char *progname; /* for msyslog use too */
+extern const char *progname; /* for msyslog use too */
static int counter = 0;
--- a/sntp/main.c 2020-12-24 08:02:05.210003956 +0100
+++ a/sntp/main.c 2020-12-24 08:02:05.210003956 +0100
@@ -20,7 +20,6 @@
#include "log.h"
#include "libntp.h"
-
int shutting_down;
int time_derived;
int time_adjusted;
--- a/sntp/main.h 2020-12-24 08:02:05.210003956 +0100
+++ a/sntp/main.h 2020-12-24 08:02:05.210003956 +0100
@@ -16,6 +16,14 @@
#include "crypto.h"
+/* !Attention! 'progname' must de instantiated in any program that wants
+ * to use this library. Putting it into the library breaks a lot of
+ * things, since many programs define it itself and then the symbol
+ * might end up twice in the linker.
+ */
+extern const char * progname;
+
+
void set_li_vn_mode(struct pkt *spkt, char leap, char version, char mode);
extern int sntp_main(int argc, char **argv, const char *);
int generate_pkt(struct pkt *x_pkt, const struct timeval *tv_xmt,
--- a/sntp/sntp.c 2020-12-24 08:02:05.210003956 +0100
+++ a/sntp/sntp.c 2020-12-24 08:02:05.210003956 +0100
@@ -2,6 +2,8 @@
#include "main.h"
+const char * progname;
+
int
main (
int argc,
--- a/sntp/tests/t-log.c 2020-12-24 08:02:05.210003956 +0100
+++ a/sntp/tests/t-log.c 2020-12-24 08:02:05.210003956 +0100
@@ -3,7 +3,6 @@
#include "ntp_types.h"
-//#include "log.h"
#include "log.c"
void setUp(void);
--- a/tests/libntp/test-libntp.h 2020-12-24 08:02:05.210003956 +0100
+++ a/tests/libntp/test-libntp.h 2020-12-24 08:02:05.210003956 +0100
@@ -5,4 +5,4 @@
time_t timefunc(time_t *ptr);
void settime(int y, int m, int d, int H, int M, int S);
-time_t nowtime;
+extern time_t nowtime;
|