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