Portability fixes. Mostly for Android.
[pwmd.git] / src / pwmd-error.c
blob8108fa279123c1da088dcdf0fccde674dc7234d5
1 /*
2 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012
3 Ben Kibbey <bjk@luxsci.net>
5 This file is part of pwmd.
7 Pwmd is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 2 of the License, or
10 (at your option) any later version.
12 Pwmd is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with Pwmd. If not, see <http://www.gnu.org/licenses/>.
20 #ifdef HAVE_CONFIG_H
21 #include <config.h>
22 #endif
24 #include "pwmd-error.h"
25 #include <assuan.h>
26 #include "util-misc.h"
27 #include "util-string.h"
29 static char *_gpg_strerror(gpg_error_t rc)
31 char ebuf[ASSUAN_LINELENGTH], *ep;
33 gpg_strerror_r(rc, ebuf, sizeof(ebuf));
34 ep = pthread_getspecific(last_error_key);
35 free_key(ep);
36 ep = str_dup(ebuf);
37 pthread_setspecific(last_error_key, ep);
38 return ep;
41 const char *pwmd_strerror(gpg_error_t e)
43 return _gpg_strerror(e);