comparison sip-in/main.c @ 56:7005d5c535e8

sip-in: mtcall socket connection implemented
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 08 Sep 2022 13:25:31 -0800
parents 62f39c7cee15
children 709b78a4ebf0
comparison
equal deleted inserted replaced
55:f1d59210f7b2 56:7005d5c535e8
12 #include <signal.h> 12 #include <signal.h>
13 #include <syslog.h> 13 #include <syslog.h>
14 #include <unistd.h> 14 #include <unistd.h>
15 15
16 extern int mgw_socket, sip_socket; 16 extern int mgw_socket, sip_socket;
17 extern int gsm_socket, gsm_is_connected;
17 18
18 static int max_fd; 19 static int max_fd;
19 20
20 struct timeval cur_event_time; 21 struct timeval cur_event_time;
21 22
54 /* main select loop */ 55 /* main select loop */
55 for (;;) { 56 for (;;) {
56 FD_ZERO(&fds); 57 FD_ZERO(&fds);
57 FD_SET(mgw_socket, &fds); 58 FD_SET(mgw_socket, &fds);
58 FD_SET(sip_socket, &fds); 59 FD_SET(sip_socket, &fds);
60 if (gsm_is_connected)
61 FD_SET(gsm_socket, &fds);
59 rc = select(max_fd+1, &fds, 0, 0, 0); 62 rc = select(max_fd+1, &fds, 0, 0, 0);
60 if (rc < 0) { 63 if (rc < 0) {
61 if (errno == EINTR) 64 if (errno == EINTR)
62 continue; 65 continue;
63 syslog(LOG_CRIT, "select: %m"); 66 syslog(LOG_CRIT, "select: %m");
64 exit(1); 67 exit(1);
65 } 68 }
66 gettimeofday(&cur_event_time, 0); 69 gettimeofday(&cur_event_time, 0);
70 if (gsm_is_connected && FD_ISSET(gsm_socket, &fds))
71 gsm_socket_select();
72 if (FD_ISSET(sip_socket, &fds))
73 sip_socket_select();
67 if (FD_ISSET(mgw_socket, &fds)) 74 if (FD_ISSET(mgw_socket, &fds))
68 mgw_socket_select(); 75 mgw_socket_select();
69 if (FD_ISSET(sip_socket, &fds))
70 sip_socket_select();
71 } 76 }
72 } 77 }