summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorblmpl <blm@poczta.fm>2016-10-15 10:10:52 +0200
committerMichał Cichoń <michcic@gmail.com>2017-05-17 04:37:39 +0200
commit06192d9c879cf70171139597b8f722a41fb88a37 (patch)
tree8da1c64f4311e4ec873b2b0642886abe0b52404f
parent817ff6a87020a55d7628d600e2ee09b947ee2f4e (diff)
downloadpianobar-windows-06192d9c879cf70171139597b8f722a41fb88a37.tar.gz
pianobar-windows-06192d9c879cf70171139597b8f722a41fb88a37.tar.bz2
pianobar-windows-06192d9c879cf70171139597b8f722a41fb88a37.zip
Support binding to a specific network interface
Closes #597. # Conflicts: # src/ui.c
-rw-r--r--contrib/config-example1
-rw-r--r--contrib/pianobar.111
-rw-r--r--src/settings.c3
-rw-r--r--src/settings.h1
4 files changed, 16 insertions, 0 deletions
diff --git a/contrib/config-example b/contrib/config-example
index 899ee39..070314b 100644
--- a/contrib/config-example
+++ b/contrib/config-example
@@ -10,6 +10,7 @@
# Proxy (for those who are not living in the USA)
#control_proxy = http://127.0.0.1:9090/
+#bind_to = if!tun0
# Keybindings
#act_help = ?
diff --git a/contrib/pianobar.1 b/contrib/pianobar.1
index ee09c41..910af9a 100644
--- a/contrib/pianobar.1
+++ b/contrib/pianobar.1
@@ -210,6 +210,17 @@ Non-american users need a proxy to use pandora.com. Only the xmlrpc interface
will use this proxy. The music is streamed directly.
.TP
+.B bind_to = {if!tunX,host!x.x.x.x,..}
+This sets the interface name to use as outgoing network interface. The name can
+be an interface name, an IP address, or a host name. (from CURLOPT_INTERFACE)
+
+It can be used as a replacement for
+.B control_proxy
+in conjunction with OpenVPN's
+option
+.B route-nopull.
+
+.TP
.B decrypt_password = R=U!LH$O2B#
.TP
diff --git a/src/settings.c b/src/settings.c
index 6ba2e91..36245de 100644
--- a/src/settings.c
+++ b/src/settings.c
@@ -119,6 +119,7 @@ void BarSettingsInit (BarSettings_t *settings) {
void BarSettingsDestroy (BarSettings_t *settings) {
free (settings->controlProxy);
free (settings->proxy);
+ free (settings->bindTo);
free (settings->username);
free (settings->password);
free (settings->passwordCmd);
@@ -236,6 +237,8 @@ void BarSettingsRead (BarSettings_t *settings) {
settings->controlProxy = strdup (val);
} else if (streq ("proxy", key)) {
settings->proxy = strdup (val);
+ } else if (streq ("bind_to", key)) {
+ settings->bindTo = strdup (val);
} else if (streq ("user", key)) {
settings->username = strdup (val);
} else if (streq ("password", key)) {
diff --git a/src/settings.h b/src/settings.h
index 78d0e45..e6067f3 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -93,6 +93,7 @@ typedef struct {
char *password, *passwordCmd;
char *controlProxy; /* non-american listeners need this */
char *proxy;
+ char *bindTo;
char *autostartStation;
char *eventCmd;
char *loveIcon;