@@ -85,6 +85,14 @@ namespace bee::net {
85
85
}
86
86
addrinfo* info = nullptr ;
87
87
};
88
+
89
+ const char * inet_ntop_wrapper (int af, const void * src, char * dst, socklen_t size) {
90
+ #if !defined(__MINGW32__)
91
+ return inet_ntop (af, src, dst, size);
92
+ #else
93
+ return inet_ntop (af, const_cast <void *>(src), dst, size);
94
+ #endif
95
+ }
88
96
}
89
97
90
98
bool endpoint::ctor_hostname (endpoint& ep, zstring_view name, uint16_t port) noexcept {
@@ -106,13 +114,13 @@ namespace bee::net {
106
114
if (info->ai_addrlen != sizeof (sockaddr_in)) {
107
115
return false ;
108
116
}
109
- ep.assgin (*(const sockaddr_in*)info->ai_addr );
117
+ ep.assign (*(const sockaddr_in*)info->ai_addr );
110
118
return true ;
111
119
} else if (info->ai_family == AF_INET6) {
112
120
if (info->ai_addrlen != sizeof (sockaddr_in6)) {
113
121
return false ;
114
122
}
115
- ep.assgin (*(const sockaddr_in6*)info->ai_addr );
123
+ ep.assign (*(const sockaddr_in6*)info->ai_addr );
116
124
return true ;
117
125
} else {
118
126
return false ;
@@ -127,7 +135,7 @@ namespace bee::net {
127
135
su.sun_family = AF_UNIX;
128
136
memset (su.sun_path , 0 , UNIX_PATH_MAX);
129
137
memcpy (su.sun_path , path.data (), path.size () + 1 );
130
- ep.assgin (su);
138
+ ep.assign (su);
131
139
return true ;
132
140
}
133
141
@@ -136,7 +144,7 @@ namespace bee::net {
136
144
if (1 == inet_pton (AF_INET, ip.data (), &sa4.sin_addr )) {
137
145
sa4.sin_family = AF_INET;
138
146
sa4.sin_port = htons (port);
139
- ep.assgin (sa4);
147
+ ep.assign (sa4);
140
148
return true ;
141
149
}
142
150
return false ;
@@ -147,7 +155,7 @@ namespace bee::net {
147
155
if (1 == inet_pton (AF_INET6, ip.data (), &sa6.sin6_addr )) {
148
156
sa6.sin6_family = AF_INET6;
149
157
sa6.sin6_port = htons (port);
150
- ep.assgin (sa6);
158
+ ep.assign (sa6);
151
159
return true ;
152
160
}
153
161
return false ;
@@ -159,7 +167,7 @@ namespace bee::net {
159
167
sa4.sin_port = htons (port);
160
168
sa4.sin_addr = std::bit_cast<decltype (sa4.sin_addr )>(ip::inet_pton_v4 (" 127.0.0.1" ));
161
169
endpoint ep;
162
- ep.assgin (sa4);
170
+ ep.assign (sa4);
163
171
return ep;
164
172
}
165
173
@@ -170,22 +178,14 @@ namespace bee::net {
170
178
std::tuple<std::string, uint16_t > endpoint::get_inet () const noexcept {
171
179
const sockaddr* sa = addr ();
172
180
char tmp[sizeof " 255.255.255.255" ];
173
- #if !defined(__MINGW32__)
174
- const char * s = inet_ntop (AF_INET, (const void *)&((struct sockaddr_in *)sa)->sin_addr , tmp, sizeof tmp);
175
- #else
176
- const char * s = inet_ntop (AF_INET, (void *)&((struct sockaddr_in *)sa)->sin_addr , tmp, sizeof tmp);
177
- #endif
181
+ const char * s = inet_ntop_wrapper (AF_INET, &((struct sockaddr_in *)sa)->sin_addr , tmp, sizeof tmp);
178
182
return { std::string (s), ntohs (((struct sockaddr_in *)sa)->sin_port ) };
179
183
}
180
184
181
185
std::tuple<std::string, uint16_t > endpoint::get_inet6 () const noexcept {
182
186
const sockaddr* sa = addr ();
183
187
char tmp[sizeof " ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255" ];
184
- #if !defined(__MINGW32__)
185
- const char * s = inet_ntop (AF_INET6, (const void *)&((const struct sockaddr_in6 *)sa)->sin6_addr , tmp, sizeof tmp);
186
- #else
187
- const char * s = inet_ntop (AF_INET6, (void *)&((const struct sockaddr_in6 *)sa)->sin6_addr , tmp, sizeof tmp);
188
- #endif
188
+ const char * s = inet_ntop_wrapper (AF_INET6, &((const struct sockaddr_in6 *)sa)->sin6_addr , tmp, sizeof tmp);
189
189
return { std::string (s), ntohs (((struct sockaddr_in6 *)sa)->sin6_port ) };
190
190
}
191
191
0 commit comments