30#define DISABLE_DEBUGLOG
45#include <gwenhywfar/debug.h>
46#include <gwenhywfar/dialog_be.h>
47#include <gwenhywfar/mdigest.h>
48#include <gwenhywfar/text.h>
49#include <gwenhywfar/url.h>
50#include <gwenhywfar/syncio_socket.h>
51#include <gwenhywfar/syncio_buffered.h>
52#include <gwenhywfar/syncio_tls.h>
53#include <gwenhywfar/syncio_http.h>
54#include <gwenhywfar/threadlocaldata.h>
61#if defined (HAVE_LANGINFO_H)
63#elif defined (HAVE_LOCALCHARSET_H)
64# include <localcharset.h>
113 gui->progressDataTree=GWEN_ProgressData_Tree_new();
130 assert(gui->refCount);
131 if ((--gui->refCount)==0) {
135 GWEN_ProgressData_Tree_free(gui->progressDataTree);
140 if (gui->passwdStore)
154 assert(gui->refCount);
231 gui->name=strdup(name);
268#if defined(HAVE_LANGINFO_H)
269 cs=nl_langinfo(CODESET);
270#elif defined(HAVE_LOCALCHARSET_H)
280 if (strcasecmp(cs,
"UTF-8")==0)
289 "Missing iconv, cannot convert between UTF-8 and \"%s\"", cs);
299 p=(
char *)malloc(len+11);
301 sprintf(p,
"%s//TRANSLIT", cs);
302 ic=iconv_open(p,
"UTF-8");
303 if (ic==(iconv_t)-1) {
305 "Charset conversion from \"UTF-8\" to \"%s\" failed: %s (%d)",
306 p, strerror(errno), errno);
316 gui->charSet=(
char *)cs;
325 return gui->passwdStore;
334 if (gui->passwdStore && gui->passwdStore!=sto)
336 gui->passwdStore=sto;
351 gui->dbPasswords=dbPasswords;
352 gui->persistentPasswords=persistent;
359 return gui->dbPasswords;
376 char msgbuffer[2048];
381 rv=vsnprintf(msgbuffer,
sizeof(msgbuffer),
fmt, list);
382 if (rv<0 || rv>=(
int)(
sizeof(msgbuffer))) {
384 rv, (
int)(
sizeof(msgbuffer)));
401 return gui->minProgressLogLevel;
409 gui->minProgressLogLevel=ll;
GWENHYWFAR_API const char * fmt
GWEN_DB_NODE * GWEN_DB_Group_new(const char *name)
void GWEN_DB_Group_free(GWEN_DB_NODE *n)
struct GWEN_DB_NODE GWEN_DB_NODE
#define DBG_INFO(dbg_logger, format,...)
#define DBG_ERROR(dbg_logger, format,...)
#define DBG_WARN(dbg_logger, format,...)
#define GWEN_ERROR_GENERIC
void GWEN_Gui_SetName(GWEN_GUI *gui, const char *name)
void GWEN_Gui_SetMinProgressLogLevel(GWEN_GUI *gui, GWEN_LOGGER_LEVEL ll)
void GWEN_Gui_SubFlags(GWEN_GUI *gui, uint32_t fl)
void GWEN_Gui_SetCharSet(GWEN_GUI *gui, const char *s)
const char * GWEN_Gui_GetCharSet(const GWEN_GUI *gui)
GWEN_GUI * GWEN_Gui_GetGui(void)
void GWEN_Gui_ShowError(const char *title, const char *fmt,...)
void GWEN_Gui_SetGui(GWEN_GUI *gui)
void GWEN_Gui_SetPasswordDb(GWEN_GUI *gui, GWEN_DB_NODE *dbPasswords, int persistent)
int GWEN_Gui_ModuleInit()
GWEN_GUI * GWEN_Gui_new(void)
const char * GWEN_Gui_GetName(void)
GWEN_PASSWD_STORE * GWEN_Gui_GetPasswdStore(const GWEN_GUI *gui)
static GWEN_THREADLOCAL_DATA * _globalThreadLocalGuiContainer
void GWEN_Gui_ModuleFini()
void GWEN_Gui_Attach(GWEN_GUI *gui)
GWEN_DB_NODE * GWEN_Gui_GetPasswordDb(const GWEN_GUI *gui)
void GWEN_Gui_SetPasswdStore(GWEN_GUI *gui, GWEN_PASSWD_STORE *sto)
void GWEN_Gui_SetFlags(GWEN_GUI *gui, uint32_t fl)
GWEN_LOGGER_LEVEL GWEN_Gui_GetMinProgressLogLevel(const GWEN_GUI *gui)
uint32_t GWEN_Gui_GetFlags(const GWEN_GUI *gui)
void GWEN_Gui_free(GWEN_GUI *gui)
void GWEN_Gui_AddFlags(GWEN_GUI *gui, uint32_t fl)
#define GWEN_GUI_MSG_FLAGS_SEVERITY_NORMAL
GWENHYWFAR_API int GWEN_Gui_MessageBox(uint32_t flags, const char *title, const char *text, const char *b1, const char *b2, const char *b3, uint32_t guiid)
#define GWEN_GUI_MSG_FLAGS_CONFIRM_B1
#define GWEN_GUI_MSG_FLAGS_TYPE_ERROR
#define GWEN_GUI_FLAGS_PERMPASSWORDS
int GWENHYWFAR_CB GWEN_Gui_CheckCertBuiltIn(GWEN_UNUSED GWEN_GUI *gui, const GWEN_SSLCERTDESCR *cd, GWEN_UNUSED GWEN_SYNCIO *sio, uint32_t guiid)
static int GWENHYWFAR_CB GWEN_Gui_Internal_GetPassword(GWEN_GUI *gui, uint32_t flags, const char *token, const char *title, const char *text, char *pwBuffer, int minLen, int maxLen, GWEN_UNUSED GWEN_GUI_PASSWORD_METHOD methodId, GWEN_UNUSED GWEN_DB_NODE *methodParams, uint32_t guiid)
static int GWENHYWFAR_CB GWEN_Gui_Internal_SetPasswordStatus(GWEN_GUI *gui, const char *token, const char *pin, GWEN_GUI_PASSWORD_STATUS status, GWEN_UNUSED uint32_t guiid)
int GWENHYWFAR_CB GWEN_Gui_Internal_GetSyncIo(GWEN_UNUSED GWEN_GUI *gui, const char *url, const char *defaultProto, int defaultPort, GWEN_SYNCIO **pSio)
#define GWEN_INHERIT_FUNCTIONS(t)
#define GWEN_INHERIT_INIT(t, element)
#define GWEN_INHERIT_FINI(t, element)
GWEN_DIALOG_LIST * GWEN_Dialog_List_new()
void GWEN_Dialog_List_free(GWEN_DIALOG_LIST *l)
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)
void GWEN_PasswordStore_free(GWEN_PASSWD_STORE *sto)
struct GWEN_PASSWD_STORE GWEN_PASSWD_STORE
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
GWEN_STRINGLIST * GWEN_StringList_new(void)
GWENHYWFAR_API int GWEN_ThreadLocalData_SetData(GWEN_THREADLOCAL_DATA *threadLocalData, void *pointer)
GWENHYWFAR_API GWEN_THREADLOCAL_DATA * GWEN_ThreadLocalData_new()
GWENHYWFAR_API void * GWEN_ThreadLocalData_GetData(const GWEN_THREADLOCAL_DATA *threadLocalData)
struct GWEN_THREADLOCAL_DATA GWEN_THREADLOCAL_DATA
GWENHYWFAR_API void GWEN_ThreadLocalData_free(GWEN_THREADLOCAL_DATA *threadLocalData)