summaryrefslogtreecommitdiff
path: root/src/analysis/db/protocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/db/protocol.h')
-rw-r--r--src/analysis/db/protocol.h83
1 files changed, 73 insertions, 10 deletions
diff --git a/src/analysis/db/protocol.h b/src/analysis/db/protocol.h
index 4bef28e..7707058 100644
--- a/src/analysis/db/protocol.h
+++ b/src/analysis/db/protocol.h
@@ -47,15 +47,6 @@
-/* Comportement vis à vis des éléments */
-typedef enum _DBStorage
-{
- DBS_ALL_LOCAL = 0x00, /* Enregistrements locaux */
- DBS_ALL_REMOTE = 0x01, /* Enregistrements distants */
-
- DBS_MAX = 0x01
-
-} DBStorage;
@@ -71,17 +62,43 @@ typedef enum _ClientRole
} ClientRole;
+/* Niveaux de privilèges */
+typedef enum _ServerPrivLevels
+{
+ SPV_UNDEFINED = 0, /* Rôle non défini */
+ SPV_ADMINISTRATOR = 1, /* Pleins pouvoirs */
+ SPV_MANAGER = 2, /* Gestionnaire de comptes */
+ SPV_CREATOR = 3, /* Gestionnaire d'analyses */
+ SPV_ANALYST = 4, /* Analyste de binaires */
+
+} ServerPrivLevels;
/**
- * Une fois la connexion établie, les paquets ont tous la forme suivante :
+ * Précisions pour la commande DBC_LOADING_STATUS.
+ */
+
+
+/* Eléments de base nécessaires */
+typedef enum _LoadingStatusHint
+{
+ LSH_READY = 0, /* (Plus) rien n'est requis */
+ LSH_ON_WAIT_LIST = 1, /* Concurrence des connexions */
+ LSH_NEED_CONTENT = 2, /* Suppléments nécessaires */
+ LSH_NEED_FORMAT = 3, /* Suppléments nécessaires */
+ LSH_NEED_ARCH = 4, /* Suppléments nécessaires */
+
+} LoadingStatusHint;
+
+/**
+ * Une fois la connexion établie, les paquets ont tous la forme suivante :
*
* [ type de collection visée ; cf. DBFeatures ]
* [ action à mener ; cf. DBAction ]
@@ -125,6 +142,8 @@ typedef enum _DBAction
*/
typedef enum _DBCommand
{
+ /* ------------------------- Commandes à portée générale ------------------------- */
+
/**
* Le client envoie un tout premier paquet de la forme suivante :
*
@@ -166,6 +185,49 @@ typedef enum _DBCommand
/* ------------------------ Commandes pour analyste ------------------------ */
/**
+ * Gestion de la commande 'DBC_LOADING_STATUS'.
+ *
+ * Le serveur envoie un statut de prise en charge au début d'une connexion :
+ *
+ * [ Indication du serveur : DBC_LOADING_STATUS]
+ * [ Statut courant ; cf. LoadingStatusHint ]
+ *
+ */
+
+ DBC_LOADING_STATUS, /* Indications initiales */
+
+ /**
+ * Gestion de la commande 'DBC_SET_CONTENT'.
+ *
+ * Le client connecté envoie un paquet de la forme suivante :
+ *
+ * [ Ordre de sauvegarde : DBC_SET_CONTENT ]
+ * [ Quantité des données suivantes ]
+ * [ Position du contenu + données de stockage ]
+ *
+ * Le serveur s'exécute et renvoie un bilan :
+ *
+ * [ Ordre de sauvegarde : DBC_SET_CONTENT ]
+ * [ Statut d'exécution ; cf. DBError ]
+ *
+ */
+
+ DBC_SET_CONTENT,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /**
* Gestion de la commande 'DBC_SAVE'.
*
* Le client connecté envoie un paquet de la forme suivante :
@@ -377,6 +439,7 @@ typedef enum _DBError
DBE_XML_VERSION_ERROR, /* Vieille archive présente */
DBE_DB_LOADING_ERROR, /* Erreur pendant le chargement*/
+ DBE_WRONG_HASH, /* Empreinte inattendue */
DBE_XML_ERROR, /* Erreur lors d'une définition*/
DBE_SNAPSHOT_NOT_FOUND, /* Instantané non trouvé */
DBE_SNAPSHOT_RESTORE_FAILURE, /* Echec d'une restauration */