socket: Fix socket_connect_addr() not connecting using IPv6 in some cases

This extends the socket helper with functions to determine the "scope" and a
suitable "scope id" of an IPv6 address. While socket_connect_addr() prefers
any initially supplied "scope id" to maintain routing information if possible,
it will attempt to determine the best suitable route with the new helpers.
This became a requirement during testing with remote usbmux connections that
provide a different "scope id" and thus might cause IPv6 routing to not work
at all. Thus the "scope id" is only valid per host.
1 file changed
tree: 5bfeee3b4f5b0735099b06cc2e4d731a11862783
  1. common/
  2. docs/
  3. include/
  4. m4/
  5. src/
  6. tools/
  7. .gitignore
  8. AUTHORS
  9. autogen.sh
  10. configure.ac
  11. COPYING
  12. libusbmuxd.pc.in
  13. Makefile.am
  14. NEWS
  15. README.md
README.md

libusbmuxd

About

A client library to multiplex connections from and to iOS devices by connecting to a socket provided by a usbmuxd daemon.

Requirements

Development Packages of:

  • libplist

Software:

  • usbmuxd (Windows and Mac OS X can use the one provided by iTunes)
  • make
  • autoheader
  • automake
  • autoconf
  • libtool
  • pkg-config
  • gcc or clang

Optional:

  • inotify (Linux only)

Installation

To compile run:

./autogen.sh
make
sudo make install

If dependent packages cannot be found when running autogen.sh (or configure) make sure that pkg-config is installed and set the PKG_CONFIG_PATH environment variable if required. It can be passed directly like this:

PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./autogen.sh

If you require a custom prefix or other option being passed to ./configure you can pass them directly to ./autogen.sh like this:

./autogen.sh --prefix=/opt/local --without-cython
make
sudo make install

Who/What/Where?

Credits

Apple, iPhone, iPod, and iPod Touch are trademarks of Apple Inc. libimobiledevice is an independent software library and has not been authorized, sponsored, or otherwise approved by Apple Inc.

README Updated on: 2019-06-20