FreeCalypso > hg > themwi-system-sw
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 } |