|
@@ -193,6 +193,7 @@ boolean receive_client(Client* cli) {
|
|
method = GET;
|
|
method = GET;
|
|
} else {
|
|
} else {
|
|
//Methode incorrect
|
|
//Methode incorrect
|
|
|
|
+ adderror("Methode incorrect");
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
//Recup la ressource
|
|
//Recup la ressource
|
|
@@ -201,6 +202,7 @@ boolean receive_client(Client* cli) {
|
|
pos++;
|
|
pos++;
|
|
}
|
|
}
|
|
if (compteur == 0) {
|
|
if (compteur == 0) {
|
|
|
|
+ adderror("Aucune ressource demandée");
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
ressource = malloc(sizeof (char) * compteur);
|
|
ressource = malloc(sizeof (char) * compteur);
|
|
@@ -209,11 +211,13 @@ boolean receive_client(Client* cli) {
|
|
if (method == POST) {
|
|
if (method == POST) {
|
|
if (buffer[pos] == '\0') {
|
|
if (buffer[pos] == '\0') {
|
|
//Pas de parametre avec le post
|
|
//Pas de parametre avec le post
|
|
|
|
+ adderror("Absence de parametre en POST");
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
json = reader + compteur + 1;
|
|
json = reader + compteur + 1;
|
|
jp = malloc(sizeof (JsonParser));
|
|
jp = malloc(sizeof (JsonParser));
|
|
if (json_parse(jp, json) != JSON_OK) {
|
|
if (json_parse(jp, json) != JSON_OK) {
|
|
|
|
+ adderror("Impossible de parser le JSON");
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
//Change la liste à utiliser
|
|
//Change la liste à utiliser
|
|
@@ -221,10 +225,42 @@ boolean receive_client(Client* cli) {
|
|
}
|
|
}
|
|
//Appel le callback
|
|
//Appel le callback
|
|
if (arraylist_call(al, ressource, cli->id, jp) == ERR) {
|
|
if (arraylist_call(al, ressource, cli->id, jp) == ERR) {
|
|
|
|
+ adderror("Impossible d'executer le callback");
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
+ //Nettoyage
|
|
|
|
+ free(ressource);
|
|
|
|
+ if(jp != NULL){
|
|
|
|
+ free(jp);
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+boolean send_client(int cliId, JsonEncoder* je){
|
|
|
|
+ Client* cli;
|
|
|
|
+ char* answer, * msg;
|
|
|
|
+ //Recup client
|
|
|
|
+ cli = get_client(cliId);
|
|
|
|
+ if (cli == NULL) {
|
|
|
|
+ adderror("Le client n'existe pas");
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ //Preparation message
|
|
|
|
+ answer = json_encode(je);
|
|
|
|
+ msg = malloc(sizeof(char) + (strlen(answer) + 2));
|
|
|
|
+ memset(msg, 0, strlen(answer) + 2);
|
|
|
|
+ sprintf(msg, "%s\n", answer);
|
|
|
|
+ //Envoi la reponse
|
|
|
|
+ if(!cli->main->server_send(cli->main, msg)){
|
|
|
|
+ adderror("Impossible de repondre à la requete du client");
|
|
|
|
+ free(answer);
|
|
|
|
+ free(msg);
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ //Nettoyage
|
|
|
|
+ free(answer);
|
|
|
|
+ free(msg);
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-boolean send_client(Client* cli, JsonEncoder* answer);
|
|
|
|
boolean notify_client(Client* cli, char* method, char* ressource, JsonEncoder* param);
|
|
boolean notify_client(Client* cli, char* method, char* ressource, JsonEncoder* param);
|