> On Nov. 9, 2011, 3:01 p.m., Pali Rohár wrote:
> > Your patch disable updating nickname of all contacts from jabber server. 
> > This is bad because some people want to autoupdate new nicknames from 
> > server.
> > Instead totally disabling this functions, it should be configurable (in 
> > jabber account settings dialog).
> 
> Ralf Jung wrote:
>     Actually, Kopete already has a per-contact setting saying whether the 
> local or remote name should be used. The code should adhere to that setting.
>     
>     Btw, you filled the "Bugs" field in the request incorrectly. It must 
> contain just the bug ID, not the whole URL.
> 
> Cyberbeat wrote:
>     I don't think, that I disable updating of nicknames of contacts from 
> jabber server.
>     
>     To explain the problem from the GUI perspective:
>     
>     - Right-Click a metacontact and choose its "properties"
>     - There you can choose, where to take it's displayname from, there are 3 
> possibilities:
>     a) take displayname from adressebook (KABC)
>     b) take displayname from a protocol (you can choose, which)
>     c) define a custom displayname (which really should NEVER be overwritten 
> by some protocols!)
>     
>     The displayname for contacts should only be updated from server for case 
> b), which is the standard.
>     
>     For my test-contact I have chosen a custom displayname c)
>     This displayname is overwritten each time I connect to the jabber server.
>     This can be considered as a bug.
>     
>     
>     
>     More technically from the code perspective:
>     
>     In kopetemetacontact.cpp there is a method "displayName()", which is used 
> in the contact list, and which returns the displayname
>     from the configured ressource (a,b or c from above). Standard ressource 
> is b).
>     The member-variable "displayname" represents the "custom display name", 
> which is also only returned, if c) is the ressource.
>     
>     If I understood something wrong, please explain to me :-)
> 
> Olivier Goffart wrote:
>     > b) take displayname from a protocol (you can choose, which)
>     
>     That is the nickname set by the contact himself (that is, for jabber, the 
> nickname in the vcard)
>     
>     > c) define a custom displayname (which really should NEVER be 
> overwritten by
>     > some protocols!)
>     
>     Yes it should.
>     This name should be synchronized with the name you chosen.
>     
>     > For my test-contact I have chosen a custom displayname c)
>     > This displayname is overwritten each time I connect to the jabber 
> server.
>     > This can be considered as a bug.
>     
>     When setting c), it should also write the displayname on the jabber 
> server.
>     If it do not, the bug is there.
>     
>     The rationale is that if you have two jabber clients, the name stay in 
> sync.
>
> 
> Cyberbeat wrote:
>     Thanks for the clarification.
>     
>     I didn't know that I could save my own custom nicknames on jabber server. 
> Is this a feature, every jabber server MUST implement? And, if not,
>     should the client get feedback, if saving was successfull?
>     
>     I think it is important now, to be sure, where the bug occurs: on kopete 
> or the server. Can someone with knowledge of XMPP give an answer?
>     
>     The server I talk about, is facebook. I know, that facebook only 
> implements parts of XMPP. And if facebook does not apply to the standard,
>     there are only two options for kopete:
>     
>     a) make an option for jabber like Pali suggests
>     b) clone XMPP protocol and adapt it for facebook
>     
>     I would prefer solution a) :-)
>     
>     But if facebook only does not support an optional feature and handles 
> things like the specification, then kopete should make its jabber protocol 
> implementation more robust.
>     
>     I think it is important to have good support for facebook, since I 
> believe, it is the (with great advance) most popular "xmpp" server, so
>     many people suffer from these problems.
>
> 
> Cyberbeat wrote:
>     Since noone answered for two weeks, I will go for solution a) without 
> being sure about my above questions. I really expect that that solution will 
> be accepted in principle, else please say stop _now_, because this will be a 
> lot of work.
> 
> Cyberbeat wrote:
>     I have now looked a bit into the XMPP RFCs and the 
> kopete-xmpp-xml-console. What happens when I rename a contact:
>     
>     <iq type="set" id="af1ca">
>     <query xmlns="jabber:iq:roster">
>     <item name="mycontactsnewname" jid="-123123...@chat.facebook.com">
>     <group>aaa</group>
>     </item>
>     </query>
>     </iq>
>     
>     <iq from="myn...@chat.facebook.com" type="error" 
> to="myn...@chat.facebook.com/Kopete_xxxxx" id="af1ca">
>     <query xmlns="jabber:iq:roster">
>     <item name="mycontactsnewname" jid="-123123...@chat.facebook.com">
>     <group>aaa</group>
>     </item>
>     </query>
>     <error type="cancel" code="501">
>     <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
>     </error>
>     </iq>
>     
>     So the server returns an error, which seems to be ok from the 
> specification. So now I think I can really consider the kopete behaviour as a 
> bug.
>     In its current state kopete should have had to deny the renaming of the 
> contact and display an error.
>     
>     So an option in xmpp config option like "Do you like your custom names 
> for your contacts be overwritten from the server?" yes/no  like I plan to do, 
> seems to be a fine solution.
> 
> Pali Rohár wrote:
>     Instead hacking this problem with config option it should be fixed in 
> jabber plugin / libiris library (return error when renaming failed)...
>     
>     As I understand your patch correctly, it only disable this code in 
> updateContact (which is called by jabber when contact on server has been 
> changed)
>     metaContact()->setDisplayName ( item.name () );
>     
>     I think that updateContact() function should update only displayname of 
> *this KopeteContact (JabberBaseContact). Not metaContact()!
>     
>     Sorry for first info. Now I looked into jabber code and you are right. In 
> my opinion proper fix should be deleting lines 109-121. It is really not 
> needed, because kopete show displayname of metacontact from config dialog 
> (and here you can set my own string or displayname of attached contact). Can 
> you test if deleting these lines fix your problem and also if does not break 
> anything else?
> 
> Cyberbeat wrote:
>     Since deleting the lines or adding "false" is semantically the same, I 
> can say, that I had no problems with this.
>     
>     What makes me now thinking is: 
>     
>     With jabber we seem to have an additional nickname-source, because 
> nickname can be a) the original contacts name, b) the custom name stored on 
> the server (which for example could also have been set from the same user but 
> from another client than kopete), and c) the local-kopete-custom-nickname.
>     
>     I as a (normal average) user thought about "custom nickname" always as a 
> local nickname. This thinking would not allow kopete to do anything special 
> with nicknames on the server from that meta-contacts-dialog. There is also 
> the possibility to open a "vcard" for jabber protocol, but I cannot edit that 
> for my facebook-contacts, and cannot even receive one for my other jabber 
> account's contacts (only one..). What does editing and saving of that do? 
> Would it be better, to use that jabber-specific dialog for custom nicknames?
>     
>     May I commit the deletion of the lines to trunk now? And maybe also for 
> 4.7 branch? Nontheless I wish someone else with more "normal" jabber 
> servers/contacts than me would test my patch.
>     
>     btw. next feature I plan for kopete is inline metacontacts-renaming (F2 
> shortcut).
> 
> Pali Rohár wrote:
>     If user set custom name for metacontact, kopete (or plugin) should try to 
> update this custom name on server too (if server support it). And if on 
> server was contact name changed, kopete should update that display name for 
> that contact (but not metacontact!). If metacontact was set to use display 
> name from that contact, kopete (not plugin!) will update it in visible 
> contact list too.
>     
>     I agree with deleting that lines in trunk. (Please update patch before 
> commiting). But not 4.7 - it is stable, so only bug fix changes - and this 
> patch change default behaviour of jabber protocol and some users may will 
> have problems...

I don't know if it is a feature they MUST support, but i think so.
In any case, considering how important is the facebook server, i think it is 
worth workarounding the fact that the facebook server do not keep the name.
I don't know exactly how this can be done, a bit of reverse engeenering should 
show what the server reply when Kopete tries to change the name of contact. 
Else maybe doing a request to see if the name was changed.  In the worst case, 
check for "facebook.com" in the jid.


- Olivier


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/6823/#review10461
-----------------------------------------------------------


On Nov. 24, 2011, 7:12 p.m., Cyberbeat wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://svn.reviewboard.kde.org/r/6823/
> -----------------------------------------------------------
> 
> (Updated Nov. 24, 2011, 7:12 p.m.)
> 
> 
> Review request for Kopete.
> 
> 
> Description
> -------
> 
> This patch fixes the bug, that the jabber protocol overwrites manually given 
> nicknames each time kopete connects.
> 
> 
> This addresses bug 274175.
>     https://bugs.kde.org/show_bug.cgi?id=274175
> 
> 
> Diffs
> -----
> 
>   /trunk/KDE/kdenetwork/kopete/protocols/jabber/jabberbasecontact.cpp 1263246 
> 
> Diff: http://svn.reviewboard.kde.org/r/6823/diff/diff
> 
> 
> Testing
> -------
> 
> I used kopete several weeks with icq, jabber, msn protocol together with my 
> patch, and did not notice any problems. The wrong behaviour is fixed.
> 
> 
> Thanks,
> 
> Cyberbeat
> 
>

_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel

Reply via email to