[Bug 29981] Support power saving interface

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Sep 16 11:48:55 CEST 2010


https://bugs.freedesktop.org/show_bug.cgi?id=29981

--- Comment #13 from Will Thompson <will.thompson at collabora.co.uk> 2010-09-16 02:48:54 PDT ---
(In reply to comment #12)
> (In reply to comment #10)
> > (In reply to comment #7)
> > > I see Conn.I.PowerSaving being useful for offline connections as well, but I am
> > > not totally convinced about it. You could sway me either way. If we use this
> > > iface on offline accounts, we don't need to piggyback on top of google:roster,
> > > we will just always sport the iface, and raise NotAvailable if the service does
> > > not support it. Added bonus - non-google servers could support google:queue and
> > > we would interop with them, even if they don't support google:roster.
> > 
> > I would make it raise NotAvailable() until Connected, using
> > TP_BASE_CONNECTION_ERROR_IF_NOT_CONNECTED(). When we get the server features,
> > check for 'google:queue' or 'google:roster'; if either is present, add the
> > interface using tp_base_connection_add_interfaces().
> > 
> 
> Great! Made the appropriate changes. 0545f7c

+  if (base->status != TP_CONNECTION_STATUS_CONNECTED)
+    {
+      GError *error = g_error_new_literal (TP_ERRORS, TP_ERROR_NOT_AVAILABLE,
+          "Cannot enter power saving mode when not connected.");
+      dbus_g_method_return_error (context, error);
+      g_error_free (error);
       return;
     }

This is TP_BASE_CONNECTION_ERROR_IF_NOT_CONNECTED(), expanded out. And you
don't need to heap-allocate a GError with a literal string, you can just say
GError e = { TP_ERRORS, TP_ERROR_NOT_AVAILABLE, "..." }; if you want to keep
the more-specific error message.

+                conn->features |=
GABBLE_CONNECTION_FEATURES_GOOGLE_MAIL_NOTIFY;              else if (0 ==
strcmp (var, NS_GOOGLE_QUEUE))
+                conn->features |= GABBLE_CONNECTION_FEATURES_GOOGLE_QUEUE;

I think you're missing a newline before the 'else if' here.

> > By checking for both features we would do the right thing with the deployed
> > server that implements this feature, and allow for hypothetical servers to do
> > the right thing.
> 
> This introduces false positives when a server genuinely supports google:roster,
> but not google:queue. This is all hypothetical, so never mind :)

Yeah, the worst that happens is spurious updates. If this turns out to be a
problem... Gabble can remember failures and stop sending them.

I don't suppose that, while you're touching this code, you could check if
there's any reference to
http://mail.jabber.org/pipermail/summit/2010-February/000528.html and if not
add it?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.



More information about the telepathy-bugs mailing list