diff options
author | blmpl <blm@poczta.fm> | 2016-10-15 10:10:52 +0200 |
---|---|---|
committer | Michał Cichoń <michcic@gmail.com> | 2017-05-17 04:37:39 +0200 |
commit | 06192d9c879cf70171139597b8f722a41fb88a37 (patch) | |
tree | 8da1c64f4311e4ec873b2b0642886abe0b52404f | |
parent | 817ff6a87020a55d7628d600e2ee09b947ee2f4e (diff) | |
download | pianobar-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-example | 1 | ||||
-rw-r--r-- | contrib/pianobar.1 | 11 | ||||
-rw-r--r-- | src/settings.c | 3 | ||||
-rw-r--r-- | src/settings.h | 1 |
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; |