Re: [PATCH v2 15/16] contrib/git-credential-gnome-keyring.c: support ancient gnome-keyring
- From
Felipe Contreras <felipe.contreras@gmail.com>
- Date
- Sep 23, 2013, 20:14 UTC
- Message-ID
- <CAMP44s0AnN4t9xuWQy9e09=m1quRegyCtGtizTjP_Ovw62Lycg@mail.gmail.com>
- In-Reply-To
- <1379962157-1338-16-git-send-email-bcasey@nvidia.com>
On Mon, Sep 23, 2013 at 1:49 PM, Brandon Casey <bcasey@nvidia.com> wrote:
Show 53 quoted lines
> From: Brandon Casey <drafnel@gmail.com> > > The gnome-keyring lib distributed with RHEL 5.X is ancient and does > not provide a few of the functions/defines that more recent versions > do, but mostly the API is the same. Let's provide the missing bits > via macro definitions and function implementation. > > Signed-off-by: Brandon Casey <drafnel@gmail.com> > --- > .../gnome-keyring/git-credential-gnome-keyring.c | 58 ++++++++++++++++++++++ > 1 file changed, 58 insertions(+) > > diff --git a/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c b/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c > index 447e9aa..e1bc3fa 100644 > --- a/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c > +++ b/contrib/credential/gnome-keyring/git-credential-gnome-keyring.c > @@ -28,8 +28,66 @@ > #include <stdlib.h> > #include <glib.h> > #include <gnome-keyring.h> > + > +#ifdef GNOME_KEYRING_DEFAULT > + > + /* Modern gnome-keyring */ > + > #include <gnome-keyring-memory.h> > > +#else > + > + /* > + * Support ancient gnome-keyring, circ. RHEL 5.X. > + * GNOME_KEYRING_DEFAULT seems to have been introduced with Gnome 2.22, > + * and the other features roughly around Gnome 2.20, 6 months before. > + * Ubuntu 8.04 used Gnome 2.22 (I think). Not sure any distro used 2.20. > + * So the existence/non-existence of GNOME_KEYRING_DEFAULT seems like > + * a decent thing to use as an indicator. > + */ > + > +#define GNOME_KEYRING_DEFAULT NULL > + > +/* > + * ancient gnome-keyring returns DENIED when an entry is not found. > + * Setting NO_MATCH to DENIED will prevent us from reporting DENIED > + * errors during get and erase operations, but we will still report > + * DENIED errors during a store. > + */ > +#define GNOME_KEYRING_RESULT_NO_MATCH GNOME_KEYRING_RESULT_DENIED > + > +#define gnome_keyring_memory_alloc g_malloc > +#define gnome_keyring_memory_free gnome_keyring_free_password > +#define gnome_keyring_memory_strdup g_strdup > + > +static const char* gnome_keyring_result_to_message(GnomeKeyringResult result)
The style is: static const char *gnome_keyring_result_to_message
There might not be a need to reroll, depending on what Junio says.
-- Felipe Contreras