Przeglądaj źródła

Ajout function clone serveur

Arthur Brandao 6 lat temu
rodzic
commit
2089559322
3 zmienionych plików z 23 dodań i 2 usunięć
  1. 2 2
      Serveur/client.c
  2. 1 0
      Serveur/server.h
  3. 20 0
      Serveur/server_udp.c

+ 2 - 2
Serveur/client.c

@@ -17,8 +17,8 @@ ClientList clist;
 int add_client(Server cli, Server serv){
     //Creation client
     Client* c = malloc(sizeof(Client));
-    c->main = cli;
-    c->notify = serv;
+    c->main = server_clone(cli);
+    c->notify = server_clone(serv);
     c->id = id++;
     //Creation noeud
     ClientNode* cn = malloc(sizeof(ClientNode));

+ 1 - 0
Serveur/server.h

@@ -40,5 +40,6 @@ Server server_create_udp();
 Server server_create_tcp();
 void server_close(Server);
 boolean server_close_client(Server);
+Server server_clone(Server);
 
 #endif /* SERVER_H */

+ 20 - 0
Serveur/server_udp.c

@@ -107,3 +107,23 @@ void server_close(Server this) {
     /* Supprime */
     free(this);
 }
+
+Server server_clone(Server this){
+    /* Creation nouveau serveur */
+    Server new = malloc(sizeof(struct server));
+    
+    /* Copie valeur */
+    new->type = this->type;
+    new->socket = this->socket;
+    new->socket_client = this->socket_client;
+    new->serv = this->serv;
+    new->client = this->client;
+    new->addr = this->addr;
+    new->server_bind = this->server_bind;
+    new->server_receive = this->server_receive;
+    new->server_send = this->server_send;
+    new->server_accept = this->server_accept;
+    
+    /* Retourne nouveau serveur */
+    return new;
+}