1. 03 Sep, 2018 2 commits
    • Matthew Waters's avatar
    • Matthew Waters's avatar
      gtlsbackend: add support for setting the default TLS database · b84951eb
      Matthew Waters authored
      There are many cases where a default TLS database is not able to be
      defined within the constraints of a system.  For example glib-networking
      (or glib-openssl) cannot retrieve the default certificate store on iOS
      or Android and need to be initialized from a cert file of certificates
      bundled with the application.
      
      Previously GStreamer was relying on a custom patch to glib-networking to
      populate the default database from the file pointed to by the
      CA_CERTIFICATES environment variable however the mechanism that enabled
      this was recently remove from glib-networking.
      
      Adding a more generic g_tls_backend_set_default_database() API allows
      application developers to override the default database using their own
      certificates as well as allowing equivalent functionality on Android/iOS
      (or others) as on the default database handling Linux.
      
      Fixes glib-networking#35
      b84951eb
  2. 01 Sep, 2018 1 commit
    • Florian Müllner's avatar
      portal network monitor: Always emit changed signal on changed · 423a2936
      Florian Müllner authored
      The ::network-changed signal is documented to indicate any change in
      network configuration, which doesn't necessarily imply a property
      change - additional services becoming available after connecting to
      a VPN comes to mind for instance.
      
      In order to match the "native" network monitor's behavior, always
      emit the signal when it's in response to the 'changed' D-Bus signal.
      
      Also emit the signal unconditionally when loading the initial property
      values, to allow clients to differentiate between "offline" meaning
      "offline" and "offline" meaning "uninitialized".
      423a2936
  3. 31 Aug, 2018 3 commits
  4. 28 Aug, 2018 1 commit
  5. 27 Aug, 2018 8 commits
  6. 24 Aug, 2018 1 commit
    • Marco Trevisan's avatar
      subprocess: Fix communicate_cancelled signature · 5cc4cca9
      Marco Trevisan authored
      The source callback for a GCancellable should have the cancellable itself
      as first argument.
      This was not the case, and when this code was hit, we were instead trying
      to treat the pointer as a CommunicateState reference and thus wrongly
      deferencing it, causing a memory error and a crash.
      5cc4cca9
  7. 23 Aug, 2018 2 commits
  8. 22 Aug, 2018 1 commit
  9. 20 Aug, 2018 1 commit
    • Ting-Wei Lan's avatar
      gtestdbus: Fix watcher crash on FreeBSD · 91474038
      Ting-Wei Lan authored
      In file gio/gtestdbus.c, function watch_parent, there is a loop which
      waits for commands sent from the parent process and kills all processes
      recorded in 'pids_to_kill' array on parent process exit. The detection
      of parent process exit is done by calling g_poll and checking whether
      the returned event is G_IO_HUP. However, 'revents' is a bit mask, and
      we should use a bitwise-AND check instead of the equality check here.
      
      It seems to work fine on Linux, but it fails on FreeBSD because the
      g_poll returns both G_IO_IN and G_IO_HUP on pipe close. This means the
      watcher process continues waiting for commands after the parent process
      exit, and g_io_channel_read_line returns G_IO_STATUS_EOF with 'command'
      set to NULL. Then the watcher process crashes with segfault when calling
      sscanf because 'command' is NULL. Since the test result is already
      reported by the parent process as 'OK', this kind of crash is likely to
      be unnoticed unless someone checks dmesg messages after the test:
      
      pid 57611 (defaultvalue), uid 1001: exited on signal 11
      pid 57935 (actions), uid 1001: exited on signal 11
      pid 57945 (gdbus-bz627724), uid 1001: exited on signal 11
      pid 57952 (gdbus-connection), uid 1001: exited on signal 11
      pid 57970 (gdbus-connection-lo), uid 1001: exited on signal 11
      pid 57976 (gdbus-connection-sl), uid 1001: exited on signal 11
      pid 58039 (gdbus-exit-on-close), uid 1001: exited on signal 11
      pid 58043 (gdbus-exit-on-close), uid 1001: exited on signal 11
      pid 58047 (gdbus-exit-on-close), uid 1001: exited on signal 11
      pid 58051 (gdbus-exit-on-close), uid 1001: exited on signal 11
      pid 58055 (gdbus-export), uid 1001: exited on signal 11
      pid 58059 (gdbus-introspection), uid 1001: exited on signal 11
      pid 58065 (gdbus-names), uid 1001: exited on signal 11
      pid 58071 (gdbus-proxy), uid 1001: exited on signal 11
      pid 58079 (gdbus-proxy-threads), uid 1001: exited on signal 11
      pid 58083 (gdbus-proxy-well-kn), uid 1001: exited on signal 11
      pid 58091 (gdbus-test-codegen), uid 1001: exited on signal 11
      pid 58095 (gdbus-threading), uid 1001: exited on signal 11
      pid 58104 (gmenumodel), uid 1001: exited on signal 11
      pid 58108 (gnotification), uid 1001: exited on signal 11
      pid 58112 (gdbus-test-codegen-), uid 1001: exited on signal 11
      pid 58116 (gapplication), uid 1001: exited on signal 11
      pid 58132 (dbus-appinfo), uid 1001: exited on signal 11
      
      If the watcher process crashes before killing the dbus-daemon process
      spawned by the parent process, the dbus-daemon process will keep running
      after all tests complete. Due to the implementation of 'communicate'
      function in Python subprocess, it causes meson to crash. 'communicate'
      assumes the stdout and stderr pipes are closed when the child process
      exits, but it is not true if processes forked by the child process
      doesn't exit. It causes Python subprocess 'communicate' function to
      block on the call to poll until the timeout expires even if the test
      finishes in a few seconds. Meson assumes the timeout exception always
      means the test is still running. It calls 'communicate' again and
      crashes because pipes no longer exist.
      
      Infrastructure/GitLab#286
      https://github.com/mesonbuild/meson/issues/3967
      https://bugs.python.org/issue30154
      91474038
  10. 19 Aug, 2018 2 commits
  11. 17 Aug, 2018 1 commit
    • Philip Withnall's avatar
      glocalfile: Only ignore FS full information for FUSE and ncpfs · 61a348f2
      Philip Withnall authored
      Previously, glocalfile.c would not set file system metadata for
      the free/used key for file systems which reported 0 free space. This is
      because some file systems don’t set that metadata when you call
      statfs(), so we can’t reliably report it. However, some do, and they
      can legitimately set f_bavail and f_bfree to 0 if the file system is
      full.
      
      In order to avoid that, always set the file system metadata unless the
      file system is FUSE or ncpfs.
      
      This is a partial revert of commit 0b9f24c1: instead of the changes
      made in that commit, I think we should maintain a blacklist of file
      systems which are known to not correctly report free space.
      Signed-off-by: Philip Withnall's avatarPhilip Withnall <withnall@endlessm.com>
      
      #328
      61a348f2
  12. 16 Aug, 2018 3 commits
  13. 13 Aug, 2018 7 commits
  14. 08 Aug, 2018 3 commits
    • LRN's avatar
      W32: consider NTFS mounpoints to be symlinks · 075bb0f7
      LRN authored
      While mountpoints are *not* symlinks, strictly speaking,
      they works in a similar enough way, so consider them to be
      symlinks for the purpose of querying local file info.
      075bb0f7
    • LRN's avatar
      W32: correctly use st_ctime · 929844fd
      LRN authored
      On Windows st_ctime field is the file creation time.
      POSIX mandates that field to be the file state change time.
      Naturally, glib code interpreted st_ctime as POSIX suggested,
      and the result was bad.
      Fix this by introducing special W32-only logic for setting
      attributes from st_ctime field.
      
      Fixes issue #1452.
      929844fd
    • Pavlo Solntsev's avatar
      7e2dfa8c
  15. 07 Aug, 2018 2 commits
  16. 04 Aug, 2018 1 commit
    • Michael Catanzaro's avatar
      Update documentation of g_tls_client_connection_set_use_ssl3() · 08fe9358
      Michael Catanzaro authored
      We now send the fallback SCSV, meaning use of this function will cause
      modern servers to immediately terminate the connection, so let's warn
      API users to expect that behavior and be crystal clear that this
      function should only be used as a fallback when a normal connection
      attempt has already failed.
      
      Also, the documentation is mostly duplicated between the property and
      the function, so let's just reference the function documentation from
      the property.
      08fe9358
  17. 03 Aug, 2018 1 commit
    • Christoph Reiter's avatar
      build: only test for broken ip_mreq_source on Android. Fixes #1472 · 99caee28
      Christoph Reiter authored
      7efd76dd added these configure time tests to work around a bug
      with older Android. Since the test didn't take Windows into account it
      wrongfully applied the workaround on Windows too, breaking the build.
      With meson this wasn't an issue since the check is skipped on Windows there
      and our CI didn't catch this issue.
      
      Change the test to run on Android only for meson and autotools.
      This also makes it clear that the test+code can be dropped again if we stop
      supporting older Android versions at some point.
      99caee28