Logiciels Libres et Systèmes Embarqués

server_recv.c

Aller à la documentation de ce fichier.
00001 #include "global.h"
00002 
00003 #ifdef SERVER
00004 
00005 err_t server_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *pbuf, err_t err)
00006 {
00007         err_t ret_code = ERR_OK;
00008         int server_close = *(int *)arg;
00009 
00010         if(ERR_OK == err) {
00011                 if(pbuf != NULL) {
00012                         print("Donnees recues par le serveur : 0x");
00013                         putnum(pbuf->tot_len);
00014                         print("\n\r");
00015 
00016                         tcp_recved(pcb, pbuf->tot_len);
00017                         
00018                         (void) tcp_write(pcb, pbuf->payload, pbuf->len, 1);
00019                         tcp_sent(pcb, server_sent);
00020 
00021                         pbuf_free(pbuf);
00022                 
00023                         if(1 == server_close)
00024                                 ret_code = tcp_close(pcb);
00025                 }
00026         } else {
00027                 print("server_recv(): echec\n\r");
00028                 ret_code = err;
00029         }
00030 
00031         return ret_code;
00032 }
00033 
00034 #endif //SERVER