From 77ec258acc5fe226739855c604b80ec8ff13d38b Mon Sep 17 00:00:00 2001 From: Evangelos Ribeiro Tzaras Date: Wed, 25 Aug 2021 19:51:11 +0200 Subject: [PATCH] sip: provider: Try to create folder for credentials Otherwise the user could be left unable to save credentials to disk later. Fixes #326 --- plugins/sip/calls-sip-provider.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plugins/sip/calls-sip-provider.c b/plugins/sip/calls-sip-provider.c index beb470f..ccf4c77 100644 --- a/plugins/sip/calls-sip-provider.c +++ b/plugins/sip/calls-sip-provider.c @@ -591,6 +591,7 @@ calls_sip_provider_account_provider_interface_init (CallsAccountProviderInterfac static void calls_sip_provider_init (CallsSipProvider *self) { + g_autofree char *directory = NULL; const char *filename_env = g_getenv ("CALLS_SIP_ACCOUNT_FILE"); self->origins = g_list_store_new (CALLS_TYPE_ORIGIN); @@ -602,6 +603,15 @@ calls_sip_provider_init (CallsSipProvider *self) APP_DATA_NAME, SIP_ACCOUNT_FILE, NULL); + + directory = g_path_get_dirname (self->filename); + if (g_mkdir_with_parents (directory, 0750) == -1) { + int err_save = errno; + g_warning ("Failed to create directory '%s': %d\n" + "Can not store credentials persistently!", + directory, err_save); + } + } /**