FreeCalypso > hg > themwi-system-sw
diff sip-in/main.c @ 107:372209628038
sip-in: handle themwi-mgw shutdown without terminating
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 27 Sep 2022 23:45:40 -0800 |
parents | 709b78a4ebf0 |
children | 7a4d4b8d5f04 |
line wrap: on
line diff
--- a/sip-in/main.c Tue Sep 27 23:44:07 2022 -0800 +++ b/sip-in/main.c Tue Sep 27 23:45:40 2022 -0800 @@ -15,8 +15,9 @@ extern unsigned cfg_retrans_timeout; -extern int mgw_socket, sip_socket; extern int gsm_socket, gsm_is_connected; +extern int mgw_socket, mgw_is_connected; +extern int sip_socket; static int max_fd; @@ -41,10 +42,6 @@ fprintf(stderr, "error reading number database\n"); exit(1); } - if (open_tmgw_socket() < 0) { - fprintf(stderr, "error connecting to themwi-mgw socket\n"); - exit(1); - } if (open_sip_udp_socket() < 0) { fprintf(stderr, "error opening SIP UDP socket\n"); exit(1); @@ -58,10 +55,11 @@ /* main select loop */ for (;;) { FD_ZERO(&fds); - FD_SET(mgw_socket, &fds); FD_SET(sip_socket, &fds); if (gsm_is_connected) FD_SET(gsm_socket, &fds); + if (mgw_is_connected) + FD_SET(mgw_socket, &fds); need_retrans = 0; scan_call_list_for_timeouts(&need_retrans); if (need_retrans) { @@ -83,9 +81,9 @@ } if (gsm_is_connected && FD_ISSET(gsm_socket, &fds)) gsm_socket_select(); + if (mgw_is_connected && FD_ISSET(mgw_socket, &fds)) + mgw_socket_select(); if (FD_ISSET(sip_socket, &fds)) sip_socket_select(); - if (FD_ISSET(mgw_socket, &fds)) - mgw_socket_select(); } }