Bläddra i källkod

Passage en publique de la fonction d'envoi d'erreur au client

Arthur Brandao 6 år sedan
förälder
incheckning
8020539acf
2 ändrade filer med 27 tillägg och 15 borttagningar
  1. 18 15
      Serveur/bomberstudent_server.c
  2. 9 0
      Serveur/bomberstudent_server.h

+ 18 - 15
Serveur/bomberstudent_server.c

@@ -21,27 +21,16 @@ arraylist get;
 arraylist post;
 char* error_code[] = {
     "520",
-    "400"   
+    "400",
+    "403"
 };
 char* error_message[] = { 
     "Unknown error",
-    "Bad Request"
+    "Bad Request",
+    "Forbidden action"
 };
 
 /* --- Fonctions privées --- */
-
-void send_err_client(int client, int error){
-    JsonEncoder* je = malloc(sizeof(JsonEncoder));
-    //Creation JSON
-    add_string(je, "statut", error_code[error]);
-    add_string(je, "message", error_message[error]);
-    //Envoi
-    if(!send_client(client, je)){
-        adderror("Impossible d'avertir le client de l'erreur");
-    }
-    free(je);
-}
-
 /**
  * Thread de gestion d'un client
  * @param data
@@ -321,6 +310,20 @@ boolean send_client(int cliId, JsonEncoder* je){
     return true;
 }
 
+boolean send_err_client(int cliId, int error){
+    JsonEncoder* je = malloc(sizeof(JsonEncoder));
+    //Creation JSON
+    add_string(je, "status", error_code[error]);
+    add_string(je, "message", error_message[error]);
+    //Envoi
+    if(!send_client(cliId, je)){
+        adderror("Impossible d'avertir le client de l'erreur");
+        return false;
+    }
+    free(je);
+    return true;
+}
+
 boolean notify_client(Client* cli, char* method, char* ressource, JsonEncoder* param){
     int length;
     char* answer, * msg;

+ 9 - 0
Serveur/bomberstudent_server.h

@@ -19,6 +19,7 @@
 #define PORT_TCP 18642
 #define EUNKNOWN 0 //Erreur inconnue (520)
 #define EREQUEST 1 //Erreur requete (400)
+#define EFORBIDDEN 2 //Interdit (403)
 
 /* --- Fonctions --- */
 /**
@@ -64,6 +65,14 @@ boolean receive_client(Client*);
  */
 boolean send_client(int, JsonEncoder*);
 
+/**
+ * Envoi un message d'erreur au client
+ * @param int L'id du client
+ * @param int Le numero de l'erreur
+ * @return Reussite
+ */
+boolean send_err_client(int, int);
+
 /**
  * Notifie les clients
  * @param Client* Le client à notifier