Revision 6d1ef619baf3d738285880ef745ddd512d6e97bb

Evan Schoenberg evan.s at dreskin.net
Fri Jun 22 07:23:44 EDT 2007


Quoting Etan Reisner <pidgin at unreliablesource.net>:

> On Thu, Jun 21, 2007 at 09:01:01PM -0400, Evan Schoenberg wrote:
>> The password may not be available to the callback outside of its
>> parameters, at least not without special-casing the 'password' field
>> of the registration form.
>
> What do you mean here? I'm not sure I follow. How would one supply a
> password such that it could be passed to the callback but not available
> in some other way?

Turns out this isn't the case, since it can be accessed from the  
GaimAccount object if it's properly set there, but here's what I was  
envisioning before:
1) RequestFields says, "show these fields and give me the results".
2) UI does so.
3) This information goes back to the Jabber prpl, which puts it into  
various internal structs (JabberStream, for example) and uses it for  
registration
4) Registration succeeeds

If it weren't put into a publicly-facing object like GaimAccount, the  
password would only be accessible to the UI if (a) the UI  
special-cased the 'password' field when doing the request fields  
originally, storing it for later use, (b) the UI dove into the Jabber  
internal object, which obviously is a bad idea, or (c) it were passed  
in the callback.

Irrelevant since GaimAccount can carry the information just fine :)

> What if I typo my account name? I certainly don't want a second account
> registered automatically for me. Or did you mean popping up a dialog
> saying 'It looks like you don't have an account on this server. Would you
> like me to create it for you?' ?

The latter, definitely.  That's how Adium currently handles it, though  
Andreas has, I believe, made the process much smoother.  The current  
implementation is along the lines of, "The server reported an invalid  
user name or password.  If you don't already have an account on this  
server (jabber.org), Adium can create one for you with the user name  
XXX.  <Cancel> <Register>"  (If invalid user name can be distinguished  
from invalid password, that should be refined to only prompt for the  
user name case).

-Evan




More information about the Devel mailing list