aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authordhubbard <dhubbard@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-04 01:08:31 +0000
committerdhubbard <dhubbard@f38db490-d61c-443f-a65b-d21fe96a405b>2008-04-04 01:08:31 +0000
commit4f187d23d0563ef1b48fc7bf5079f8483a5f0cbf (patch)
tree98b96b581025914dfd8fe7c80c535688de28e303 /main
parent061588893853727ee723a4f153e220c4f27589ee (diff)
Merged revisions 112653,112656,112714 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r112653 | dhubbard | 2008-04-03 17:13:11 -0500 (Thu, 03 Apr 2008) | 1 line add a Zaptel timer check to verify the timer is responding when Zaptel support is compiled into Asterisk and Zaptel drivers are loaded. This will help people not waste their valuable time debugging side effects. ........ r112656 | dhubbard | 2008-04-03 17:19:43 -0500 (Thu, 03 Apr 2008) | 1 line satisfy buildbot ........ r112714 | dhubbard | 2008-04-03 19:57:33 -0500 (Thu, 03 Apr 2008) | 1 line sleep long enough for the zaptel timer error message to display before exit ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@112715 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/asterisk.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/main/asterisk.c b/main/asterisk.c
index 0f194f266..d7fe99c12 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -121,6 +121,7 @@ int daemon(int, int); /* defined in libresolv of all places */
#include "asterisk/linkedlists.h"
#include "asterisk/devicestate.h"
#include "asterisk/module.h"
+#include "asterisk/zapata.h"
#include "asterisk/doxyref.h" /* Doxygen documentation */
@@ -3183,7 +3184,35 @@ int main(int argc, char *argv[])
printf("%s", term_quit());
exit(1);
}
-
+#ifdef HAVE_ZAPTEL
+ {
+ int fd;
+ int x = 160;
+ fd = open("/dev/zap/timer", O_RDWR);
+ if (fd >= 0) {
+ if (ioctl(fd, ZT_TIMERCONFIG, &x)) {
+ ast_log(LOG_ERROR, "You have Zaptel built and drivers loaded, but the Zaptel timer test failed to set ZT_TIMERCONFIG to %d.\n", x);
+ exit(1);
+ }
+ if ((x = ast_wait_for_input(fd, 300)) < 0) {
+ ast_log(LOG_ERROR, "You have Zaptel built and drivers loaded, but the Zaptel timer could not be polled during the Zaptel timer test.\n");
+ exit(1);
+ }
+ if (!x) {
+ const char zaptel_timer_error[] = {
+ "Asterisk has detected a problem with your Zaptel configuration and will shutdown for your protection. You have options:"
+ "\n\t1. You only have to compile Zaptel support into Asterisk if you need it. One option is to recompile without Zaptel support."
+ "\n\t2. You only have to load Zaptel drivers if you want to take advantage of Zaptel services. One option is to unload zaptel modules if you don't need them."
+ "\n\t3. If you need Zaptel services, you must correctly configure Zaptel."
+ };
+ ast_log(LOG_ERROR, "%s\n", zaptel_timer_error);
+ usleep(100);
+ exit(1);
+ }
+ close(fd);
+ }
+ }
+#endif
threadstorage_init();
astobj2_init();