Merging master password branch...

Elliott Sales de Andrade qulogic at pidgin.im
Fri May 25 16:13:59 EDT 2012


Hi all,

We should probably get around to merging this stuff... It does
compile, and run in some fashion, at least. I haven't really had to
modify it much lately, so I'd like everyone to take a look at some of
the API changes before merging. I'm mostly concerned with the
libpurple changes. For the rest, you can just check out monotone.

The following are high-level sorts of things or specific comments.
Please check monotone for the details.

accounts.h
* Add `cb` and `data` parameters to `purple_account_[gs]et_password`
for the caller to be notified when a password is truly saved/read. I
don't think any callers use the saved-cb though.

connection.h
* Add `gboolean purple_connection_had_error(const PurpleConnection
*gc);` -- Seems a bit of a hack to me based on the name. I'm sure it
can be done better.

plugin.h
* #define PURPLE_PLUGIN_FLAG_AUTOLOAD  0x02 -- Can't we just do the
same thing the SSL plugins do?

New Keyring API:
* Header comment points out that some GError's may not be useful. We
don't really use them in the rest of our API either.
* Keyring implementation stuff:
* * PurpleKeyringRead
* * PurpleKeyringSave
* * PurpleKeyringClose
* * PurpleKeyringChangeMaster
* * PurpleKeyringImportPassword
* * PurpleKeyringExportPassword
* Callbacks:
* * PurpleKeyringReadCallback
* * PurpleKeyringSaveCallback
* * PurpleKeyringChangeMasterCallback
* * PurpleKeyringSetInUseCallback
* Real API:
* * purple_keyring_find_keyring_by_id
* * purple_keyring_get_options
* * purple_keyring_get_keyrings
* * purple_keyring_get_inuse
* * purple_keyring_set_inuse
* * purple_keyring_register
* * purple_keyring_unregister
* * purple_keyring_get_password
* * purple_keyring_set_password
* * purple_keyring_close
* * purple_keyring_change_master
* * purple_keyring_new
* * purple_keyring_free
* * purple_keyring_get_name
* * purple_keyring_get_id
* * purple_keyring_get_read_password
* * purple_keyring_get_save_password
* * purple_keyring_get_close_keyring
* * purple_keyring_get_change_master
* * purple_keyring_get_import_password
* * purple_keyring_get_export_password
* * purple_keyring_set_name
* * purple_keyring_set_id
* * purple_keyring_set_read_password
* * purple_keyring_set_save_password
* * purple_keyring_set_close_keyring
* * purple_keyring_set_change_master
* * purple_keyring_set_import_password
* * purple_keyring_set_export_password
* Internal API? These are supposed to be used by account.c but are in
the public header. Maybe they should be moved somewhere else.
* * purple_keyring_import_password
* * purple_keyring_export_password

As for the actual keyrings, GNOME Keyring works best as I can test it
and it's in C. Somehow I managed to write the KWallet plugin from
scratch even though I don't know too much C++ or KDE/Qt. Someone who
knows better should probably check it out. There's probably some sort
of API on Windows, but we don't have a plugin for it yet.

--
Elliott aka QuLogic
Pidgin developer




More information about the Devel mailing list