|
@@ -16,7 +16,7 @@
|
|
|
extern int serrno;
|
|
|
|
|
|
/* --- Fonctions privées --- */
|
|
|
-void server_bind_tcp(Server this, int port) {
|
|
|
+boolean server_bind_tcp(Server this, int port) {
|
|
|
/* Declaration variable */
|
|
|
int tmp;
|
|
|
|
|
@@ -29,6 +29,7 @@ void server_bind_tcp(Server this, int port) {
|
|
|
free(this);
|
|
|
serrno = SEBIND;
|
|
|
addperror("Impossible de bind la socket");
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
/* Listen */
|
|
@@ -37,16 +38,22 @@ void server_bind_tcp(Server this, int port) {
|
|
|
free(this);
|
|
|
serrno = SEBIND;
|
|
|
addperror("Impossible d'ecouter");
|
|
|
+ return false;
|
|
|
}
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
-void server_accept_tcp(Server this) {
|
|
|
+boolean server_accept_tcp(Server this) {
|
|
|
/* Accept */
|
|
|
this->socket_client = accept(this->socket, NULL, NULL);
|
|
|
if (this->socket_client == ERR) {
|
|
|
serrno = SEACCEPT;
|
|
|
addperror("Impossible d'accepter");
|
|
|
+ return false;
|
|
|
}
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
ssize_t server_receive_tcp(Server this, char* buf, size_t size) {
|
|
@@ -62,14 +69,17 @@ ssize_t server_receive_tcp(Server this, char* buf, size_t size) {
|
|
|
return tmp;
|
|
|
}
|
|
|
|
|
|
-void server_send_tcp(Server this, char* msg) {
|
|
|
+boolean server_send_tcp(Server this, char* msg) {
|
|
|
int tmp;
|
|
|
/* Envoi message */
|
|
|
tmp = write(this->socket_client, msg, strlen(msg) * sizeof (char));
|
|
|
if (tmp == ERR) {
|
|
|
serrno = SESEND;
|
|
|
addperror("Impossible d'envoyer les données");
|
|
|
+ return false;
|
|
|
}
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|
|
|
|
|
|
/* --- Fonctions publiques --- */
|
|
@@ -113,15 +123,20 @@ Server server_create_tcp() {
|
|
|
return this;
|
|
|
}
|
|
|
|
|
|
-void server_close_client(Server this) {
|
|
|
+boolean server_close_client(Server this) {
|
|
|
/* Que pour TCP */
|
|
|
if (this->type != SERV_TCP) {
|
|
|
- return;
|
|
|
+ serrno = SETYPE;
|
|
|
+ adderror("Type de la socket incorrect");
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
/* Ferme */
|
|
|
if (close(this->socket_client) == ERR) {
|
|
|
serrno = SECLOSE;
|
|
|
addperror("Impossible de fermer la socket");
|
|
|
+ return false;
|
|
|
}
|
|
|
+
|
|
|
+ return true;
|
|
|
}
|