Permalink
Browse files

Corrections minimes dans les commentaires, et les messages d'erreur.

  • Loading branch information...
1 parent 488a63f commit 20bdc633985c362cbea8f6dd8fb3a0d63ab8f938 Gabriel committed Feb 21, 2011
Showing with 27 additions and 21 deletions.
  1. +16 −7 libspam.c
  2. +9 −10 protocol.c
  3. +2 −4 protocol.h
View
@@ -60,7 +60,10 @@ conn_t *spam_connect(char *tx_name) {
/* Initialiser la connexion de commandes */
ret = connect(cmd_sock, (struct sockaddr*)&tx_cmd, sizeof(struct sockaddr_in));
- if (ret < 0) goto err_connect;
+ if (ret < 0) {
+ error("Impossible d'ouvrir la connexion sur \"cmd_sock\".\n");
+ goto err_connect;
+ }
spam_knock(connection, &buf_size, &data_port, &key);
debug("Connexion réussie: buf_size = %d, data_port = %d, key = %d\n",
buf_size,
@@ -72,7 +75,10 @@ conn_t *spam_connect(char *tx_name) {
tx_data.sin_addr.s_addr = ((struct in_addr*)(tx_host->h_addr))->s_addr;
tx_data.sin_port = htons(data_port);
ret = connect(data_sock, (struct sockaddr*)&tx_data, sizeof(struct sockaddr_in));
- if (ret < 0) goto err_connect;
+ if (ret < 0) {
+ error("Impossible d'ouvrir la connexion sur \"data_sock\".\n");
+ goto err_connect;
+ }
spam_data_auth(connection, key);
return connection;
@@ -113,11 +119,10 @@ int spam_disconnect(conn_t *connection)
error = -1;
goto error;
}
- /* Pour le moment recevoir un paquet indique que c'est bon
- * il faudra revoir ça pour recevoir le bon ACK. */
if (strncmp(recv_msg, "END SP4M", 8)) {
error("Réponse à la fermeture invalide.\n");
error = -1;
+ free(recv_msg);
goto error;
}
@@ -181,7 +186,7 @@ int spam_config_dsp(conn_t *connection, int size, int channel, int rate)
sprintf(send_buf, "CONF_DSP\nsize=%d\nchannel=%d\nrate=%d", size, channel, rate);
ret = send(connection->cmd_sock, send_buf, MSG_SIZE, 0);
if (ret < 0) {
- error("Impossible d'envoyer la paquet de configuration.");
+ error("Impossible d'envoyer la paquet de configuration.\n");
return -1;
}
@@ -215,7 +220,7 @@ int spam_volume(conn_t *connection, int left, int right)
sprintf(send_buf, "VOLUME\nleft=%d\nright=%d", left, right);
ret = send(connection->cmd_sock, send_buf, MSG_SIZE, 0);
if (ret < 0) {
- error("Impossible d'envoyer la paquet de changement de volume.");
+ error("Impossible d'envoyer la paquet de changement de volume.\n");
return -1;
}
@@ -248,7 +253,7 @@ int spam_buffer(conn_t *connection, int buf_size)
sprintf(send_buf, "BUFFER %d", buf_size);
ret = send(connection->cmd_sock, send_buf, MSG_SIZE, 0);
if (ret < 0) {
- error("Impossible d'envoyer la commande de changement de buffer.");
+ error("Impossible d'envoyer la commande de changement de buffer.\n");
return -1;
}
@@ -317,6 +322,10 @@ int main(int argc, char **argv)
}
connection = spam_connect(argv[1]);
+ if (connection == NULL) {
+ error("Abandon\n");
+ return -1;
+ }
usleep(1000000);
spam_reset(connection);
spam_config_dsp(connection, 16, 2, 44100);
View
@@ -18,10 +18,8 @@ char *send_buf;
char *recv_buf;
/*
- * Attend un message sur <socket> et le met dans le buffer pointé par <*buffer>,
- * attendu de taille <size>.
- * Si le buffer n'est pas alloué, il est alloué de taille <size> et retourné
- * dans <*buffer>.
+ * Attend un message sur <socket> et le met dans le buffer pointé par <*buffer>
+ * Si le buffer n'est pas alloué, il est alloué et retourné dans <*buffer>.
* Retourne 0 si réussi, -1 la réception a échouée.
*/
int spam_recv(int socket, char **buffer)
@@ -73,7 +71,7 @@ int spam_ack(int socket, int *number, char **error)
ret = spam_recv(socket, &ack);
debug("Paquet recu: %s\n", ack);
if (ret < -1) {
- error("Aucun message n'a été reçu pour l'acquitement.");
+ error("Aucun message n'a été reçu pour l'acquitement.\n");
err = -1;
goto error;
}
@@ -92,10 +90,11 @@ int spam_ack(int socket, int *number, char **error)
emsg = (char*) calloc(MSG_SIZE, sizeof(char));
if (!strncmp(ack, "ERROR ", 6)) {
sscanf(ack, "ERROR %d : %s", &pnumber, emsg); // Récupérer le numéro de paquet
- for (i = 0, cur = ack; *cur != ':'; i++, cur++); // Récupérer la chaine d'erreur en entrier
+ for (i = 0, cur = ack; *cur != ':'; i++, cur++); // Récupérer la chaine d'erreur en entier
+ // car le sscanf met dans emsg que jusqu'au premier espace
strcpy(emsg, ack + i + 2);
} else {
- error("Aucun message recu n'était valide, abandon.");
+ error("Aucun message recu n'était valide, abandon.\n");
err = -1;
goto parse_error;
}
@@ -154,7 +153,7 @@ int spam_knock(conn_t *connection, int *buf_size, int *data_port, int *key)
buf_size,
data_port,
key);
- if (version <= 0.0 && *buf_size <= 0 && *data_port <= 0) {
+ if (version <= 0.0 || *buf_size <= 0 || *data_port <= 0) {
error("Trame reçue invalide, abandon de la connexion.\n");
error = -1;
goto error_free;
@@ -214,14 +213,14 @@ int spam_data_auth(conn_t *connection, int key) {
int spam_send_reset(conn_t *connection)
{
int ret;
- char *msg = "RESET";
+ const char *msg = "RESET";
/* Envoyer le message de reset */
memset(send_buf, 0, MSG_SIZE);
strncpy(send_buf, msg, 6);
ret = send(connection->cmd_sock, send_buf, MSG_SIZE, 0);
if (ret < -1) {
- error("Impossible d'envoyer le signal de reset.");
+ error("Impossible d'envoyer le signal de reset.\n");
return -1;
}
View
@@ -24,10 +24,8 @@ typedef struct _conn_t {
} conn_t;
/*
- * Attend un message sur <socket> et le met dans le buffer pointé par <*buffer>,
- * attendu de taille <size>.
- * Si le buffer n'est pas alloué, il est alloué de taille <size> et retourné
- * dans <*buffer>.
+ * Attend un message sur <socket> et le met dans le buffer pointé par <*buffer>
+ * Si le buffer n'est pas alloué, il est alloué et retourné dans <*buffer>.
* Retourne 0 si réussi, -1 la réception a échouée.
*/
int spam_recv(int socket, char **buffer);

0 comments on commit 20bdc63

Please sign in to comment.