summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/analysis/db/client.c53
1 files changed, 43 insertions, 10 deletions
diff --git a/src/analysis/db/client.c b/src/analysis/db/client.c
index 2cab655..77dafea 100644
--- a/src/analysis/db/client.c
+++ b/src/analysis/db/client.c
@@ -116,6 +116,9 @@ static void *g_hub_client_update(GHubClient *);
/* Met à jour la liste des instantanés courants. */
static bool g_hub_client_update_snapshots(GHubClient *, packed_buffer *);
+/* Met à jour l'identifiant de l'instantané courant. */
+static bool g_hub_client_update_current_snapshot(GHubClient *, packed_buffer *);
+
/* Identifie le canal de communication pour envois au serveur. */
static SSL *g_hub_client_get_ssl_fd(GHubClient *);
@@ -728,7 +731,6 @@ static void *g_hub_client_update(GHubClient *client)
DBError error; /* Bilan d'une commande passée */
GDbCollection *collec; /* Collection visée au final */
uint8_t tmp8; /* Valeur sur 8 bits */
- snapshot_id_t id; /* Identifiant d'instantané */
char *msg; /* Message d'erreur à imprimer */
/**
@@ -870,16 +872,9 @@ static void *g_hub_client_update(GHubClient *client)
case DBC_CUR_SNAPSHOT_UPDATED:
- status = unpack_snapshot_id(&id, &in_pbuf);
+ status = g_hub_client_update_current_snapshot(client, &in_pbuf);
if (!status) goto gdcu_bad_exchange;
- g_mutex_lock(&client->cur_lock);
-
- copy_snapshot_id(&client->current, &id);
- client->has_current = true;
-
- g_mutex_unlock(&client->cur_lock);
-
break;
case DBC_SET_CUR_SNAPSHOT:
@@ -928,7 +923,7 @@ static void *g_hub_client_update(GHubClient *client)
* *
* Description : Met à jour la liste des instantanés courants. *
* *
-* Retour : true si la liste retournée est valide, false sinon. *
+* Retour : true si l'opération s'est déroulée sans encombre, ou false. *
* *
* Remarques : - *
* *
@@ -1000,6 +995,44 @@ static bool g_hub_client_update_snapshots(GHubClient *client, packed_buffer *pbu
/******************************************************************************
* *
* Paramètres : client = client pour les accès distants à manipuler. *
+* pbuf = données présentes à traiter. *
+* *
+* Description : Met à jour l'identifiant de l'instantané courant. *
+* *
+* Retour : true si l'opération s'est déroulée sans encombre, ou false. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static bool g_hub_client_update_current_snapshot(GHubClient *client, packed_buffer *pbuf)
+{
+ bool result; /* Validité à retourner */
+ snapshot_id_t id; /* Identifiant d'instantané */
+
+ setup_empty_snapshot_id(&id);
+
+ result = unpack_snapshot_id(&id, pbuf);
+
+ if (result)
+ {
+ g_mutex_lock(&client->cur_lock);
+
+ copy_snapshot_id(&client->current, &id);
+ client->has_current = true;
+
+ g_mutex_unlock(&client->cur_lock);
+
+ }
+
+ return result;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : client = client pour les accès distants à manipuler. *
* *
* Description : Arrête la connexion à la base de données. *
* *