diff options
Diffstat (limited to 'package/supl/patches/patch-src_supl_c')
| -rw-r--r-- | package/supl/patches/patch-src_supl_c | 46 | 
1 files changed, 0 insertions, 46 deletions
| diff --git a/package/supl/patches/patch-src_supl_c b/package/supl/patches/patch-src_supl_c deleted file mode 100644 index 26ab45b18..000000000 --- a/package/supl/patches/patch-src_supl_c +++ /dev/null @@ -1,46 +0,0 @@ -	- implement bind to device functionality ---- trunk.orig/src/supl.c	2011-10-27 20:41:19.000000000 +0200 -+++ trunk/src/supl.c	2013-04-24 18:56:17.742529773 +0200 -@@ -41,7 +41,7 @@ static struct supl_debug_s { - } debug; - #endif -  --static int server_connect(char *server); -+static int server_connect(char *server, char *iface); - static int pdu_make_ulp_start(supl_ctx_t *ctx, supl_ulp_t *pdu); - static int pdu_make_ulp_pos_init(supl_ctx_t *ctx, supl_ulp_t *pdu); - static int pdu_make_ulp_rrlp_ack(supl_ctx_t *ctx, supl_ulp_t *pdu, PDU_t *rrlp); -@@ -236,7 +236,7 @@ int EXPORT supl_server_connect(supl_ctx_ -   if (!ctx->ssl) return E_SUPL_CONNECT; -  -   if (server) { --    ctx->fd = server_connect(server); -+    ctx->fd = server_connect(server, ctx->iface); -     if (ctx->fd == -1) return E_SUPL_CONNECT; -   } -  -@@ -266,7 +266,7 @@ void EXPORT supl_close(supl_ctx_t *ctx) - } -  -  --static int server_connect(char *server) { -+static int server_connect(char *server, char *iface) { -   int fd = -1; -   struct addrinfo *ailist, *aip; -   struct addrinfo hint; -@@ -283,6 +283,15 @@ static int server_connect(char *server) -     if ((fd = socket(aip->ai_family, SOCK_STREAM, 0)) < 0) { -       err = errno; -     } -+ -+    if (strlen(iface)) { -+      struct ifreq ifr; -+      strncpy(ifr.ifr_name, iface, IFNAMSIZ); -+      ifr.ifr_name[IFNAMSIZ - 1] = 0; -+      if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr))) -+	      fprintf(stderr, "Error: binding to device %s failed\n", iface); -+    } -+ -     if (connect(fd, aip->ai_addr, aip->ai_addrlen) != 0) { -       return -1; -     } | 
