1*4882a593SmuzhiyunFrom 73b1002eda17451db1f58431b42c25203f1d3097 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Khem Raj <raj.khem@gmail.com>
3*4882a593SmuzhiyunDate: Sun, 9 Sep 2018 17:38:10 -0700
4*4882a593SmuzhiyunSubject: [PATCH] connect has a different signature on musl
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunOn linux when not using glibc and using musl for C library, connect
7*4882a593SmuzhiyunAPI has a different signature, this patch fixes this so it can compile
8*4882a593Smuzhiyunon musl, the functionality should remain same as it is immediately
9*4882a593Smuzhiyuntypcasted to struct sockaddr_in* type inside the function before use
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunUpstream-Status: Pending
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunSigned-off-by: Khem Raj <raj.khem@gmail.com>
14*4882a593Smuzhiyun---
15*4882a593Smuzhiyun validate/plugins/fault_injection/socket_interposer.c | 7 ++++++-
16*4882a593Smuzhiyun 1 file changed, 6 insertions(+), 1 deletion(-)
17*4882a593Smuzhiyun
18*4882a593Smuzhiyundiff --git a/validate/plugins/fault_injection/socket_interposer.c b/validate/plugins/fault_injection/socket_interposer.c
19*4882a593Smuzhiyunindex 53c1ebb..ad7adf8 100644
20*4882a593Smuzhiyun--- a/validate/plugins/fault_injection/socket_interposer.c
21*4882a593Smuzhiyun+++ b/validate/plugins/fault_injection/socket_interposer.c
22*4882a593Smuzhiyun@@ -100,10 +100,15 @@ socket_interposer_set_callback (struct sockaddr_in *addrin,
23*4882a593Smuzhiyun }
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun int
26*4882a593Smuzhiyun-connect (int socket, const struct sockaddr_in *addrin, socklen_t address_len)
27*4882a593Smuzhiyun+#if defined(__linux__) && !defined(__GLIBC__)
28*4882a593Smuzhiyun+connect (int socket, const struct sockaddr *addr, socklen_t address_len)
29*4882a593Smuzhiyun+#else
30*4882a593Smuzhiyun+connect (int socket, const struct sockaddr_in *addr, socklen_t address_len)
31*4882a593Smuzhiyun+#endif
32*4882a593Smuzhiyun {
33*4882a593Smuzhiyun   size_t i;
34*4882a593Smuzhiyun   int override_errno = 0;
35*4882a593Smuzhiyun+  struct sockaddr_in* addrin = (struct sockaddr_in*)addr;
36*4882a593Smuzhiyun   typedef ssize_t (*real_connect_fn) (int, const struct sockaddr_in *,
37*4882a593Smuzhiyun       socklen_t);
38*4882a593Smuzhiyun   static real_connect_fn real_connect = 0;
39