GNOME Bugzilla – Bug 505456
[mmssrc] no support for socks proxies
Last modified: 2018-11-03 13:03:11 UTC
mmssrc (and libmms) don't seem to support socks proxies. (my pretty bad) reproducer: 1. Setup a socks proxy on a remote machine (I'm in France on holidays, ssh'ing to a UK-based machine): ssh -N -f -D 8080 myhomemachine.org.uk 2. Setup the proxy (socks in gnome-network-preferences, set to "localhost:8080") 3. Use epiphany to access http://www.ip-adress.com/ 4. Yay, based in the UK (going to the BBC iPlayer page works) 5. Try to use a Windows Media stream on the BBC website that would be restricted to the UK: no workie, because libmms/mmssrc doesn't have socks5 proxy support. The socks proxy settings are recorded in GConf under /system/proxy/socks_host and /system/proxy/socks_port Right now, I'm using tsocks, and LD_PRELOAD tricks: http://tsocks.sourceforge.net/ (See also bug 505452)
Indeed it would be nice to have socks proxy support in libmms (and then through libmms in mmssrc). However I do not feel like reinventing the wheel, do you know any LGPL socks4/5 code? I've found a few opensource socks5 client implementations, but nothing LGPL.
> Indeed it would be nice to have socks proxy support in libmms (and then through > libmms in mmssrc). However I do not feel like reinventing the wheel, do you > know any LGPL socks4/5 code? I've found a few opensource socks5 client > implementations, but nothing LGPL. GNet has some basic code for sock4/5 that is LGPL, but I haven't tested it myself (certainly not socks5). FWIW, I'm also in the process of writing a GNet-based mmssrc that will be able to make use of that automatically.
Tim, Any special reason to rewrite mmssrc using gnet? I know libmms's code isn't the cleanest ever, but it works well. I also know upstream wasn't very alive, but thats changed now they (I mostly) just released 0.4 . Note that libmms already uses gnet for url parsing, so I guess I could try using gnet for socks support too. But before investing time in this I would first like to know what the future of mmssrc is. Or will you be using both gnet and libmms, using gnet to make an mmsio implementation?
> Any special reason to rewrite mmssrc using gnet? I know libmms's code isn't > the cleanest ever, but it works well. I also know upstream wasn't very > alive, but thats changed now they (I mostly) just released 0.4 . I wanted an mmssrc with completely async networking code that works on both *nix and win32. When I started it, libmms was still unmaintained, but also I didn't really see the point of having/using an external libmms any more in the first place seeing that GStreamer is more or less the only project using it (back then the idea was to have a common external lib to share between the different player projects, I guess, but that didn't really seem to work out). Also, overall it just doesn't do a lot, ie. the core code is not a lot of lines or even particularly complicated, so having an external lib for the mms stuff doesn't seem to make that much sense to me. > Note that libmms already uses gnet for url parsing, so I guess I could try > using gnet for socks support too. But before investing time in this I would > first like to know what the future of mmssrc is. This gnetmmssrc thing is just something I started hacking on one day. It's vapourware for all practical purposes, I probably shouldn't have mentioned it at all. No one within the GStreamer project has made any decision that we need or even want something like this. > Or will you be using both gnet and libmms, using gnet to make an mmsio > implementation? I will just be using GNet for now (ie. until a portable network abstraction layer is added to either GLib or GStreamer).
libmms (or mmssrc) could also use libproxy (http://code.google.com/p/libproxy/) to determine which proxy server it should use, or whether any is configured.
FYI: I just happen to hack on a simple SOCKS4/SOCKS5 library for abicollab. It's written in C++, but I'm adding a C API as we speak. It currently supports SOCKS4 and SOCKS5 with no authentication or username/password authentication. It's BSD licensed.
Oh, forgot to add, the code is here: http://svn.abisource.com/libshoes/trunk/ Note: it has compiletime dependencies on asio (asio.sf.net) and boost, but it has "0" runtime depencies.
*** Bug 395425 has been marked as a duplicate of this bug. ***
*** Bug 611703 has been marked as a duplicate of this bug. ***
Since we're in 2013 (6 years after this bug was opened), shouldn't this kind of issue be handled system-wide (with vpn, networkmanager, ...) ?
We have proxy *settings* for socks in GNOME, but there's still no support for socks5 proxies in mmssrc itself. I guess this will go away when mms does as well.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/3.