summaryrefslogtreecommitdiff
path: root/src/analysis/db/auth.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2019-09-01 21:37:51 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2019-09-01 21:37:51 (GMT)
commita820f204162f61e3e7a91e66c1aabea22f23d0cb (patch)
treed8cd00ab7dbef97272858c5217ce3ef4b6981996 /src/analysis/db/auth.c
parent14f1b8ff552dfb8aef6c66b3c65e816aa7820bb0 (diff)
Prepared the update of the user identity from the GUI.
Diffstat (limited to 'src/analysis/db/auth.c')
-rw-r--r--src/analysis/db/auth.c49
1 files changed, 36 insertions, 13 deletions
diff --git a/src/analysis/db/auth.c b/src/analysis/db/auth.c
index af51af6..5e62f58 100644
--- a/src/analysis/db/auth.c
+++ b/src/analysis/db/auth.c
@@ -209,6 +209,38 @@ static char *get_cert_storage_directory(const char *outdir, const char *host, co
/******************************************************************************
* *
+* Paramètres : - *
+* *
+* Description : Détermine la désignation par défaut de l'usager. *
+* *
+* Retour : Nom déterminé à libérer de la mémoire. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+char *get_default_username(void)
+{
+ char *result; /* Désignation à retourner */
+ uid_t uid; /* Identifiant d'utilisateur */
+ struct passwd *pw; /* Indications sur l'usager */
+
+ uid = geteuid();
+ pw = getpwuid(uid);
+
+ if (pw != NULL)
+ result = strdup(pw->pw_name);
+
+ else
+ result = strdup("anonymous");
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : valid = durée de validité des certificats. *
* entries = éléments d'identité à utiliser pour l'opération. *
* *
@@ -224,8 +256,6 @@ bool setup_client_identity(unsigned long valid, x509_entries *entries)
{
bool result; /* Bilan de l'opération */
char *working; /* Répertoire pour le client */
- uid_t uid; /* Identifiant d'utilisateur */
- struct passwd *pw; /* Indications sur l'usager */
working = get_db_working_directory("clients", NULL, NULL, NULL);
@@ -235,18 +265,11 @@ bool setup_client_identity(unsigned long valid, x509_entries *entries)
{
if (entries->common_name == NULL)
{
- uid = geteuid();
- pw = getpwuid(uid);
-
- if (pw != NULL)
- {
- log_variadic_message(LMT_WARNING,
- _("Replaced the empty identity common name with '%s'"),
- pw->pw_name);
-
- entries->common_name = strdup(pw->pw_name);
+ entries->common_name = get_default_username();
- }
+ log_variadic_message(LMT_WARNING,
+ _("Replaced the empty identity common name with '%s'"),
+ entries->common_name);
}