| 81 | /* main - main program */ |
| 82 | |
| 83 | int main(int argc, char **argv) |
| 84 | { |
| 85 | //ACL_WATCHDOG *watchdog; |
| 86 | int ch, fd, n, keep_mask = 0; |
| 87 | ACL_AIO *aio; |
| 88 | char *ptr; |
| 89 | |
| 90 | /* |
| 91 | * Strip and save the process name for diagnostics etc. |
| 92 | */ |
| 93 | var_master_procname = acl_mystrdup(acl_safe_basename(argv[0])); |
| 94 | acl_var_master_pid = getpid(); |
| 95 | |
| 96 | acl_var_master_conf_dir = NULL; |
| 97 | acl_var_master_log_file = NULL; |
| 98 | acl_open_limit(0); |
| 99 | |
| 100 | while ((ch = getopt(argc, argv, "Vhvc:l:k")) > 0) { |
| 101 | switch (ch) { |
| 102 | case 'V': |
| 103 | acl_msg_verbose++; |
| 104 | break; |
| 105 | case 'v': |
| 106 | printf("%s %s %s(acl-%s)\r\n", MASTER_NAME, |
| 107 | MASTER_VERSION, MASTER_DATE, acl_version()); |
| 108 | return 0; |
| 109 | case 'h': |
| 110 | usage(argv[0]); |
| 111 | return 0; |
| 112 | case 'c': |
| 113 | acl_var_master_conf_dir = acl_mystrdup(optarg); |
| 114 | break; |
| 115 | case 'l': |
| 116 | acl_var_master_log_file = acl_mystrdup(optarg); |
| 117 | break; |
| 118 | case 'k': |
| 119 | keep_mask = 1; |
| 120 | break; |
| 121 | default: |
| 122 | usage(argv[0]); |
| 123 | return 0; |
| 124 | /* NOTREACHED */ |
| 125 | } |
| 126 | } |
| 127 | |
| 128 | /* Initialize. */ |
| 129 | if (!keep_mask) { |
| 130 | umask(077); /* never fails! */ |
| 131 | } |
| 132 | |
| 133 | /* Don't die when a process goes away unexpectedly. */ |
| 134 | signal(SIGPIPE, SIG_IGN); |
| 135 | |
| 136 | if (acl_var_master_conf_dir == NULL || acl_var_master_log_file == NULL) { |
| 137 | usage(argv[0]); |
| 138 | } |
| 139 | |
| 140 | ptr = strrchr(acl_var_master_conf_dir, '/'); |
nothing calls this directly
no test coverage detected
searching dependent graphs…