Summary: | Support Protocol.Interface.Addressing in Gabble | ||
---|---|---|---|
Product: | Telepathy | Reporter: | Eitan Isaacson <eitan.isaacson> |
Component: | gabble | Assignee: | Andre Moreira Magalhaes <andrunko> |
Status: | RESOLVED FIXED | QA Contact: | Telepathy bugs list <telepathy-bugs> |
Severity: | normal | ||
Priority: | medium | Keywords: | patch |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
URL: | http://cgit.collabora.com/git/user/andrunko/telepathy-gabble.git/log/?h=protocol-addressing | ||
Whiteboard: | review+ after dependencies released | ||
i915 platform: | i915 features: | ||
Bug Depends on: | 32691 | ||
Bug Blocks: | 30296, 41789, 42918 |
Description
Eitan Isaacson
2010-12-27 16:26:11 UTC
+ if (!valid_field_or_scheme (vcard_field, addressing_vcard_fields)) + { + g_set_error (error, TP_ERRORS, TP_ERROR_NOT_IMPLEMENTED, + "'%s' vCard field is not supported by this protocol", vcard_field); + } This seems speculatively general, for a protocol that only supports one vCard field. It's also the wrong shape for protocols that support many vCard fields via gatewaying: in such a protocol, the normalization will probably be different for different fields. I'd tend to do: if (it's "xmpp") { normalize it for XMPP } else { fail } with an obvious place to put an "else if" clause for hypothetical other fields. + /* excuse the poor man's URI parsing, couldn't find a GLib helper */ + gchar *scheme = g_uri_parse_scheme (uri); Er, you found one? :-) This does look good enough to not block undraft (Bug #32690), though. OK, pushed changes from your review and API adjustments to new proposed tp-glib API. Ok, I used this work in order to implement bug #41789. I rebased/fixed conflicts Eitan's changes on top of current upstream master and the changes can be found at URL. > + { "protocol", GABBLE_DEBUG_PROTOCOL }, ... > + GABBLE_DEBUG_PROTOCOL = 1 << 28, ... > +#define DEBUG_FLAG GABBLE_DEBUG_PROTOCOL ... > +#include "debug.h" I don't see any calls to DEBUG(), so I don't think you need any of this? (I think it's fine that there's no debug-spam - Protocol is simple enough not to need any debug-spam.) > addressing_normalize_vcard_address I think this is in the wrong order: when you add x-facebook-id you're going to have to re-order it. As I said to Eitan before, I think it should be (pseudocode): if (it's x-jabber) { do Jabber things } /* later, you will add: else if (it's x-facebook-id) { do Facebook things } */ else { error! } Likewise for the URI, except that the scheme == NULL case comes first, so "xmpp" is also an else-if. > + g_object_get (G_OBJECT (protocol), "immutable-properties", &props, NULL); Nitpicking: we like one property per line, to emphasize the paired arguments: g_object_get (G_O (p), "i-p", &props, NULL); > +PROTOCOL_IFACE_ADDRESSING = \ > + 'org.freedesktop.Telepathy.Protocol.Interface.Addressing' Nitpicking: could be PROTOCOL + '.Interface.Addressing', which would probably make it fit on one line. (In reply to comment #4) > > + { "protocol", GABBLE_DEBUG_PROTOCOL }, > ... > > + GABBLE_DEBUG_PROTOCOL = 1 << 28, > ... > > +#define DEBUG_FLAG GABBLE_DEBUG_PROTOCOL > ... > > +#include "debug.h" > > I don't see any calls to DEBUG(), so I don't think you need any of this? > > (I think it's fine that there's no debug-spam - Protocol is simple enough not > to need any debug-spam.) Done > > addressing_normalize_vcard_address > > I think this is in the wrong order: when you add x-facebook-id you're going to > have to re-order it. As I said to Eitan before, I think it should be > (pseudocode): > > if (it's x-jabber) > { > do Jabber things > } > /* later, you will add: > else if (it's x-facebook-id) > { > do Facebook things > } > */ > else > { > error! > } > > Likewise for the URI, except that the scheme == NULL case comes first, so > "xmpp" is also an else-if. Done > > + g_object_get (G_OBJECT (protocol), "immutable-properties", &props, NULL); > > Nitpicking: we like one property per line, to emphasize the paired arguments: > > g_object_get (G_O (p), > "i-p", &props, > NULL); Done > > +PROTOCOL_IFACE_ADDRESSING = \ > > + 'org.freedesktop.Telepathy.Protocol.Interface.Addressing' > > Nitpicking: could be PROTOCOL + '.Interface.Addressing', which would probably > make it fit on one line. Done r+ when a suitable tp-glib has been released. Updated branch with latest tp-glib changes (Rename normalize_uri to normalize_contact_uri, etc). It will be in the next gabble release. Merged to master for 0.15.1 |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.