static void s2e_sockestablished_process(uint8_t sock) { struct __network_info *net = (struct __network_info *)get_S2E_Packet_pointer()->network_info; if(reconn_flag) reconn_flag = reconn_time = 0; switch(net->working_mode) { case TCP_MIXED_MODE: case TCP_SERVER_MODE: if(auth_flag) { auth_process(sock); return; } case TCP_CLIENT_MODE: if((inactive_flag == 0) && net->inactivity) inactive_flag = 1; else if(inactive_flag == 2) { inactive_flag = 0; disconnect(sock); } ether_to_uart(sock); uart_to_ether(sock); break; case UDP_MODE: close(sock); break; default: break; } }
int service_authentification(int sock_fd) { t_auth_state state; state = NONE; while (!g_config.should_stop && state != SUCCESS) auth_process(sock_fd, &state); return (state == SUCCESS); }
static void s2e_sockestablished_process(uint8_t sock) { uint8_t tmp; struct __network_info *net = (struct __network_info *)get_S2E_Packet_pointer()->network_info; if(reconn_flag) reconn_flag = reconn_time = 0; switch(net->working_mode) { case TCP_MIXED_MODE: case TCP_SERVER_MODE: if(auth_flag) { auth_process(sock); return; } case TCP_CLIENT_MODE: if((inactive_flag == 0) && net->inactivity) inactive_flag = 1; else if(inactive_flag == 2) { inactive_flag = 0; disconnect(sock); } if(keepsend_flag == 0) { keepsend_flag = 1; } else if(keepsend_flag == 2) { keepsend_flag = 0; ctlwizchip(CW_GET_PHYLINK, (void*) &tmp); if(tmp == PHY_LINK_OFF) { //disconnect(sock); //TODO } } ether_to_uart(sock); uart_to_ether(sock); break; case UDP_MODE: close(sock); break; default: break; } }