Mercurial > pidgin
comparison libpurple/win32/libc_interface.c @ 32390:c0c60e110c82
Fix the compilation of the Bonjour prpl on Windows.
Fixes #14802
committer: Daniel Atallah <daniel.atallah@gmail.com>
author | Eion Robb <eion@robbmob.com> |
---|---|
date | Tue, 13 Dec 2011 15:24:16 +0000 |
parents | e529d0b57a5f |
children | b30d7c76db03 |
comparison
equal
deleted
inserted
replaced
32383:7967bb7db191 | 32390:c0c60e110c82 |
---|---|
298 return NULL; | 298 return NULL; |
299 } | 299 } |
300 return (const char *) dst; | 300 return (const char *) dst; |
301 } | 301 } |
302 | 302 |
303 int | |
304 wpurple_inet_pton(int af, const char *src, void *dst) | |
305 { | |
306 /* struct sockaddr can't accomodate struct sockaddr_in6. */ | |
307 union { | |
308 struct sockaddr_in6 sin6; | |
309 struct sockaddr_in sin; | |
310 } sa; | |
311 size_t srcsize; | |
312 | |
313 switch(af) | |
314 { | |
315 case AF_INET: | |
316 sa.sin.sin_family = AF_INET; | |
317 srcsize = sizeof (sa.sin); | |
318 break; | |
319 case AF_INET6: | |
320 sa.sin6.sin6_family = AF_INET6; | |
321 srcsize = sizeof (sa.sin6); | |
322 break; | |
323 default: | |
324 errno = WSAEPFNOSUPPORT; | |
325 return -1; | |
326 } | |
327 | |
328 if (WSAStringToAddress(src, af, NULL, (struct sockaddr *) &sa, &srcsize) != 0) | |
329 { | |
330 errno = WSAGetLastError(); | |
331 return -1; | |
332 } | |
333 | |
334 switch(af) | |
335 { | |
336 case AF_INET: | |
337 memcpy(dst, &sa.sin.sin_addr, sizeof(sa.sin.sin_addr)); | |
338 break; | |
339 case AF_INET6: | |
340 memcpy(dst, &sa.sin6.sin6_addr, sizeof(sa.sin6.sin6_addr)); | |
341 break; | |
342 } | |
343 | |
344 return 1; | |
345 } | |
346 | |
303 | 347 |
304 /* netdb.h */ | 348 /* netdb.h */ |
305 struct hostent* wpurple_gethostbyname(const char *name) { | 349 struct hostent* wpurple_gethostbyname(const char *name) { |
306 struct hostent *hp; | 350 struct hostent *hp; |
307 | 351 |