SnapdAuthData should always contain a valid Macaroon and discharges. It's created in three possible ways: - On the result of a v2/login request - On the result of a D-Bus call to snapd-login-service - By the user
In normal operation it shouldn't be possible to have an invalid SnapdAuthData, but I'll add some more checks at creation time to confirm macaroon != NULL and some checks when reading to handle a NULL discharges (which is a valid empty string array in GObject). Yeah, the manual HTTP code is a pain. As mentioned in the code this is because libsoup doesn't support Unix sockets (https://bugzilla.gnome.org/show_bug.cgi?id=727563). I decided to use as much of libsoup as possible and not another library because: - We only talk to snapd using this code - so a corrupt call shouldn't be much higher risk than a malicious program accessing snapd directly. - Other libraries are not likely to match well with existing GObject code. - I don't want to add an additional dependency. - I hold out hope that libsoup will support this case in the future and we can drop our manual code. (I like to dream...) ** Bug watch added: GNOME Bug Tracker #727563 https://bugzilla.gnome.org/show_bug.cgi?id=727563 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1620159 Title: [MIR] snapd-glib To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/snapd-glib/+bug/1620159/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs