Logiciels Libres et Systèmes Embarqués

server_init.c

Aller à la documentation de ce fichier.
00001 #include "config.h"   // DEFAULT_PORT
00002 #include "global.h"   // server_accept()
00003 #include "lwip/tcp.h" // tcp_new(), tcp_bind(), tcp_listen(), tcp_accept()
00004 
00005 #ifdef SERVER
00006 
00007 static const int server_close = SERVER_CLOSE;
00008 
00009 int server_init(short int port)
00010 {
00011         struct tcp_pcb *pcb = NULL;
00012         err_t ret_code = ERR_OK;
00013 
00014         pcb = tcp_new();
00015         if(NULL == pcb) {
00016                 print("tcp_new(): echec.\n\r");
00017                 return -1;
00018         }
00019 
00020         tcp_arg(pcb, (void *)&server_close);
00021         tcp_err(pcb, server_err);
00022 
00023         ret_code = tcp_bind(pcb, NULL, port);
00024         if(ERR_OK != ret_code) {
00025                 print("tcp_bind(): echec.\n\r");
00026                 return -1;
00027         }
00028 
00029         pcb = tcp_listen(pcb);
00030         if(NULL == pcb) {
00031                 print("tcp_listen(): echec.\n\r");
00032                 return -1;
00033         }
00034 
00035         tcp_accept(pcb, server_accept);
00036 
00037         return 0;
00038 }
00039 
00040 #endif //SERVER