diff -u -r ../pidgin-2.10.9/libpurple/dnssrv.c ./libpurple/dnssrv.c --- ../pidgin-2.10.9/libpurple/dnssrv.c 2014-02-02 22:29:17.000000000 +0100 +++ ./libpurple/dnssrv.c 2014-03-06 22:16:22.000000000 +0100 @@ -54,6 +54,17 @@ #include "eventloop.h" #include "network.h" +#ifdef __ANDROID__ +#include +#define GETSHORT(s, cp) do { \ + register const u_char *t_cp = (const u_char *)(cp); \ + (s) = ((uint16_t)t_cp[0] << 8) \ + | ((uint16_t)t_cp[1]) \ + ; \ + (cp) += sizeof(uint16_t); \ +} while (0) +#endif + static PurpleSrvTxtQueryUiOps *srv_txt_query_ui_ops = NULL; #ifndef _WIN32 @@ -485,7 +496,9 @@ if (size == -1) { purple_debug_warning("dnssrv", "res_query returned an error\n"); /* Re-read resolv.conf and friends in case DNS servers have changed */ +#ifndef __ANDROID__ res_init(); +#endif } else purple_debug_info("dnssrv", "Found 0 entries, errno is %i\n", errno);