Bug Summary

File:src/switch.c
Location:line 1234, column 16
Description:Null pointer passed as an argument to a 'nonnull' parameter

Annotated Source Code

1/*
2 * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
3 * Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
4 *
5 * Version: MPL 1.1
6 *
7 * The contents of this file are subject to the Mozilla Public License Version
8 * 1.1 (the "License"); you may not use this file except in compliance with
9 * the License. You may obtain a copy of the License at
10 * http://www.mozilla.org/MPL/
11 *
12 * Software distributed under the License is distributed on an "AS IS" basis,
13 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14 * for the specific language governing rights and limitations under the
15 * License.
16 *
17 * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
18 *
19 * The Initial Developer of the Original Code is
20 * Anthony Minessale II <anthm@freeswitch.org>
21 * Portions created by the Initial Developer are Copyright (C)
22 * the Initial Developer. All Rights Reserved.
23 *
24 * Contributor(s):
25 *
26 * Anthony Minessale II <anthm@freeswitch.org>
27 * Michael Jerris <mike@jerris.com>
28 * Pawel Pierscionek <pawel@voiceworks.pl>
29 * Bret McDanel <trixter AT 0xdecafbad.com>
30 *
31 *
32 * switch.c -- Main
33 *
34 */
35
36#ifndef _XOPEN_SOURCE700
37#define _XOPEN_SOURCE700 600
38#endif
39
40#ifndef WIN32
41#include <poll.h>
42#ifdef HAVE_SETRLIMIT1
43#include <sys/resource.h>
44#endif
45#endif
46
47#ifdef __linux__1
48#include <sys/prctl.h>
49#endif
50
51#include <switch.h>
52#include "private/switch_core_pvt.h"
53
54/* pid filename: Stores the process id of the freeswitch process */
55#define PIDFILE"freeswitch.pid" "freeswitch.pid"
56static char *pfile = PIDFILE"freeswitch.pid";
57static int system_ready = 0;
58
59/* Picky compiler */
60#ifdef __ICC
61#pragma warning (disable:167)
62#endif
63
64#ifdef WIN32
65/* If we are a windows service, what should we be called */
66#define SERVICENAME_DEFAULT "FreeSWITCH"
67#define SERVICENAME_MAXLEN 256
68static char service_name[SERVICENAME_MAXLEN];
69static switch_core_flag_t service_flags = SCF_NONE;
70#include <winsock2.h>
71#include <windows.h>
72
73/* event to signal shutdown (for you unix people, this is like a pthread_cond) */
74static HANDLE shutdown_event;
75
76#ifndef PATH_MAX4096
77#define PATH_MAX4096 256
78#endif
79#endif
80
81/* signal handler for when freeswitch is running in background mode.
82 * signal triggers the shutdown of freeswitch
83# */
84static void handle_SIGILL(int sig)
85{
86 int32_t arg = 0;
87 if (sig) {};
88 /* send shutdown signal to the freeswitch core */
89 switch_core_session_ctl(SCSC_SHUTDOWN, &arg);
90 return;
91}
92
93#ifndef WIN32
94
95static void handle_SIGCHLD(int sig)
96{
97 int status = 0;
98 int pid = 0;
99
100 if (sig) {};
101
102 pid = wait(&status);
103 if (pid > 0) {
104 system_ready = -1;
105 }
106
107 return;
108}
109#endif
110
111/* kill a freeswitch process running in background mode */
112static int freeswitch_kill_background()
113{
114 FILE *f; /* FILE handle to open the pid file */
115 char path[PATH_MAX4096] = ""; /* full path of the PID file */
116 pid_t pid = 0; /* pid from the pid file */
117
118 /* set the globals so we can use the global paths. */
119 switch_core_set_globals();
120
121 /* get the full path of the pid file. */
122 switch_snprintf(path, sizeof(path), "%s%s%s", SWITCH_GLOBAL_dirs.run_dir, SWITCH_PATH_SEPARATOR"/", pfile);
123
124 /* open the pid file */
125 if ((f = fopen(path, "r")) == 0) {
126 /* pid file does not exist */
127 fprintf(stderrstderr, "Cannot open pid file %s.\n", path);
128 return 255;
129 }
130
131 /* pull the pid from the file */
132 if (fscanf(f, "%d", (int *) (intptr_t) & pid) != 1) {
133 switch_log_printf(SWITCH_CHANNEL_LOGSWITCH_CHANNEL_ID_LOG, "src/switch.c", (const char *)__func__
, 133, ((void*)0)
, SWITCH_LOG_ERROR, "Unable to get the pid!\n");
134 }
135
136 /* if we have a valid pid */
137 if (pid > 0) {
138
139 /* kill the freeswitch running at the pid we found */
140 fprintf(stderrstderr, "Killing: %d\n", (int) pid);
141#ifdef WIN32
142 /* for windows we need the event to signal for shutting down a background FreeSWITCH */
143 snprintf(path, sizeof(path), "Global\\Freeswitch.%d", pid);
144
145 /* open the event so we can signal it */
146 shutdown_event = OpenEvent(EVENT_MODIFY_STATE, FALSE0, path);
147
148 /* did we successfully open the event */
149 if (!shutdown_event) {
150 /* we can't get the event, so we can't signal the process to shutdown */
151 fprintf(stderrstderr, "ERROR: Can't Shutdown: %d\n", (int) pid);
152 } else {
153 /* signal the event to shutdown */
154 SetEvent(shutdown_event);
155 /* cleanup */
156 CloseHandle(shutdown_event);
157 }
158#else
159 /* for unix, send the signal to kill. */
160 kill(pid, SIGTERM15);
161#endif
162 }
163
164 /* be nice and close the file handle to the pid file */
165 fclose(f);
166
167 return 0;
168}
169
170#ifdef WIN32
171
172/* we need these vars to handle the service */
173SERVICE_STATUS_HANDLE hStatus;
174SERVICE_STATUS status;
175
176/* Handler function for service start/stop from the service */
177void WINAPI ServiceCtrlHandler(DWORD control)
178{
179 switch (control) {
180 case SERVICE_CONTROL_SHUTDOWN:
181 case SERVICE_CONTROL_STOP:
182 /* Shutdown freeswitch */
183 switch_core_destroy();
184 /* set service status values */
185 status.dwCurrentState = SERVICE_STOPPED;
186 status.dwWin32ExitCode = 0;
187 status.dwCheckPoint = 0;
188 status.dwWaitHint = 0;
189 break;
190 case SERVICE_CONTROL_INTERROGATE:
191 /* we already set the service status every time it changes. */
192 /* if there are other times we change it and don't update, we should do so here */
193 break;
194 }
195
196 SetServiceStatus(hStatus, &status);
197}
198
199/* the main service entry point */
200void WINAPI service_main(DWORD numArgs, char **args)
201{
202 switch_core_flag_t flags = SCF_USE_SQL | SCF_USE_AUTO_NAT | SCF_USE_NAT_MAPPING | SCF_CALIBRATE_CLOCK | SCF_USE_CLOCK_RT;
203 const char *err = NULL((void*)0); /* error value for return from freeswitch initialization */
204
205 /* Override flags if they have been set earlier */
206 if (service_flags != SCF_NONE)
207 flags = service_flags;
208
209 /* we have to initialize the service-specific stuff */
210 memset(&status, 0, sizeof(SERVICE_STATUS));
211 status.dwServiceType = SERVICE_WIN32;
212 status.dwCurrentState = SERVICE_START_PENDING;
213 status.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN;
214
215 /* register our handler for service control messages */
216 hStatus = RegisterServiceCtrlHandler(service_name, &ServiceCtrlHandler);
217
218 /* update the service status */
219 SetServiceStatus(hStatus, &status);
220
221 switch_core_set_globals();
222
223 /* attempt to initialize freeswitch and load modules */
224 if (switch_core_init_and_modload(flags, SWITCH_FALSE, &err) != SWITCH_STATUS_SUCCESS) {
225 /* freeswitch did not start successfully */
226 status.dwCurrentState = SERVICE_STOPPED;
227 } else {
228 /* freeswitch started */
229 status.dwCurrentState = SERVICE_RUNNING;
230 }
231
232 /* update the service status */
233 SetServiceStatus(hStatus, &status);
234}
235
236#else
237
238static int check_fd(int fd, int ms)
239{
240 struct pollfd pfds[2] = { { 0 } };
241 int s, r = 0, i = 0;
242
243 pfds[0].fd = fd;
244 pfds[0].events = POLLIN0x001 | POLLERR0x008;
245 s = poll(pfds, 1, ms);
246
247 if (s == 0 || s == -1) {
248 r = s;
249 } else {
250 r = -1;
251
252 if ((pfds[0].revents & POLLIN0x001)) {
253 if ((i = read(fd, &r, sizeof(r))) > -1) {
254 (void)write(fd, &r, sizeof(r));
255 }
256 }
257 }
258
259 return r;
260}
261
262static void daemonize(int *fds)
263{
264 int fd;
265 pid_t pid;
266 unsigned int sanity = 60;
267
268 if (!fds) {
269 switch (fork()) {
270 case 0: /* child process */
271 break;
272 case -1:
273 fprintf(stderrstderr, "Error Backgrounding (fork)! %d - %s\n", errno(*__errno_location ()), strerror(errno(*__errno_location ())));
274 exit(EXIT_SUCCESS0);
275 break;
276 default: /* parent process */
277 exit(EXIT_SUCCESS0);
278 }
279
280 if (setsid() < 0) {
281 fprintf(stderrstderr, "Error Backgrounding (setsid)! %d - %s\n", errno(*__errno_location ()), strerror(errno(*__errno_location ())));
282 exit(EXIT_SUCCESS0);
283 }
284 }
285
286 pid = switch_fork();
287
288 switch (pid) {
289 case 0: /* child process */
290 if (fds) {
291 close(fds[0]);
292 }
293 break;
294 case -1:
295 fprintf(stderrstderr, "Error Backgrounding (fork2)! %d - %s\n", errno(*__errno_location ()), strerror(errno(*__errno_location ())));
296 exit(EXIT_SUCCESS0);
297 break;
298 default: /* parent process */
299 fprintf(stderrstderr, "%d Backgrounding.\n", (int) pid);
300
301 if (fds) {
302 char *o;
303
304 close(fds[1]);
305
306 if ((o = getenv("FREESWITCH_BG_TIMEOUT"))) {
307 int tmp = atoi(o);
308 if (tmp > 0) {
309 sanity = tmp;
310 }
311 }
312
313 do {
314 system_ready = check_fd(fds[0], 2000);
315
316 if (system_ready == 0) {
317 printf("FreeSWITCH[%d] Waiting for background process pid:%d to be ready.....\n", (int)getpid(), (int) pid);
318 }
319
320 } while (--sanity && system_ready == 0);
321
322 shutdown(fds[0], 2);
323 close(fds[0]);
324 fds[0] = -1;
325
326
327 if (system_ready < 0) {
328 printf("FreeSWITCH[%d] Error starting system! pid:%d\n", (int)getpid(), (int) pid);
329 kill(pid, 9);
330 exit(EXIT_FAILURE1);
331 }
332
333 printf("FreeSWITCH[%d] System Ready pid:%d\n", (int) getpid(), (int) pid);
334 }
335
336 exit(EXIT_SUCCESS0);
337 }
338
339 if (fds) {
340 setsid();
341 }
342 /* redirect std* to null */
343 fd = open("/dev/null", O_RDONLY00);
344 switch_assert( fd >= 0 )((fd >= 0) ? (void) (0) : __assert_fail ("fd >= 0", "src/switch.c"
, 344, __PRETTY_FUNCTION__))
;
345 if (fd != 0) {
346 dup2(fd, 0);
347 close(fd);
348 }
349
350 fd = open("/dev/null", O_WRONLY01);
351 switch_assert( fd >= 0 )((fd >= 0) ? (void) (0) : __assert_fail ("fd >= 0", "src/switch.c"
, 351, __PRETTY_FUNCTION__))
;
352 if (fd != 1) {
353 dup2(fd, 1);
354 close(fd);
355 }
356
357 fd = open("/dev/null", O_WRONLY01);
358 switch_assert( fd >= 0 )((fd >= 0) ? (void) (0) : __assert_fail ("fd >= 0", "src/switch.c"
, 358, __PRETTY_FUNCTION__))
;
359 if (fd != 2) {
360 dup2(fd, 2);
361 close(fd);
362 }
363 return;
364}
365
366static pid_t reincarnate_child = 0;
367static void reincarnate_handle_sigterm (int sig) {
368 if (!sig) return;
369 if (reincarnate_child) kill(reincarnate_child, sig);
370 return;
371}
372
373static void reincarnate_protect(char **argv) {
374 int i; struct sigaction sa, sa_dfl, sa4_prev, sa15_prev, sa17_prev;
375 memset(&sa, 0, sizeof(sa)); memset(&sa_dfl, 0, sizeof(sa_dfl));
376 sa.sa_handler__sigaction_handler.sa_handler = reincarnate_handle_sigterm;
377 sa_dfl.sa_handler__sigaction_handler.sa_handler = SIG_DFL((__sighandler_t) 0);
378 refork:
379 if ((i=fork())) { /* parent */
380 int s; pid_t r;
381 reincarnate_child = i;
382 sigaction(SIGILL4, &sa, &sa4_prev);
383 sigaction(SIGTERM15, &sa, &sa15_prev);
384 sigaction(SIGCHLD17, &sa_dfl, &sa17_prev);
385 rewait:
386 r = waitpid(i, &s, 0);
387 if (r == (pid_t)-1) {
388 if (errno(*__errno_location ()) == EINTR4) goto rewait;
389 exit(EXIT_FAILURE1);
390 }
391 if (r != i) goto rewait;
392 if (WIFEXITED(s)((((__extension__ (((union { __typeof(s) __in; int __i; }) { .
__in = (s) }).__i))) & 0x7f) == 0)
393 && (WEXITSTATUS(s)((((__extension__ (((union { __typeof(s) __in; int __i; }) { .
__in = (s) }).__i))) & 0xff00) >> 8)
== EXIT_SUCCESS0
394 || WEXITSTATUS(s)((((__extension__ (((union { __typeof(s) __in; int __i; }) { .
__in = (s) }).__i))) & 0xff00) >> 8)
== EXIT_FAILURE1)) {
395 exit(WEXITSTATUS(s)((((__extension__ (((union { __typeof(s) __in; int __i; }) { .
__in = (s) }).__i))) & 0xff00) >> 8)
);
396 }
397 if (WIFEXITED(s)((((__extension__ (((union { __typeof(s) __in; int __i; }) { .
__in = (s) }).__i))) & 0x7f) == 0)
|| WIFSIGNALED(s)(((signed char) ((((__extension__ (((union { __typeof(s) __in
; int __i; }) { .__in = (s) }).__i))) & 0x7f) + 1) >>
1) > 0)
) {
398 sigaction(SIGILL4, &sa4_prev, NULL((void*)0));
399 sigaction(SIGTERM15, &sa15_prev, NULL((void*)0));
400 sigaction(SIGCHLD17, &sa17_prev, NULL((void*)0));
401 if (argv) {
402 if (execv(argv[0], argv) == -1) {
403 char buf[256];
404 fprintf(stderrstderr, "Reincarnate execv() failed: %d %s\n", errno(*__errno_location ()),
405 switch_strerror_r(errno(*__errno_location ()), buf, sizeof(buf)));
406 }
407 fprintf(stderrstderr, "Trying reincarnate-reexec plan B...\n");
408 if (execvp(argv[0], argv) == -1) {
409 char buf[256];
410 fprintf(stderrstderr, "Reincarnate execvp() failed: %d %s\n", errno(*__errno_location ()),
411 switch_strerror_r(errno(*__errno_location ()), buf, sizeof(buf)));
412 }
413 fprintf(stderrstderr, "Falling back to normal reincarnate behavior...\n");
414 goto refork;
415 } else goto refork;
416 }
417 goto rewait;
418 } else { /* child */
419#ifdef __linux__1
420 prctl(PR_SET_PDEATHSIG1, SIGTERM15);
421#endif
422 }
423}
424
425#endif
426
427static const char usage[] =
428 "Usage: freeswitch [OPTIONS]\n\n"
429 "These are the optional arguments you can pass to freeswitch:\n"
430#ifdef WIN32
431 "\t-service [name] -- start freeswitch as a service, cannot be used if loaded as a console app\n"
432 "\t-install [name] -- install freeswitch as a service, with optional service name\n"
433 "\t-uninstall -- remove freeswitch as a service\n"
434 "\t-monotonic-clock -- use monotonic clock as timer source\n"
435#else
436 "\t-nf -- no forking\n"
437 "\t-reincarnate -- restart the switch on an uncontrolled exit\n"
438 "\t-reincarnate-reexec -- run execv on a restart (helpful for upgrades)\n"
439 "\t-u [user] -- specify user to switch to\n"
440 "\t-g [group] -- specify group to switch to\n"
441#endif
442#ifdef HAVE_SETRLIMIT1
443#ifndef FS_64BIT1
444 "\t-waste -- allow memory waste\n"
445#endif
446 "\t-core -- dump cores\n"
447#endif
448 "\t-help -- this message\n"
449 "\t-version -- print the version and exit\n"
450 "\t-rp -- enable high(realtime) priority settings\n"
451 "\t-lp -- enable low priority settings\n"
452 "\t-np -- enable normal priority settings\n"
453 "\t-vg -- run under valgrind\n"
454 "\t-nosql -- disable internal sql scoreboard\n"
455 "\t-heavy-timer -- Heavy Timer, possibly more accurate but at a cost\n"
456 "\t-nonat -- disable auto nat detection\n"
457 "\t-nonatmap -- disable auto nat port mapping\n"
458 "\t-nocal -- disable clock calibration\n"
459 "\t-nort -- disable clock clock_realtime\n"
460 "\t-stop -- stop freeswitch\n"
461 "\t-nc -- do not output to a console and background\n"
462#ifndef WIN32
463 "\t-ncwait -- do not output to a console and background but wait until the system is ready before exiting (implies -nc)\n"
464#endif
465 "\t-c -- output to a console and stay in the foreground\n"
466 "\n\tOptions to control locations of files:\n"
467 "\t-base [basedir] -- alternate prefix directory\n"
468 "\t-cfgname [filename] -- alternate filename for FreeSWITCH main configuration file\n"
469 "\t-conf [confdir] -- alternate directory for FreeSWITCH configuration files\n"
470 "\t-log [logdir] -- alternate directory for logfiles\n"
471 "\t-run [rundir] -- alternate directory for runtime files\n"
472 "\t-db [dbdir] -- alternate directory for the internal database\n"
473 "\t-mod [moddir] -- alternate directory for modules\n"
474 "\t-htdocs [htdocsdir] -- alternate directory for htdocs\n"
475 "\t-scripts [scriptsdir] -- alternate directory for scripts\n"
476 "\t-temp [directory] -- alternate directory for temporary files\n"
477 "\t-grammar [directory] -- alternate directory for grammar files\n"
478 "\t-certs [directory] -- alternate directory for certificates\n"
479 "\t-recordings [directory] -- alternate directory for recordings\n"
480 "\t-storage [directory] -- alternate directory for voicemail storage\n"
481 "\t-cache [directory] -- alternate directory for cache files\n"
482 "\t-sounds [directory] -- alternate directory for sound files\n";
483
484
485/**
486 * Check if value string starts with "-"
487 */
488static switch_bool_t is_option(const char *p)
489{
490 /* skip whitespaces */
491 while ((*p == 13) || (*p == 10) || (*p == 9) || (*p == 32) || (*p == 11)) p++;
492 return (p[0] == '-');
493}
494
495
496/* the main application entry point */
497int main(int argc, char *argv[])
498{
499 char pid_path[PATH_MAX4096] = ""; /* full path to the pid file */
500 char pid_buffer[32] = ""; /* pid string */
501 char old_pid_buffer[32] = ""; /* pid string */
502 switch_size_t pid_len, old_pid_len;
503 const char *err = NULL((void*)0); /* error value for return from freeswitch initialization */
504#ifndef WIN32
505 switch_bool_t nf = SWITCH_FALSE; /* TRUE if we are running in nofork mode */
506 switch_bool_t do_wait = SWITCH_FALSE;
507 char *runas_user = NULL((void*)0);
508 char *runas_group = NULL((void*)0);
509 switch_bool_t reincarnate = SWITCH_FALSE, reincarnate_reexec = SWITCH_FALSE;
510 int fds[2] = { 0, 0 };
511#else
512 switch_bool_t win32_service = SWITCH_FALSE;
513#endif
514 switch_bool_t nc = SWITCH_FALSE; /* TRUE if we are running in noconsole mode */
515 pid_t pid = 0;
516 int i, x;
517 char *opts;
518 char opts_str[1024] = "";
519 char *local_argv[1024] = { 0 };
520 int local_argc = argc;
521 char *arg_argv[128] = { 0 };
522 int alt_dirs = 0, log_set = 0, run_set = 0, do_kill = 0;
523 int priority = 0;
524#ifdef __sun
525 switch_core_flag_t flags = SCF_USE_SQL;
526#else
527 switch_core_flag_t flags = SCF_USE_SQL | SCF_USE_AUTO_NAT | SCF_USE_NAT_MAPPING | SCF_CALIBRATE_CLOCK | SCF_USE_CLOCK_RT;
528#endif
529 int ret = 0;
530 switch_status_t destroy_status;
531 switch_file_t *fd;
532 switch_memory_pool_t *pool = NULL((void*)0);
533#ifdef HAVE_SETRLIMIT1
534#ifndef FS_64BIT1
535 switch_bool_t waste = SWITCH_FALSE;
536#endif
537#endif
538
539 for (x = 0; x < argc; x++) {
1
Loop condition is true. Entering loop body
2
Assuming 'x' is >= 'argc'
3
Loop condition is false. Execution continues on line 543
540 local_argv[x] = argv[x];
541 }
542
543 if ((opts = getenv("FREESWITCH_OPTS"))) {
4
Assuming 'opts' is null
5
Taking false branch
544 strncpy(opts_str, opts, sizeof(opts_str) - 1)__builtin_strncpy (opts_str, opts, sizeof(opts_str) - 1);
545 i = switch_separate_string(opts_str, ' ', arg_argv, (sizeof(arg_argv) / sizeof(arg_argv[0])));
546 for (x = 0; x < i; x++) {
547 local_argv[local_argc++] = arg_argv[x];
548 }
549 }
550
551 if (local_argv[0] && strstr(local_argv[0], "freeswitchd")) {
552 nc = SWITCH_TRUE;
553 }
554
555 for (x = 1; x < local_argc; x++) {
6
Loop condition is false. Execution continues on line 1031
556
557 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]))
558 continue;
559
560 if (!strcmp(local_argv[x], "-help")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-help") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-help"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-help") + 1) - (size_t
)(const void *)("-help") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-help") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-help") && ((size_t)(const void *)(("-help") + 1) -
(size_t)(const void *)("-help") == 1) ? __builtin_strcmp (local_argv
[x], "-help") : (__extension__ ({ const unsigned char *__s2 =
(const unsigned char *) (const char *) ("-help"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-help") && ((size_t)(const void *)(("-help") + 1) -
(size_t)(const void *)("-help") == 1) && (__s2_len =
__builtin_strlen ("-help"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-help") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-help"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-help"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-help"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-help"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-help")))); })
|| !strcmp(local_argv[x], "-h")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-h") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-h"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-h") + 1) - (size_t)(const void *
)("-h") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-h") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-h"
) && ((size_t)(const void *)(("-h") + 1) - (size_t)(const
void *)("-h") == 1) ? __builtin_strcmp (local_argv[x], "-h")
: (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) ("-h"); int __result = (((const unsigned
char *) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-h") && ((size_t)(const
void *)(("-h") + 1) - (size_t)(const void *)("-h") == 1) &&
(__s2_len = __builtin_strlen ("-h"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-h") : (- (__extension__ ({ const unsigned char
*__s2 = (const unsigned char *) (const char *) (local_argv[x
]); int __result = (((const unsigned char *) (const char *) (
"-h"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-h"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-h"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-h"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-h")))); })
|| !strcmp(local_argv[x], "-?")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-?") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-?"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-?") + 1) - (size_t)(const void *
)("-?") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-?") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-?"
) && ((size_t)(const void *)(("-?") + 1) - (size_t)(const
void *)("-?") == 1) ? __builtin_strcmp (local_argv[x], "-?")
: (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) ("-?"); int __result = (((const unsigned
char *) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-?") && ((size_t)(const
void *)(("-?") + 1) - (size_t)(const void *)("-?") == 1) &&
(__s2_len = __builtin_strlen ("-?"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-?") : (- (__extension__ ({ const unsigned char
*__s2 = (const unsigned char *) (const char *) (local_argv[x
]); int __result = (((const unsigned char *) (const char *) (
"-?"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-?"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-?"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-?"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-?")))); })
) {
561 printf("%s\n", usage);
562 exit(EXIT_SUCCESS0);
563 }
564#ifdef WIN32
565 if (x == 1 && !strcmp(local_argv[x], "-service")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-service")
&& (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-service"), (!((size_t)(const void *)((
local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]) ==
1) || __s1_len >= 4) && (!((size_t)(const void *)
(("-service") + 1) - (size_t)(const void *)("-service") == 1)
|| __s2_len >= 4)) ? __builtin_strcmp (local_argv[x], "-service"
) : (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-service"
) && ((size_t)(const void *)(("-service") + 1) - (size_t
)(const void *)("-service") == 1) ? __builtin_strcmp (local_argv
[x], "-service") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-service"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-service") && ((size_t)(const void *)(("-service")
+ 1) - (size_t)(const void *)("-service") == 1) && (
__s2_len = __builtin_strlen ("-service"), __s2_len < 4) ? (
__builtin_constant_p (local_argv[x]) && ((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) ? __builtin_strcmp (local_argv[x], "-service") : (
- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-service"))[0] - __s2[0]);
if (__s2_len > 0 && __result == 0) { __result = (
((const unsigned char *) (const char *) ("-service"))[1] - __s2
[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-service"))[2] -
__s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-service"))[3] -
__s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-service")))); })
) {
566 /* New installs will always have the service name specified, but keep a default for compat */
567 x++;
568 if (!switch_strlen_zero(local_argv[x])_zstr(local_argv[x])) {
569 switch_copy_string(service_name, local_argv[x], SERVICENAME_MAXLEN);
570 } else {
571 switch_copy_string(service_name, SERVICENAME_DEFAULT, SERVICENAME_MAXLEN);
572 }
573
574 win32_service = SWITCH_TRUE;
575 continue;
576 }
577
578 else if (x == 1 && !strcmp(local_argv[x], "-install")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-install")
&& (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-install"), (!((size_t)(const void *)((
local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]) ==
1) || __s1_len >= 4) && (!((size_t)(const void *)
(("-install") + 1) - (size_t)(const void *)("-install") == 1)
|| __s2_len >= 4)) ? __builtin_strcmp (local_argv[x], "-install"
) : (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-install"
) && ((size_t)(const void *)(("-install") + 1) - (size_t
)(const void *)("-install") == 1) ? __builtin_strcmp (local_argv
[x], "-install") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-install"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-install") && ((size_t)(const void *)(("-install")
+ 1) - (size_t)(const void *)("-install") == 1) && (
__s2_len = __builtin_strlen ("-install"), __s2_len < 4) ? (
__builtin_constant_p (local_argv[x]) && ((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) ? __builtin_strcmp (local_argv[x], "-install") : (
- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-install"))[0] - __s2[0]);
if (__s2_len > 0 && __result == 0) { __result = (
((const unsigned char *) (const char *) ("-install"))[1] - __s2
[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-install"))[2] -
__s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-install"))[3] -
__s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-install")))); })
) {
579 char servicePath[PATH_MAX4096];
580 char exePath[PATH_MAX4096];
581 SC_HANDLE hService;
582 SC_HANDLE hSCManager;
583 SERVICE_DESCRIPTION desc;
584 desc.lpDescription = "The FreeSWITCH service.";
585
586 x++;
587 if (!switch_strlen_zero(local_argv[x])_zstr(local_argv[x])) {
588 switch_copy_string(service_name, local_argv[x], SERVICENAME_MAXLEN);
589 } else {
590 switch_copy_string(service_name, SERVICENAME_DEFAULT, SERVICENAME_MAXLEN);
591 }
592
593 GetModuleFileName(NULL((void*)0), exePath, sizeof(exePath));
594 snprintf(servicePath, sizeof(servicePath), "%s -service %s", exePath, service_name);
595
596 /* Perform service installation */
597
598 hSCManager = OpenSCManager(NULL((void*)0), NULL((void*)0), SC_MANAGER_ALL_ACCESS);
599 if (!hSCManager) {
600 fprintf(stderrstderr, "Could not open service manager (%u).\n", GetLastError());
601 exit(EXIT_FAILURE1);
602 }
603
604 hService = CreateService(hSCManager, service_name, service_name, GENERIC_READ | GENERIC_EXECUTE | SERVICE_CHANGE_CONFIG, SERVICE_WIN32_OWN_PROCESS, SERVICE_AUTO_START, SERVICE_ERROR_IGNORE,
605 servicePath, NULL((void*)0), NULL((void*)0), NULL((void*)0), NULL((void*)0), /* Service start name */ NULL((void*)0));
606 if (!hService) {
607 fprintf(stderrstderr, "Error creating freeswitch service (%u).\n", GetLastError());
608 CloseServiceHandle(hSCManager);
609 exit(EXIT_FAILURE1);
610 }
611
612 /* Set desc, and don't care if it succeeds */
613 if (!ChangeServiceConfig2(hService, SERVICE_CONFIG_DESCRIPTION, &desc)) {
614 fprintf(stderrstderr, "FreeSWITCH installed, but could not set the service description (%u).\n", GetLastError());
615 }
616
617 CloseServiceHandle(hService);
618 CloseServiceHandle(hSCManager);
619 exit(EXIT_SUCCESS0);
620 }
621
622 else if (x == 1 && !strcmp(local_argv[x], "-uninstall")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-uninstall"
) && (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-uninstall"), (!((size_t)(const void *)
((local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x])
== 1) || __s1_len >= 4) && (!((size_t)(const void
*)(("-uninstall") + 1) - (size_t)(const void *)("-uninstall"
) == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv[
x], "-uninstall") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-uninstall"
) && ((size_t)(const void *)(("-uninstall") + 1) - (size_t
)(const void *)("-uninstall") == 1) ? __builtin_strcmp (local_argv
[x], "-uninstall") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-uninstall"); int
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-uninstall") && ((size_t)(const void *)(("-uninstall"
) + 1) - (size_t)(const void *)("-uninstall") == 1) &&
(__s2_len = __builtin_strlen ("-uninstall"), __s2_len < 4
) ? (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-uninstall"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-uninstall"))[0] - __s2[0]
); if (__s2_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) ("-uninstall"))[1] -
__s2[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-uninstall"))[2
] - __s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-uninstall"))[3
] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-uninstall")))); })
) {
623 SC_HANDLE hService;
624 SC_HANDLE hSCManager;
625 BOOL deleted;
626
627 x++;
628 if (!switch_strlen_zero(local_argv[x])_zstr(local_argv[x])) {
629 switch_copy_string(service_name, local_argv[x], SERVICENAME_MAXLEN);
630 } else {
631 switch_copy_string(service_name, SERVICENAME_DEFAULT, SERVICENAME_MAXLEN);
632 }
633
634 /* Do the uninstallation */
635 hSCManager = OpenSCManager(NULL((void*)0), NULL((void*)0), SC_MANAGER_ALL_ACCESS);
636 if (!hSCManager) {
637 fprintf(stderrstderr, "Could not open service manager (%u).\n", GetLastError());
638 exit(EXIT_FAILURE1);
639 }
640
641 hService = OpenService(hSCManager, service_name, DELETE);
642 if (!hService) {
643 fprintf(stderrstderr, "Error opening service (%u).\n", GetLastError());
644 CloseServiceHandle(hSCManager);
645 exit(EXIT_FAILURE1);
646 }
647
648 /* remove the service! */
649 deleted = DeleteService(hService);
650 if (!deleted) {
651 fprintf(stderrstderr, "Error deleting service (%u).\n", GetLastError());
652 }
653
654 CloseServiceHandle(hService);
655 CloseServiceHandle(hSCManager);
656 exit(deleted ? EXIT_SUCCESS0 : EXIT_FAILURE1);
657 }
658
659 else if (!strcmp(local_argv[x], "-monotonic-clock")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-monotonic-clock"
) && (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-monotonic-clock"), (!((size_t)(const void
*)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv[
x]) == 1) || __s1_len >= 4) && (!((size_t)(const void
*)(("-monotonic-clock") + 1) - (size_t)(const void *)("-monotonic-clock"
) == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv[
x], "-monotonic-clock") : (__builtin_constant_p (local_argv[x
]) && ((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-monotonic-clock") && ((size_t)(const void *)(("-monotonic-clock"
) + 1) - (size_t)(const void *)("-monotonic-clock") == 1) ? __builtin_strcmp
(local_argv[x], "-monotonic-clock") : (__extension__ ({ const
unsigned char *__s2 = (const unsigned char *) (const char *)
("-monotonic-clock"); int __result = (((const unsigned char *
) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-monotonic-clock") &&
((size_t)(const void *)(("-monotonic-clock") + 1) - (size_t)
(const void *)("-monotonic-clock") == 1) && (__s2_len
= __builtin_strlen ("-monotonic-clock"), __s2_len < 4) ? (
__builtin_constant_p (local_argv[x]) && ((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) ? __builtin_strcmp (local_argv[x], "-monotonic-clock"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-monotonic-clock"))[0] - __s2
[0]); if (__s2_len > 0 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-monotonic-clock"
))[1] - __s2[1]); if (__s2_len > 1 && __result == 0
) { __result = (((const unsigned char *) (const char *) ("-monotonic-clock"
))[2] - __s2[2]); if (__s2_len > 2 && __result == 0
) __result = (((const unsigned char *) (const char *) ("-monotonic-clock"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-monotonic-clock")))); })
) {
660 flags |= SCF_USE_WIN32_MONOTONIC;
661 }
662#else
663 else if (!strcmp(local_argv[x], "-u")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-u") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-u"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-u") + 1) - (size_t)(const void *
)("-u") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-u") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-u"
) && ((size_t)(const void *)(("-u") + 1) - (size_t)(const
void *)("-u") == 1) ? __builtin_strcmp (local_argv[x], "-u")
: (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) ("-u"); int __result = (((const unsigned
char *) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-u") && ((size_t)(const
void *)(("-u") + 1) - (size_t)(const void *)("-u") == 1) &&
(__s2_len = __builtin_strlen ("-u"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-u") : (- (__extension__ ({ const unsigned char
*__s2 = (const unsigned char *) (const char *) (local_argv[x
]); int __result = (((const unsigned char *) (const char *) (
"-u"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-u"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-u"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-u"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-u")))); })
) {
664 x++;
665 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
666 fprintf(stderrstderr, "Option '%s' requires an argument!\n", local_argv[x - 1]);
667 exit(EXIT_FAILURE1);
668 }
669 runas_user = local_argv[x];
670 }
671
672 else if (!strcmp(local_argv[x], "-g")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-g") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-g"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-g") + 1) - (size_t)(const void *
)("-g") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-g") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-g"
) && ((size_t)(const void *)(("-g") + 1) - (size_t)(const
void *)("-g") == 1) ? __builtin_strcmp (local_argv[x], "-g")
: (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) ("-g"); int __result = (((const unsigned
char *) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-g") && ((size_t)(const
void *)(("-g") + 1) - (size_t)(const void *)("-g") == 1) &&
(__s2_len = __builtin_strlen ("-g"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-g") : (- (__extension__ ({ const unsigned char
*__s2 = (const unsigned char *) (const char *) (local_argv[x
]); int __result = (((const unsigned char *) (const char *) (
"-g"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-g"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-g"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-g"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-g")))); })
) {
673 x++;
674 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
675 fprintf(stderrstderr, "Option '%s' requires an argument!\n", local_argv[x - 1]);
676 exit(EXIT_FAILURE1);
677 }
678 runas_group = local_argv[x];
679 }
680
681 else if (!strcmp(local_argv[x], "-nf")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-nf") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-nf"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-nf") + 1) - (size_t)(const void
*)("-nf") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-nf") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-nf"
) && ((size_t)(const void *)(("-nf") + 1) - (size_t)(
const void *)("-nf") == 1) ? __builtin_strcmp (local_argv[x],
"-nf") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("-nf"); int __result = (((const
unsigned char *) (const char *) (local_argv[x]))[0] - __s2[0
]); if (__s1_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) (local_argv[x]))[1]
- __s2[1]); if (__s1_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-nf"
) && ((size_t)(const void *)(("-nf") + 1) - (size_t)(
const void *)("-nf") == 1) && (__s2_len = __builtin_strlen
("-nf"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-nf") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-nf"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nf"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nf"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-nf"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-nf")))); })
) {
682 nf = SWITCH_TRUE;
683 }
684
685 else if (!strcmp(local_argv[x], "-reincarnate")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-reincarnate"
) && (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-reincarnate"), (!((size_t)(const void *
)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]
) == 1) || __s1_len >= 4) && (!((size_t)(const void
*)(("-reincarnate") + 1) - (size_t)(const void *)("-reincarnate"
) == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv[
x], "-reincarnate") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-reincarnate"
) && ((size_t)(const void *)(("-reincarnate") + 1) - (
size_t)(const void *)("-reincarnate") == 1) ? __builtin_strcmp
(local_argv[x], "-reincarnate") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-reincarnate"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-reincarnate") && ((size_t)(const void *)(("-reincarnate"
) + 1) - (size_t)(const void *)("-reincarnate") == 1) &&
(__s2_len = __builtin_strlen ("-reincarnate"), __s2_len <
4) ? (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-reincarnate"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-reincarnate"))[0] - __s2[
0]); if (__s2_len > 0 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-reincarnate"))
[1] - __s2[1]); if (__s2_len > 1 && __result == 0)
{ __result = (((const unsigned char *) (const char *) ("-reincarnate"
))[2] - __s2[2]); if (__s2_len > 2 && __result == 0
) __result = (((const unsigned char *) (const char *) ("-reincarnate"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-reincarnate")))); })
) {
686 reincarnate = SWITCH_TRUE;
687 }
688 else if (!strcmp(local_argv[x], "-reincarnate-reexec")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-reincarnate-reexec"
) && (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-reincarnate-reexec"), (!((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) || __s1_len >= 4) && (!((size_t)(const void
*)(("-reincarnate-reexec") + 1) - (size_t)(const void *)("-reincarnate-reexec"
) == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv[
x], "-reincarnate-reexec") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-reincarnate-reexec") && ((size_t)(const void *)((
"-reincarnate-reexec") + 1) - (size_t)(const void *)("-reincarnate-reexec"
) == 1) ? __builtin_strcmp (local_argv[x], "-reincarnate-reexec"
) : (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) ("-reincarnate-reexec"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-reincarnate-reexec") && ((size_t)(const void *)((
"-reincarnate-reexec") + 1) - (size_t)(const void *)("-reincarnate-reexec"
) == 1) && (__s2_len = __builtin_strlen ("-reincarnate-reexec"
), __s2_len < 4) ? (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[
x], "-reincarnate-reexec") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-reincarnate-reexec"))[0] - __s2[0]); if (__s2_len > 0 &&
__result == 0) { __result = (((const unsigned char *) (const
char *) ("-reincarnate-reexec"))[1] - __s2[1]); if (__s2_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) ("-reincarnate-reexec"))[2] - __s2[2]
); if (__s2_len > 2 && __result == 0) __result = (
((const unsigned char *) (const char *) ("-reincarnate-reexec"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-reincarnate-reexec")))); })
) {
689 reincarnate = SWITCH_TRUE;
690 reincarnate_reexec = SWITCH_TRUE;
691 }
692
693 else if (!strcmp(local_argv[x], "-version")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-version")
&& (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-version"), (!((size_t)(const void *)((
local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]) ==
1) || __s1_len >= 4) && (!((size_t)(const void *)
(("-version") + 1) - (size_t)(const void *)("-version") == 1)
|| __s2_len >= 4)) ? __builtin_strcmp (local_argv[x], "-version"
) : (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-version"
) && ((size_t)(const void *)(("-version") + 1) - (size_t
)(const void *)("-version") == 1) ? __builtin_strcmp (local_argv
[x], "-version") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-version"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-version") && ((size_t)(const void *)(("-version")
+ 1) - (size_t)(const void *)("-version") == 1) && (
__s2_len = __builtin_strlen ("-version"), __s2_len < 4) ? (
__builtin_constant_p (local_argv[x]) && ((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) ? __builtin_strcmp (local_argv[x], "-version") : (
- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-version"))[0] - __s2[0]);
if (__s2_len > 0 && __result == 0) { __result = (
((const unsigned char *) (const char *) ("-version"))[1] - __s2
[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-version"))[2] -
__s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-version"))[3] -
__s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-version")))); })
) {
694 fprintf(stdoutstdout, "FreeSWITCH version: %s (%s)\n", switch_version_full(), switch_version_revision_human());
695 exit(EXIT_SUCCESS0);
696 }
697#endif
698#ifdef HAVE_SETRLIMIT1
699 else if (!strcmp(local_argv[x], "-core")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-core") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-core"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-core") + 1) - (size_t
)(const void *)("-core") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-core") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-core") && ((size_t)(const void *)(("-core") + 1) -
(size_t)(const void *)("-core") == 1) ? __builtin_strcmp (local_argv
[x], "-core") : (__extension__ ({ const unsigned char *__s2 =
(const unsigned char *) (const char *) ("-core"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-core") && ((size_t)(const void *)(("-core") + 1) -
(size_t)(const void *)("-core") == 1) && (__s2_len =
__builtin_strlen ("-core"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-core") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-core"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-core"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-core"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-core"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-core")))); })
) {
700 struct rlimit rlp;
701 memset(&rlp, 0, sizeof(rlp));
702 rlp.rlim_cur = RLIM_INFINITY((__rlim_t) -1);
703 rlp.rlim_max = RLIM_INFINITY((__rlim_t) -1);
704 setrlimit(RLIMIT_CORERLIMIT_CORE, &rlp);
705 }
706
707 else if (!strcmp(local_argv[x], "-waste")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-waste") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-waste"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-waste") + 1) - (size_t
)(const void *)("-waste") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-waste") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-waste") && ((size_t)(const void *)(("-waste") + 1
) - (size_t)(const void *)("-waste") == 1) ? __builtin_strcmp
(local_argv[x], "-waste") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-waste"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-waste") && ((size_t)(const void *)(("-waste") + 1
) - (size_t)(const void *)("-waste") == 1) && (__s2_len
= __builtin_strlen ("-waste"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-waste") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-waste"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-waste"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-waste"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-waste"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-waste")))); })
) {
708#ifndef FS_64BIT1
709 fprintf(stderrstderr, "WARNING: Wasting up to 8 megs of memory per thread.\n");
710 sleep(2);
711 waste = SWITCH_TRUE;
712#endif
713 }
714
715 else if (!strcmp(local_argv[x], "-no-auto-stack")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-no-auto-stack"
) && (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-no-auto-stack"), (!((size_t)(const void
*)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv[
x]) == 1) || __s1_len >= 4) && (!((size_t)(const void
*)(("-no-auto-stack") + 1) - (size_t)(const void *)("-no-auto-stack"
) == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv[
x], "-no-auto-stack") : (__builtin_constant_p (local_argv[x])
&& ((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-no-auto-stack"
) && ((size_t)(const void *)(("-no-auto-stack") + 1) -
(size_t)(const void *)("-no-auto-stack") == 1) ? __builtin_strcmp
(local_argv[x], "-no-auto-stack") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-no-auto-stack"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-no-auto-stack") && ((size_t)(const void *)(("-no-auto-stack"
) + 1) - (size_t)(const void *)("-no-auto-stack") == 1) &&
(__s2_len = __builtin_strlen ("-no-auto-stack"), __s2_len <
4) ? (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-no-auto-stack"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-no-auto-stack"))[0] - __s2
[0]); if (__s2_len > 0 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-no-auto-stack"
))[1] - __s2[1]); if (__s2_len > 1 && __result == 0
) { __result = (((const unsigned char *) (const char *) ("-no-auto-stack"
))[2] - __s2[2]); if (__s2_len > 2 && __result == 0
) __result = (((const unsigned char *) (const char *) ("-no-auto-stack"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-no-auto-stack")))); })
) {
716#ifndef FS_64BIT1
717 waste = SWITCH_TRUE;
718#endif
719 }
720#endif
721 else if (!strcmp(local_argv[x], "-hp")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-hp") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-hp"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-hp") + 1) - (size_t)(const void
*)("-hp") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-hp") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-hp"
) && ((size_t)(const void *)(("-hp") + 1) - (size_t)(
const void *)("-hp") == 1) ? __builtin_strcmp (local_argv[x],
"-hp") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("-hp"); int __result = (((const
unsigned char *) (const char *) (local_argv[x]))[0] - __s2[0
]); if (__s1_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) (local_argv[x]))[1]
- __s2[1]); if (__s1_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-hp"
) && ((size_t)(const void *)(("-hp") + 1) - (size_t)(
const void *)("-hp") == 1) && (__s2_len = __builtin_strlen
("-hp"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-hp") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-hp"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-hp"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-hp"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-hp"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-hp")))); })
|| !strcmp(local_argv[x], "-rp")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-rp") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-rp"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-rp") + 1) - (size_t)(const void
*)("-rp") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-rp") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-rp"
) && ((size_t)(const void *)(("-rp") + 1) - (size_t)(
const void *)("-rp") == 1) ? __builtin_strcmp (local_argv[x],
"-rp") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("-rp"); int __result = (((const
unsigned char *) (const char *) (local_argv[x]))[0] - __s2[0
]); if (__s1_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) (local_argv[x]))[1]
- __s2[1]); if (__s1_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-rp"
) && ((size_t)(const void *)(("-rp") + 1) - (size_t)(
const void *)("-rp") == 1) && (__s2_len = __builtin_strlen
("-rp"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-rp") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-rp"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-rp"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-rp"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-rp"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-rp")))); })
) {
722 priority = 2;
723 }
724
725 else if (!strcmp(local_argv[x], "-lp")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-lp") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-lp"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-lp") + 1) - (size_t)(const void
*)("-lp") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-lp") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-lp"
) && ((size_t)(const void *)(("-lp") + 1) - (size_t)(
const void *)("-lp") == 1) ? __builtin_strcmp (local_argv[x],
"-lp") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("-lp"); int __result = (((const
unsigned char *) (const char *) (local_argv[x]))[0] - __s2[0
]); if (__s1_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) (local_argv[x]))[1]
- __s2[1]); if (__s1_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-lp"
) && ((size_t)(const void *)(("-lp") + 1) - (size_t)(
const void *)("-lp") == 1) && (__s2_len = __builtin_strlen
("-lp"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-lp") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-lp"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-lp"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-lp"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-lp"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-lp")))); })
) {
726 priority = -1;
727 }
728
729 else if (!strcmp(local_argv[x], "-np")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-np") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-np"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-np") + 1) - (size_t)(const void
*)("-np") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-np") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-np"
) && ((size_t)(const void *)(("-np") + 1) - (size_t)(
const void *)("-np") == 1) ? __builtin_strcmp (local_argv[x],
"-np") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("-np"); int __result = (((const
unsigned char *) (const char *) (local_argv[x]))[0] - __s2[0
]); if (__s1_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) (local_argv[x]))[1]
- __s2[1]); if (__s1_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-np"
) && ((size_t)(const void *)(("-np") + 1) - (size_t)(
const void *)("-np") == 1) && (__s2_len = __builtin_strlen
("-np"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-np") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-np"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-np"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-np"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-np"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-np")))); })
) {
730 priority = 1;
731 }
732
733 else if (!strcmp(local_argv[x], "-nosql")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-nosql") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-nosql"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-nosql") + 1) - (size_t
)(const void *)("-nosql") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-nosql") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-nosql") && ((size_t)(const void *)(("-nosql") + 1
) - (size_t)(const void *)("-nosql") == 1) ? __builtin_strcmp
(local_argv[x], "-nosql") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-nosql"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-nosql") && ((size_t)(const void *)(("-nosql") + 1
) - (size_t)(const void *)("-nosql") == 1) && (__s2_len
= __builtin_strlen ("-nosql"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-nosql") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-nosql"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nosql"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nosql"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-nosql"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-nosql")))); })
) {
734 flags &= ~SCF_USE_SQL;
735 }
736
737 else if (!strcmp(local_argv[x], "-nonat")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-nonat") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-nonat"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-nonat") + 1) - (size_t
)(const void *)("-nonat") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-nonat") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-nonat") && ((size_t)(const void *)(("-nonat") + 1
) - (size_t)(const void *)("-nonat") == 1) ? __builtin_strcmp
(local_argv[x], "-nonat") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-nonat"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-nonat") && ((size_t)(const void *)(("-nonat") + 1
) - (size_t)(const void *)("-nonat") == 1) && (__s2_len
= __builtin_strlen ("-nonat"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-nonat") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-nonat"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nonat"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nonat"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-nonat"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-nonat")))); })
) {
738 flags &= ~SCF_USE_AUTO_NAT;
739 }
740
741 else if (!strcmp(local_argv[x], "-nonatmap")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-nonatmap"
) && (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-nonatmap"), (!((size_t)(const void *)(
(local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]) ==
1) || __s1_len >= 4) && (!((size_t)(const void *)
(("-nonatmap") + 1) - (size_t)(const void *)("-nonatmap") == 1
) || __s2_len >= 4)) ? __builtin_strcmp (local_argv[x], "-nonatmap"
) : (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-nonatmap"
) && ((size_t)(const void *)(("-nonatmap") + 1) - (size_t
)(const void *)("-nonatmap") == 1) ? __builtin_strcmp (local_argv
[x], "-nonatmap") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-nonatmap"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-nonatmap") && ((size_t)(const void *)(("-nonatmap"
) + 1) - (size_t)(const void *)("-nonatmap") == 1) &&
(__s2_len = __builtin_strlen ("-nonatmap"), __s2_len < 4)
? (__builtin_constant_p (local_argv[x]) && ((size_t)
(const void *)((local_argv[x]) + 1) - (size_t)(const void *)(
local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-nonatmap"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-nonatmap"))[0] - __s2[0])
; if (__s2_len > 0 && __result == 0) { __result = (
((const unsigned char *) (const char *) ("-nonatmap"))[1] - __s2
[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-nonatmap"))[2]
- __s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-nonatmap"))[3]
- __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-nonatmap")))); })
) {
742 flags &= ~SCF_USE_NAT_MAPPING;
743 }
744
745 else if (!strcmp(local_argv[x], "-heavy-timer")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-heavy-timer"
) && (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-heavy-timer"), (!((size_t)(const void *
)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]
) == 1) || __s1_len >= 4) && (!((size_t)(const void
*)(("-heavy-timer") + 1) - (size_t)(const void *)("-heavy-timer"
) == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv[
x], "-heavy-timer") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-heavy-timer"
) && ((size_t)(const void *)(("-heavy-timer") + 1) - (
size_t)(const void *)("-heavy-timer") == 1) ? __builtin_strcmp
(local_argv[x], "-heavy-timer") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-heavy-timer"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-heavy-timer") && ((size_t)(const void *)(("-heavy-timer"
) + 1) - (size_t)(const void *)("-heavy-timer") == 1) &&
(__s2_len = __builtin_strlen ("-heavy-timer"), __s2_len <
4) ? (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-heavy-timer"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-heavy-timer"))[0] - __s2[
0]); if (__s2_len > 0 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-heavy-timer"))
[1] - __s2[1]); if (__s2_len > 1 && __result == 0)
{ __result = (((const unsigned char *) (const char *) ("-heavy-timer"
))[2] - __s2[2]); if (__s2_len > 2 && __result == 0
) __result = (((const unsigned char *) (const char *) ("-heavy-timer"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-heavy-timer")))); })
) {
746 flags |= SCF_USE_HEAVY_TIMING;
747 }
748
749 else if (!strcmp(local_argv[x], "-nort")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-nort") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-nort"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-nort") + 1) - (size_t
)(const void *)("-nort") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-nort") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-nort") && ((size_t)(const void *)(("-nort") + 1) -
(size_t)(const void *)("-nort") == 1) ? __builtin_strcmp (local_argv
[x], "-nort") : (__extension__ ({ const unsigned char *__s2 =
(const unsigned char *) (const char *) ("-nort"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-nort") && ((size_t)(const void *)(("-nort") + 1) -
(size_t)(const void *)("-nort") == 1) && (__s2_len =
__builtin_strlen ("-nort"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-nort") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-nort"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nort"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nort"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-nort"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-nort")))); })
) {
750 flags &= ~SCF_USE_CLOCK_RT;
751 }
752
753 else if (!strcmp(local_argv[x], "-nocal")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-nocal") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-nocal"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-nocal") + 1) - (size_t
)(const void *)("-nocal") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-nocal") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-nocal") && ((size_t)(const void *)(("-nocal") + 1
) - (size_t)(const void *)("-nocal") == 1) ? __builtin_strcmp
(local_argv[x], "-nocal") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-nocal"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-nocal") && ((size_t)(const void *)(("-nocal") + 1
) - (size_t)(const void *)("-nocal") == 1) && (__s2_len
= __builtin_strlen ("-nocal"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-nocal") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-nocal"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nocal"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nocal"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-nocal"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-nocal")))); })
) {
754 flags &= ~SCF_CALIBRATE_CLOCK;
755 }
756
757 else if (!strcmp(local_argv[x], "-vg")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-vg") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-vg"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-vg") + 1) - (size_t)(const void
*)("-vg") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-vg") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-vg"
) && ((size_t)(const void *)(("-vg") + 1) - (size_t)(
const void *)("-vg") == 1) ? __builtin_strcmp (local_argv[x],
"-vg") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("-vg"); int __result = (((const
unsigned char *) (const char *) (local_argv[x]))[0] - __s2[0
]); if (__s1_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) (local_argv[x]))[1]
- __s2[1]); if (__s1_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-vg"
) && ((size_t)(const void *)(("-vg") + 1) - (size_t)(
const void *)("-vg") == 1) && (__s2_len = __builtin_strlen
("-vg"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-vg") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-vg"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-vg"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-vg"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-vg"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-vg")))); })
) {
758 flags |= SCF_VG;
759 }
760
761 else if (!strcmp(local_argv[x], "-stop")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-stop") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-stop"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-stop") + 1) - (size_t
)(const void *)("-stop") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-stop") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-stop") && ((size_t)(const void *)(("-stop") + 1) -
(size_t)(const void *)("-stop") == 1) ? __builtin_strcmp (local_argv
[x], "-stop") : (__extension__ ({ const unsigned char *__s2 =
(const unsigned char *) (const char *) ("-stop"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-stop") && ((size_t)(const void *)(("-stop") + 1) -
(size_t)(const void *)("-stop") == 1) && (__s2_len =
__builtin_strlen ("-stop"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-stop") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-stop"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-stop"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-stop"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-stop"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-stop")))); })
) {
762 do_kill = SWITCH_TRUE;
763 }
764
765 else if (!strcmp(local_argv[x], "-nc")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-nc") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-nc"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-nc") + 1) - (size_t)(const void
*)("-nc") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-nc") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-nc"
) && ((size_t)(const void *)(("-nc") + 1) - (size_t)(
const void *)("-nc") == 1) ? __builtin_strcmp (local_argv[x],
"-nc") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("-nc"); int __result = (((const
unsigned char *) (const char *) (local_argv[x]))[0] - __s2[0
]); if (__s1_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) (local_argv[x]))[1]
- __s2[1]); if (__s1_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-nc"
) && ((size_t)(const void *)(("-nc") + 1) - (size_t)(
const void *)("-nc") == 1) && (__s2_len = __builtin_strlen
("-nc"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-nc") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-nc"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nc"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-nc"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-nc"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-nc")))); })
) {
766 nc = SWITCH_TRUE;
767 }
768#ifndef WIN32
769 else if (!strcmp(local_argv[x], "-ncwait")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-ncwait") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-ncwait"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-ncwait") + 1) - (
size_t)(const void *)("-ncwait") == 1) || __s2_len >= 4)) ?
__builtin_strcmp (local_argv[x], "-ncwait") : (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) &&
(__s1_len = __builtin_strlen (local_argv[x]), __s1_len < 4
) ? (__builtin_constant_p ("-ncwait") && ((size_t)(const
void *)(("-ncwait") + 1) - (size_t)(const void *)("-ncwait")
== 1) ? __builtin_strcmp (local_argv[x], "-ncwait") : (__extension__
({ const unsigned char *__s2 = (const unsigned char *) (const
char *) ("-ncwait"); int __result = (((const unsigned char *
) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-ncwait") && ((size_t
)(const void *)(("-ncwait") + 1) - (size_t)(const void *)("-ncwait"
) == 1) && (__s2_len = __builtin_strlen ("-ncwait"), __s2_len
< 4) ? (__builtin_constant_p (local_argv[x]) && (
(size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const void
*)(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-ncwait"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-ncwait"))[0] - __s2[0]); if
(__s2_len > 0 && __result == 0) { __result = (((const
unsigned char *) (const char *) ("-ncwait"))[1] - __s2[1]); if
(__s2_len > 1 && __result == 0) { __result = (((const
unsigned char *) (const char *) ("-ncwait"))[2] - __s2[2]); if
(__s2_len > 2 && __result == 0) __result = (((const
unsigned char *) (const char *) ("-ncwait"))[3] - __s2[3]); }
} __result; })))) : __builtin_strcmp (local_argv[x], "-ncwait"
)))); })
) {
770 nc = SWITCH_TRUE;
771 do_wait = SWITCH_TRUE;
772 }
773#endif
774 else if (!strcmp(local_argv[x], "-c")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-c") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-c"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-c") + 1) - (size_t)(const void *
)("-c") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-c") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-c"
) && ((size_t)(const void *)(("-c") + 1) - (size_t)(const
void *)("-c") == 1) ? __builtin_strcmp (local_argv[x], "-c")
: (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) ("-c"); int __result = (((const unsigned
char *) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-c") && ((size_t)(const
void *)(("-c") + 1) - (size_t)(const void *)("-c") == 1) &&
(__s2_len = __builtin_strlen ("-c"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-c") : (- (__extension__ ({ const unsigned char
*__s2 = (const unsigned char *) (const char *) (local_argv[x
]); int __result = (((const unsigned char *) (const char *) (
"-c"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-c"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-c"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-c"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-c")))); })
) {
775 nc = SWITCH_FALSE;
776 }
777
778 else if (!strcmp(local_argv[x], "-conf")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-conf") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-conf"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-conf") + 1) - (size_t
)(const void *)("-conf") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-conf") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-conf") && ((size_t)(const void *)(("-conf") + 1) -
(size_t)(const void *)("-conf") == 1) ? __builtin_strcmp (local_argv
[x], "-conf") : (__extension__ ({ const unsigned char *__s2 =
(const unsigned char *) (const char *) ("-conf"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-conf") && ((size_t)(const void *)(("-conf") + 1) -
(size_t)(const void *)("-conf") == 1) && (__s2_len =
__builtin_strlen ("-conf"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-conf") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-conf"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-conf"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-conf"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-conf"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-conf")))); })
) {
779 x++;
780 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
781 fprintf(stderrstderr, "When using -conf you must specify a config directory\n");
782 return 255;
783 }
784
785 SWITCH_GLOBAL_dirs.conf_dir = (char *) malloc(strlen(local_argv[x]) + 1);
786 if (!SWITCH_GLOBAL_dirs.conf_dir) {
787 fprintf(stderrstderr, "Allocation error\n");
788 return 255;
789 }
790 strcpy(SWITCH_GLOBAL_dirs.conf_dir, local_argv[x]);
791 alt_dirs++;
792 }
793
794 else if (!strcmp(local_argv[x], "-mod")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-mod") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-mod"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-mod") + 1) - (size_t
)(const void *)("-mod") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-mod") : (__builtin_constant_p (local_argv[
x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-mod") && ((size_t)(const void *)(("-mod") + 1) - (
size_t)(const void *)("-mod") == 1) ? __builtin_strcmp (local_argv
[x], "-mod") : (__extension__ ({ const unsigned char *__s2 = (
const unsigned char *) (const char *) ("-mod"); int __result =
(((const unsigned char *) (const char *) (local_argv[x]))[0]
- __s2[0]); if (__s1_len > 0 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
1] - __s2[1]); if (__s1_len > 1 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-mod") && ((size_t)(const void *)(("-mod") + 1) - (
size_t)(const void *)("-mod") == 1) && (__s2_len = __builtin_strlen
("-mod"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-mod") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-mod"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-mod"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-mod"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-mod"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-mod")))); })
) {
795 x++;
796 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
797 fprintf(stderrstderr, "When using -mod you must specify a module directory\n");
798 return 255;
799 }
800
801 SWITCH_GLOBAL_dirs.mod_dir = (char *) malloc(strlen(local_argv[x]) + 1);
802 if (!SWITCH_GLOBAL_dirs.mod_dir) {
803 fprintf(stderrstderr, "Allocation error\n");
804 return 255;
805 }
806 strcpy(SWITCH_GLOBAL_dirs.mod_dir, local_argv[x]);
807 }
808
809 else if (!strcmp(local_argv[x], "-log")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-log") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-log"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-log") + 1) - (size_t
)(const void *)("-log") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-log") : (__builtin_constant_p (local_argv[
x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-log") && ((size_t)(const void *)(("-log") + 1) - (
size_t)(const void *)("-log") == 1) ? __builtin_strcmp (local_argv
[x], "-log") : (__extension__ ({ const unsigned char *__s2 = (
const unsigned char *) (const char *) ("-log"); int __result =
(((const unsigned char *) (const char *) (local_argv[x]))[0]
- __s2[0]); if (__s1_len > 0 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
1] - __s2[1]); if (__s1_len > 1 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-log") && ((size_t)(const void *)(("-log") + 1) - (
size_t)(const void *)("-log") == 1) && (__s2_len = __builtin_strlen
("-log"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-log") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-log"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-log"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-log"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-log"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-log")))); })
) {
810 x++;
811 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
812 fprintf(stderrstderr, "When using -log you must specify a log directory\n");
813 return 255;
814 }
815
816 SWITCH_GLOBAL_dirs.log_dir = (char *) malloc(strlen(local_argv[x]) + 1);
817 if (!SWITCH_GLOBAL_dirs.log_dir) {
818 fprintf(stderrstderr, "Allocation error\n");
819 return 255;
820 }
821 strcpy(SWITCH_GLOBAL_dirs.log_dir, local_argv[x]);
822 alt_dirs++;
823 log_set = SWITCH_TRUE;
824 }
825
826 else if (!strcmp(local_argv[x], "-run")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-run") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-run"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-run") + 1) - (size_t
)(const void *)("-run") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-run") : (__builtin_constant_p (local_argv[
x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-run") && ((size_t)(const void *)(("-run") + 1) - (
size_t)(const void *)("-run") == 1) ? __builtin_strcmp (local_argv
[x], "-run") : (__extension__ ({ const unsigned char *__s2 = (
const unsigned char *) (const char *) ("-run"); int __result =
(((const unsigned char *) (const char *) (local_argv[x]))[0]
- __s2[0]); if (__s1_len > 0 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
1] - __s2[1]); if (__s1_len > 1 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-run") && ((size_t)(const void *)(("-run") + 1) - (
size_t)(const void *)("-run") == 1) && (__s2_len = __builtin_strlen
("-run"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-run") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-run"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-run"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-run"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-run"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-run")))); })
) {
827 x++;
828 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
829 fprintf(stderrstderr, "When using -run you must specify a pid directory\n");
830 return 255;
831 }
832
833 SWITCH_GLOBAL_dirs.run_dir = (char *) malloc(strlen(local_argv[x]) + 1);
834 if (!SWITCH_GLOBAL_dirs.run_dir) {
835 fprintf(stderrstderr, "Allocation error\n");
836 return 255;
837 }
838 strcpy(SWITCH_GLOBAL_dirs.run_dir, local_argv[x]);
839 run_set = SWITCH_TRUE;
840 }
841
842 else if (!strcmp(local_argv[x], "-db")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-db") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-db"), (!((size_t)(const void *)((local_argv[x]) + 1) - (size_t
)(const void *)(local_argv[x]) == 1) || __s1_len >= 4) &&
(!((size_t)(const void *)(("-db") + 1) - (size_t)(const void
*)("-db") == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv
[x], "-db") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-db"
) && ((size_t)(const void *)(("-db") + 1) - (size_t)(
const void *)("-db") == 1) ? __builtin_strcmp (local_argv[x],
"-db") : (__extension__ ({ const unsigned char *__s2 = (const
unsigned char *) (const char *) ("-db"); int __result = (((const
unsigned char *) (const char *) (local_argv[x]))[0] - __s2[0
]); if (__s1_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) (local_argv[x]))[1]
- __s2[1]); if (__s1_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("-db"
) && ((size_t)(const void *)(("-db") + 1) - (size_t)(
const void *)("-db") == 1) && (__s2_len = __builtin_strlen
("-db"), __s2_len < 4) ? (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-db") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-db"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-db"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-db"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-db"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-db")))); })
) {
843 x++;
844 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
845 fprintf(stderrstderr, "When using -db you must specify a db directory\n");
846 return 255;
847 }
848
849 SWITCH_GLOBAL_dirs.db_dir = (char *) malloc(strlen(local_argv[x]) + 1);
850 if (!SWITCH_GLOBAL_dirs.db_dir) {
851 fprintf(stderrstderr, "Allocation error\n");
852 return 255;
853 }
854 strcpy(SWITCH_GLOBAL_dirs.db_dir, local_argv[x]);
855 alt_dirs++;
856 }
857
858 else if (!strcmp(local_argv[x], "-scripts")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-scripts")
&& (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-scripts"), (!((size_t)(const void *)((
local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]) ==
1) || __s1_len >= 4) && (!((size_t)(const void *)
(("-scripts") + 1) - (size_t)(const void *)("-scripts") == 1)
|| __s2_len >= 4)) ? __builtin_strcmp (local_argv[x], "-scripts"
) : (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-scripts"
) && ((size_t)(const void *)(("-scripts") + 1) - (size_t
)(const void *)("-scripts") == 1) ? __builtin_strcmp (local_argv
[x], "-scripts") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-scripts"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-scripts") && ((size_t)(const void *)(("-scripts")
+ 1) - (size_t)(const void *)("-scripts") == 1) && (
__s2_len = __builtin_strlen ("-scripts"), __s2_len < 4) ? (
__builtin_constant_p (local_argv[x]) && ((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) ? __builtin_strcmp (local_argv[x], "-scripts") : (
- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-scripts"))[0] - __s2[0]);
if (__s2_len > 0 && __result == 0) { __result = (
((const unsigned char *) (const char *) ("-scripts"))[1] - __s2
[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-scripts"))[2] -
__s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-scripts"))[3] -
__s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-scripts")))); })
) {
859 x++;
860 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
861 fprintf(stderrstderr, "When using -scripts you must specify a scripts directory\n");
862 return 255;
863 }
864
865 SWITCH_GLOBAL_dirs.script_dir = (char *) malloc(strlen(local_argv[x]) + 1);
866 if (!SWITCH_GLOBAL_dirs.script_dir) {
867 fprintf(stderrstderr, "Allocation error\n");
868 return 255;
869 }
870 strcpy(SWITCH_GLOBAL_dirs.script_dir, local_argv[x]);
871 }
872
873 else if (!strcmp(local_argv[x], "-htdocs")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-htdocs") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-htdocs"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-htdocs") + 1) - (
size_t)(const void *)("-htdocs") == 1) || __s2_len >= 4)) ?
__builtin_strcmp (local_argv[x], "-htdocs") : (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) &&
(__s1_len = __builtin_strlen (local_argv[x]), __s1_len < 4
) ? (__builtin_constant_p ("-htdocs") && ((size_t)(const
void *)(("-htdocs") + 1) - (size_t)(const void *)("-htdocs")
== 1) ? __builtin_strcmp (local_argv[x], "-htdocs") : (__extension__
({ const unsigned char *__s2 = (const unsigned char *) (const
char *) ("-htdocs"); int __result = (((const unsigned char *
) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-htdocs") && ((size_t
)(const void *)(("-htdocs") + 1) - (size_t)(const void *)("-htdocs"
) == 1) && (__s2_len = __builtin_strlen ("-htdocs"), __s2_len
< 4) ? (__builtin_constant_p (local_argv[x]) && (
(size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const void
*)(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-htdocs"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-htdocs"))[0] - __s2[0]); if
(__s2_len > 0 && __result == 0) { __result = (((const
unsigned char *) (const char *) ("-htdocs"))[1] - __s2[1]); if
(__s2_len > 1 && __result == 0) { __result = (((const
unsigned char *) (const char *) ("-htdocs"))[2] - __s2[2]); if
(__s2_len > 2 && __result == 0) __result = (((const
unsigned char *) (const char *) ("-htdocs"))[3] - __s2[3]); }
} __result; })))) : __builtin_strcmp (local_argv[x], "-htdocs"
)))); })
) {
874 x++;
875 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
876 fprintf(stderrstderr, "When using -htdocs you must specify a htdocs directory\n");
877 return 255;
878 }
879
880 SWITCH_GLOBAL_dirs.htdocs_dir = (char *) malloc(strlen(local_argv[x]) + 1);
881 if (!SWITCH_GLOBAL_dirs.htdocs_dir) {
882 fprintf(stderrstderr, "Allocation error\n");
883 return 255;
884 }
885 strcpy(SWITCH_GLOBAL_dirs.htdocs_dir, local_argv[x]);
886 }
887
888 else if (!strcmp(local_argv[x], "-base")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-base") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-base"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-base") + 1) - (size_t
)(const void *)("-base") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-base") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-base") && ((size_t)(const void *)(("-base") + 1) -
(size_t)(const void *)("-base") == 1) ? __builtin_strcmp (local_argv
[x], "-base") : (__extension__ ({ const unsigned char *__s2 =
(const unsigned char *) (const char *) ("-base"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-base") && ((size_t)(const void *)(("-base") + 1) -
(size_t)(const void *)("-base") == 1) && (__s2_len =
__builtin_strlen ("-base"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-base") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-base"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-base"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-base"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-base"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-base")))); })
) {
889 x++;
890 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
891 fprintf(stderrstderr, "When using -base you must specify a base directory\n");
892 return 255;
893 }
894
895 SWITCH_GLOBAL_dirs.base_dir = (char *) malloc(strlen(local_argv[x]) + 1);
896 if (!SWITCH_GLOBAL_dirs.base_dir) {
897 fprintf(stderrstderr, "Allocation error\n");
898 return 255;
899 }
900 strcpy(SWITCH_GLOBAL_dirs.base_dir, local_argv[x]);
901 }
902
903 else if (!strcmp(local_argv[x], "-temp")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-temp") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-temp"), (!((size_t)(const void *)((local_argv[x]) + 1) - (
size_t)(const void *)(local_argv[x]) == 1) || __s1_len >= 4
) && (!((size_t)(const void *)(("-temp") + 1) - (size_t
)(const void *)("-temp") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-temp") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-temp") && ((size_t)(const void *)(("-temp") + 1) -
(size_t)(const void *)("-temp") == 1) ? __builtin_strcmp (local_argv
[x], "-temp") : (__extension__ ({ const unsigned char *__s2 =
(const unsigned char *) (const char *) ("-temp"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-temp") && ((size_t)(const void *)(("-temp") + 1) -
(size_t)(const void *)("-temp") == 1) && (__s2_len =
__builtin_strlen ("-temp"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-temp") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-temp"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-temp"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-temp"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-temp"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-temp")))); })
) {
904 x++;
905 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
906 fprintf(stderrstderr, "When using -temp you must specify a temp directory\n");
907 return 255;
908 }
909
910 SWITCH_GLOBAL_dirs.temp_dir = (char *) malloc(strlen(local_argv[x]) + 1);
911 if (!SWITCH_GLOBAL_dirs.temp_dir) {
912 fprintf(stderrstderr, "Allocation error\n");
913 return 255;
914 }
915 strcpy(SWITCH_GLOBAL_dirs.temp_dir, local_argv[x]);
916 }
917
918 else if (!strcmp(local_argv[x], "-storage")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-storage")
&& (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-storage"), (!((size_t)(const void *)((
local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]) ==
1) || __s1_len >= 4) && (!((size_t)(const void *)
(("-storage") + 1) - (size_t)(const void *)("-storage") == 1)
|| __s2_len >= 4)) ? __builtin_strcmp (local_argv[x], "-storage"
) : (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-storage"
) && ((size_t)(const void *)(("-storage") + 1) - (size_t
)(const void *)("-storage") == 1) ? __builtin_strcmp (local_argv
[x], "-storage") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-storage"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-storage") && ((size_t)(const void *)(("-storage")
+ 1) - (size_t)(const void *)("-storage") == 1) && (
__s2_len = __builtin_strlen ("-storage"), __s2_len < 4) ? (
__builtin_constant_p (local_argv[x]) && ((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) ? __builtin_strcmp (local_argv[x], "-storage") : (
- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-storage"))[0] - __s2[0]);
if (__s2_len > 0 && __result == 0) { __result = (
((const unsigned char *) (const char *) ("-storage"))[1] - __s2
[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-storage"))[2] -
__s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-storage"))[3] -
__s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-storage")))); })
) {
919 x++;
920 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
921 fprintf(stderrstderr, "When using -storage you must specify a storage directory\n");
922 return 255;
923 }
924
925 SWITCH_GLOBAL_dirs.storage_dir = (char *) malloc(strlen(local_argv[x]) + 1);
926 if (!SWITCH_GLOBAL_dirs.storage_dir) {
927 fprintf(stderrstderr, "Allocation error\n");
928 return 255;
929 }
930 strcpy(SWITCH_GLOBAL_dirs.storage_dir, local_argv[x]);
931 }
932
933 else if (!strcmp(local_argv[x], "-cache")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-cache") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-cache"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-cache") + 1) - (size_t
)(const void *)("-cache") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-cache") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-cache") && ((size_t)(const void *)(("-cache") + 1
) - (size_t)(const void *)("-cache") == 1) ? __builtin_strcmp
(local_argv[x], "-cache") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-cache"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-cache") && ((size_t)(const void *)(("-cache") + 1
) - (size_t)(const void *)("-cache") == 1) && (__s2_len
= __builtin_strlen ("-cache"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-cache") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-cache"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-cache"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-cache"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-cache"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-cache")))); })
) {
934 x++;
935 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
936 fprintf(stderrstderr, "When using -cache you must specify a cache directory\n");
937 return 255;
938 }
939
940 SWITCH_GLOBAL_dirs.cache_dir = (char *) malloc(strlen(local_argv[x]) + 1);
941 if (!SWITCH_GLOBAL_dirs.cache_dir) {
942 fprintf(stderrstderr, "Allocation error\n");
943 return 255;
944 }
945 strcpy(SWITCH_GLOBAL_dirs.cache_dir, local_argv[x]);
946 }
947
948 else if (!strcmp(local_argv[x], "-recordings")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-recordings"
) && (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-recordings"), (!((size_t)(const void *
)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]
) == 1) || __s1_len >= 4) && (!((size_t)(const void
*)(("-recordings") + 1) - (size_t)(const void *)("-recordings"
) == 1) || __s2_len >= 4)) ? __builtin_strcmp (local_argv[
x], "-recordings") : (__builtin_constant_p (local_argv[x]) &&
((size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const
void *)(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-recordings"
) && ((size_t)(const void *)(("-recordings") + 1) - (
size_t)(const void *)("-recordings") == 1) ? __builtin_strcmp
(local_argv[x], "-recordings") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-recordings"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-recordings") && ((size_t)(const void *)(("-recordings"
) + 1) - (size_t)(const void *)("-recordings") == 1) &&
(__s2_len = __builtin_strlen ("-recordings"), __s2_len < 4
) ? (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-recordings"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-recordings"))[0] - __s2[0
]); if (__s2_len > 0 && __result == 0) { __result =
(((const unsigned char *) (const char *) ("-recordings"))[1]
- __s2[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-recordings"))[
2] - __s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-recordings"))[
3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-recordings")))); })
) {
949 x++;
950 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
951 fprintf(stderrstderr, "When using -recordings you must specify a recording directory\n");
952 return 255;
953 }
954
955 SWITCH_GLOBAL_dirs.recordings_dir = (char *) malloc(strlen(local_argv[x]) + 1);
956 if (!SWITCH_GLOBAL_dirs.recordings_dir) {
957 fprintf(stderrstderr, "Allocation error\n");
958 return 255;
959 }
960 strcpy(SWITCH_GLOBAL_dirs.recordings_dir, local_argv[x]);
961 }
962
963 else if (!strcmp(local_argv[x], "-grammar")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-grammar")
&& (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-grammar"), (!((size_t)(const void *)((
local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]) ==
1) || __s1_len >= 4) && (!((size_t)(const void *)
(("-grammar") + 1) - (size_t)(const void *)("-grammar") == 1)
|| __s2_len >= 4)) ? __builtin_strcmp (local_argv[x], "-grammar"
) : (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-grammar"
) && ((size_t)(const void *)(("-grammar") + 1) - (size_t
)(const void *)("-grammar") == 1) ? __builtin_strcmp (local_argv
[x], "-grammar") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-grammar"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-grammar") && ((size_t)(const void *)(("-grammar")
+ 1) - (size_t)(const void *)("-grammar") == 1) && (
__s2_len = __builtin_strlen ("-grammar"), __s2_len < 4) ? (
__builtin_constant_p (local_argv[x]) && ((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) ? __builtin_strcmp (local_argv[x], "-grammar") : (
- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-grammar"))[0] - __s2[0]);
if (__s2_len > 0 && __result == 0) { __result = (
((const unsigned char *) (const char *) ("-grammar"))[1] - __s2
[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-grammar"))[2] -
__s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-grammar"))[3] -
__s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-grammar")))); })
) {
964 x++;
965 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
966 fprintf(stderrstderr, "When using -grammar you must specify a grammar directory\n");
967 return 255;
968 }
969
970 SWITCH_GLOBAL_dirs.grammar_dir = (char *) malloc(strlen(local_argv[x]) + 1);
971 if (!SWITCH_GLOBAL_dirs.grammar_dir) {
972 fprintf(stderrstderr, "Allocation error\n");
973 return 255;
974 }
975 strcpy(SWITCH_GLOBAL_dirs.grammar_dir, local_argv[x]);
976 }
977
978 else if (!strcmp(local_argv[x], "-certs")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-certs") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-certs"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-certs") + 1) - (size_t
)(const void *)("-certs") == 1) || __s2_len >= 4)) ? __builtin_strcmp
(local_argv[x], "-certs") : (__builtin_constant_p (local_argv
[x]) && ((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) && (__s1_len
= __builtin_strlen (local_argv[x]), __s1_len < 4) ? (__builtin_constant_p
("-certs") && ((size_t)(const void *)(("-certs") + 1
) - (size_t)(const void *)("-certs") == 1) ? __builtin_strcmp
(local_argv[x], "-certs") : (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) ("-certs"
); int __result = (((const unsigned char *) (const char *) (local_argv
[x]))[0] - __s2[0]); if (__s1_len > 0 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-certs") && ((size_t)(const void *)(("-certs") + 1
) - (size_t)(const void *)("-certs") == 1) && (__s2_len
= __builtin_strlen ("-certs"), __s2_len < 4) ? (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) ? __builtin_strcmp
(local_argv[x], "-certs") : (- (__extension__ ({ const unsigned
char *__s2 = (const unsigned char *) (const char *) (local_argv
[x]); int __result = (((const unsigned char *) (const char *)
("-certs"))[0] - __s2[0]); if (__s2_len > 0 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-certs"))[1] - __s2[1]); if (__s2_len > 1 && __result
== 0) { __result = (((const unsigned char *) (const char *) (
"-certs"))[2] - __s2[2]); if (__s2_len > 2 && __result
== 0) __result = (((const unsigned char *) (const char *) ("-certs"
))[3] - __s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-certs")))); })
) {
979 x++;
980 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
981 fprintf(stderrstderr, "When using -certs you must specify a certificates directory\n");
982 return 255;
983 }
984
985 SWITCH_GLOBAL_dirs.certs_dir = (char *) malloc(strlen(local_argv[x]) + 1);
986 if (!SWITCH_GLOBAL_dirs.certs_dir) {
987 fprintf(stderrstderr, "Allocation error\n");
988 return 255;
989 }
990 strcpy(SWITCH_GLOBAL_dirs.certs_dir, local_argv[x]);
991 }
992
993 else if (!strcmp(local_argv[x], "-sounds")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-sounds") &&
(__s1_len = __builtin_strlen (local_argv[x]), __s2_len = __builtin_strlen
("-sounds"), (!((size_t)(const void *)((local_argv[x]) + 1) -
(size_t)(const void *)(local_argv[x]) == 1) || __s1_len >=
4) && (!((size_t)(const void *)(("-sounds") + 1) - (
size_t)(const void *)("-sounds") == 1) || __s2_len >= 4)) ?
__builtin_strcmp (local_argv[x], "-sounds") : (__builtin_constant_p
(local_argv[x]) && ((size_t)(const void *)((local_argv
[x]) + 1) - (size_t)(const void *)(local_argv[x]) == 1) &&
(__s1_len = __builtin_strlen (local_argv[x]), __s1_len < 4
) ? (__builtin_constant_p ("-sounds") && ((size_t)(const
void *)(("-sounds") + 1) - (size_t)(const void *)("-sounds")
== 1) ? __builtin_strcmp (local_argv[x], "-sounds") : (__extension__
({ const unsigned char *__s2 = (const unsigned char *) (const
char *) ("-sounds"); int __result = (((const unsigned char *
) (const char *) (local_argv[x]))[0] - __s2[0]); if (__s1_len
> 0 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[1] - __s2[1]); if (__s1_len
> 1 && __result == 0) { __result = (((const unsigned
char *) (const char *) (local_argv[x]))[2] - __s2[2]); if (__s1_len
> 2 && __result == 0) __result = (((const unsigned
char *) (const char *) (local_argv[x]))[3] - __s2[3]); } } __result
; }))) : (__builtin_constant_p ("-sounds") && ((size_t
)(const void *)(("-sounds") + 1) - (size_t)(const void *)("-sounds"
) == 1) && (__s2_len = __builtin_strlen ("-sounds"), __s2_len
< 4) ? (__builtin_constant_p (local_argv[x]) && (
(size_t)(const void *)((local_argv[x]) + 1) - (size_t)(const void
*)(local_argv[x]) == 1) ? __builtin_strcmp (local_argv[x], "-sounds"
) : (- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-sounds"))[0] - __s2[0]); if
(__s2_len > 0 && __result == 0) { __result = (((const
unsigned char *) (const char *) ("-sounds"))[1] - __s2[1]); if
(__s2_len > 1 && __result == 0) { __result = (((const
unsigned char *) (const char *) ("-sounds"))[2] - __s2[2]); if
(__s2_len > 2 && __result == 0) __result = (((const
unsigned char *) (const char *) ("-sounds"))[3] - __s2[3]); }
} __result; })))) : __builtin_strcmp (local_argv[x], "-sounds"
)))); })
) {
994 x++;
995 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
996 fprintf(stderrstderr, "When using -sounds you must specify a sounds directory\n");
997 return 255;
998 }
999
1000 SWITCH_GLOBAL_dirs.sounds_dir = (char *) malloc(strlen(local_argv[x]) + 1);
1001 if (!SWITCH_GLOBAL_dirs.sounds_dir) {
1002 fprintf(stderrstderr, "Allocation error\n");
1003 return 255;
1004 }
1005 strcpy(SWITCH_GLOBAL_dirs.sounds_dir, local_argv[x]);
1006 }
1007
1008 else if (!strcmp(local_argv[x], "-cfgname")__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p
(local_argv[x]) && __builtin_constant_p ("-cfgname")
&& (__s1_len = __builtin_strlen (local_argv[x]), __s2_len
= __builtin_strlen ("-cfgname"), (!((size_t)(const void *)((
local_argv[x]) + 1) - (size_t)(const void *)(local_argv[x]) ==
1) || __s1_len >= 4) && (!((size_t)(const void *)
(("-cfgname") + 1) - (size_t)(const void *)("-cfgname") == 1)
|| __s2_len >= 4)) ? __builtin_strcmp (local_argv[x], "-cfgname"
) : (__builtin_constant_p (local_argv[x]) && ((size_t
)(const void *)((local_argv[x]) + 1) - (size_t)(const void *)
(local_argv[x]) == 1) && (__s1_len = __builtin_strlen
(local_argv[x]), __s1_len < 4) ? (__builtin_constant_p ("-cfgname"
) && ((size_t)(const void *)(("-cfgname") + 1) - (size_t
)(const void *)("-cfgname") == 1) ? __builtin_strcmp (local_argv
[x], "-cfgname") : (__extension__ ({ const unsigned char *__s2
= (const unsigned char *) (const char *) ("-cfgname"); int __result
= (((const unsigned char *) (const char *) (local_argv[x]))[
0] - __s2[0]); if (__s1_len > 0 && __result == 0) {
__result = (((const unsigned char *) (const char *) (local_argv
[x]))[1] - __s2[1]); if (__s1_len > 1 && __result ==
0) { __result = (((const unsigned char *) (const char *) (local_argv
[x]))[2] - __s2[2]); if (__s1_len > 2 && __result ==
0) __result = (((const unsigned char *) (const char *) (local_argv
[x]))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p
("-cfgname") && ((size_t)(const void *)(("-cfgname")
+ 1) - (size_t)(const void *)("-cfgname") == 1) && (
__s2_len = __builtin_strlen ("-cfgname"), __s2_len < 4) ? (
__builtin_constant_p (local_argv[x]) && ((size_t)(const
void *)((local_argv[x]) + 1) - (size_t)(const void *)(local_argv
[x]) == 1) ? __builtin_strcmp (local_argv[x], "-cfgname") : (
- (__extension__ ({ const unsigned char *__s2 = (const unsigned
char *) (const char *) (local_argv[x]); int __result = (((const
unsigned char *) (const char *) ("-cfgname"))[0] - __s2[0]);
if (__s2_len > 0 && __result == 0) { __result = (
((const unsigned char *) (const char *) ("-cfgname"))[1] - __s2
[1]); if (__s2_len > 1 && __result == 0) { __result
= (((const unsigned char *) (const char *) ("-cfgname"))[2] -
__s2[2]); if (__s2_len > 2 && __result == 0) __result
= (((const unsigned char *) (const char *) ("-cfgname"))[3] -
__s2[3]); } } __result; })))) : __builtin_strcmp (local_argv
[x], "-cfgname")))); })
) {
1009 x++;
1010 if (switch_strlen_zero(local_argv[x])_zstr(local_argv[x]) || is_option(local_argv[x])) {
1011 fprintf(stderrstderr, "When using -cfgname you must specify a filename\n");
1012 return 255;
1013 }
1014
1015 SWITCH_GLOBAL_filenames.conf_name = (char *) malloc(strlen(local_argv[x]) + 1);
1016 if (!SWITCH_GLOBAL_filenames.conf_name) {
1017 fprintf(stderrstderr, "Allocation error\n");
1018 return 255;
1019 }
1020 strcpy(SWITCH_GLOBAL_filenames.conf_name, local_argv[x]);
1021 }
1022
1023 /* Unknown option (always last!) */
1024 else {
1025 fprintf(stderrstderr, "Unknown option '%s', see '%s -help' for a list of valid options\n",
1026 local_argv[x], local_argv[0]);
1027 exit(EXIT_FAILURE1);
1028 }
1029 }
1030
1031 if (log_set && !run_set) {
1032 SWITCH_GLOBAL_dirs.run_dir = (char *) malloc(strlen(SWITCH_GLOBAL_dirs.log_dir) + 1);
1033 if (!SWITCH_GLOBAL_dirs.run_dir) {
1034 fprintf(stderrstderr, "Allocation error\n");
1035 return 255;
1036 }
1037 strcpy(SWITCH_GLOBAL_dirs.run_dir, SWITCH_GLOBAL_dirs.log_dir);
1038 }
1039
1040 if (do_kill) {
7
Taking false branch
1041 return freeswitch_kill_background();
1042 }
1043
1044 if (apr_initialize() != SWITCH_STATUS_SUCCESS) {
8
Taking false branch
1045 fprintf(stderrstderr, "FATAL ERROR! Could not initialize APR\n");
1046 return 255;
1047 }
1048
1049 if (alt_dirs && alt_dirs != 3) {
1050 fprintf(stderrstderr, "You must specify all or none of -conf, -log, and -db\n");
1051 return 255;
1052 }
1053
1054#ifndef FS_64BIT1
1055#if defined(HAVE_SETRLIMIT1) && !defined(__sun)
1056 if (!waste && !(flags & SCF_VG)) {
1057 struct rlimit rlp;
1058
1059 memset(&rlp, 0, sizeof(rlp));
1060 getrlimit(RLIMIT_STACKRLIMIT_STACK, &rlp);
1061
1062 if (rlp.rlim_cur != SWITCH_THREAD_STACKSIZE240 * 1024) {
1063 char buf[1024] = "";
1064 int i = 0;
1065
1066 memset(&rlp, 0, sizeof(rlp));
1067 rlp.rlim_cur = SWITCH_THREAD_STACKSIZE240 * 1024;
1068 rlp.rlim_max = SWITCH_SYSTEM_THREAD_STACKSIZE8192 * 1024;
1069 setrlimit(RLIMIT_STACKRLIMIT_STACK, &rlp);
1070
1071 apr_terminate();
1072 if (argv) ret = (int) execv(argv[0], argv);
1073
1074 for (i = 0; i < argc; i++) {
1075 switch_snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%s ", argv[i]);
1076 }
1077
1078 return system(buf);
1079 }
1080 }
1081#endif
1082#endif
1083 signal(SIGILL4, handle_SIGILL);
1084 signal(SIGTERM15, handle_SIGILL);
1085#ifndef WIN32
1086 if (do_wait) {
9
Taking false branch
1087 if (pipe(fds)) {
1088 fprintf(stderrstderr, "System Error!\n");
1089 exit(-1);
1090 }
1091
1092 signal(SIGCHLD17, handle_SIGCHLD);
1093 }
1094#endif
1095
1096 if (nc) {
10
Taking false branch
1097#ifdef WIN32
1098 FreeConsole();
1099#else
1100 if (!nf) {
1101 daemonize(do_wait ? fds : NULL((void*)0));
1102 }
1103#endif
1104 }
1105#ifndef WIN32
1106 if (reincarnate)
11
Taking false branch
1107 reincarnate_protect(reincarnate_reexec ? argv : NULL((void*)0));
1108#endif
1109
1110 switch (priority) {
12
Control jumps to the 'default' case at line 1120
1111 case 2:
1112 set_realtime_priority();
1113 break;
1114 case 1:
1115 set_normal_priority();
1116 break;
1117 case -1:
1118 set_low_priority();
1119 break;
1120 default:
1121 set_auto_priority();
1122 break;
13
Execution continues on line 1125
1123 }
1124
1125 switch_core_setrlimits();
1126
1127
1128#ifndef WIN32
1129 if (runas_user || runas_group) {
14
Taking false branch
1130 if (change_user_group(runas_user, runas_group) < 0) {
1131 fprintf(stderrstderr, "Failed to switch user [%s] / group [%s]\n",
1132 switch_strlen_zero(runas_user)_zstr(runas_user) ? "-" : runas_user,
1133 switch_strlen_zero(runas_group)_zstr(runas_group) ? "-" : runas_group);
1134 return 255;
1135 }
1136 }
1137#else
1138 if (win32_service) {
1139 /* Attempt to start service */
1140 SERVICE_TABLE_ENTRY dispatchTable[] = {
1141 {service_name, &service_main}
1142 ,
1143 {NULL((void*)0), NULL((void*)0)}
1144 };
1145 service_flags = flags; /* copy parsed flags for service startup */
1146
1147 if (StartServiceCtrlDispatcher(dispatchTable) == 0) {
1148 /* Not loaded as a service */
1149 fprintf(stderrstderr, "Error Freeswitch loaded as a console app with -service option\n");
1150 fprintf(stderrstderr, "To install the service load freeswitch with -install\n");
1151 }
1152 exit(EXIT_SUCCESS0);
1153 }
1154#endif
1155
1156 switch_core_set_globals();
1157
1158 pid = getpid();
1159
1160 memset(pid_buffer, 0, sizeof(pid_buffer));
1161 switch_snprintf(pid_path, sizeof(pid_path), "%s%s%s", SWITCH_GLOBAL_dirs.run_dir, SWITCH_PATH_SEPARATOR"/", pfile);
1162 switch_snprintf(pid_buffer, sizeof(pid_buffer), "%d", pid);
1163 pid_len = strlen(pid_buffer);
1164
1165 apr_pool_create(&pool, NULL)apr_pool_create_ex(&pool, ((void*)0), ((void*)0), ((void*
)0))
;
1166
1167 switch_dir_make_recursive(SWITCH_GLOBAL_dirs.run_dir, SWITCH_DEFAULT_DIR_PERMS0x0400 | 0x0200 | 0x0100 | 0x0040 | 0x0010, pool);
1168
1169 if (switch_file_open(&fd, pid_path, SWITCH_FOPEN_READ0x00001, SWITCH_FPROT_UREAD0x0400 | SWITCH_FPROT_UWRITE0x0200, pool) == SWITCH_STATUS_SUCCESS) {
15
Taking false branch
1170
1171 old_pid_len = sizeof(old_pid_buffer) -1;
1172 switch_file_read(fd, old_pid_buffer, &old_pid_len);
1173 switch_file_close(fd);
1174 }
1175
1176 if (switch_file_open(&fd,
16
Taking false branch
1177 pid_path,
1178 SWITCH_FOPEN_WRITE0x00002 | SWITCH_FOPEN_CREATE0x00004 | SWITCH_FOPEN_TRUNCATE0x00010,
1179 SWITCH_FPROT_UREAD0x0400 | SWITCH_FPROT_UWRITE0x0200, pool) != SWITCH_STATUS_SUCCESS) {
1180 fprintf(stderrstderr, "Cannot open pid file %s.\n", pid_path);
1181 return 255;
1182 }
1183
1184 if (switch_file_lock(fd, SWITCH_FLOCK_EXCLUSIVE2 | SWITCH_FLOCK_NONBLOCK0x0010) != SWITCH_STATUS_SUCCESS) {
17
Taking false branch
1185 fprintf(stderrstderr, "Cannot lock pid file %s.\n", pid_path);
1186 old_pid_len = strlen(old_pid_buffer);
1187 if (strlen(old_pid_buffer)) {
1188 switch_file_write(fd, old_pid_buffer, &old_pid_len);
1189 }
1190 return 255;
1191 }
1192
1193 switch_file_write(fd, pid_buffer, &pid_len);
1194
1195 if (switch_core_init_and_modload(flags, nc ? SWITCH_FALSE : SWITCH_TRUE, &err) != SWITCH_STATUS_SUCCESS) {
18
'?' condition is false
19
Taking false branch
1196 fprintf(stderrstderr, "Cannot Initialize [%s]\n", err);
1197 return 255;
1198 }
1199
1200#ifndef WIN32
1201 if (do_wait) {
20
Taking false branch
1202 if (fds[1] > -1) {
1203 int i, v = 1;
1204
1205 if ((i = write(fds[1], &v, sizeof(v))) < 0) {
1206 fprintf(stderrstderr, "System Error [%s]\n", strerror(errno(*__errno_location ())));
1207 } else {
1208 (void)read(fds[1], &v, sizeof(v));
1209 }
1210
1211 shutdown(fds[1], 2);
1212 close(fds[1]);
1213 fds[1] = -1;
1214 }
1215 }
1216#endif
1217
1218 switch_core_runtime_loop(nc);
1219
1220 destroy_status = switch_core_destroy();
1221
1222 switch_file_close(fd);
1223 apr_pool_destroy(pool);
1224
1225 if (unlink(pid_path) != 0) {
21
Taking false branch
1226 fprintf(stderrstderr, "Failed to delete pid file [%s]\n", pid_path);
1227 }
1228
1229 if (destroy_status == SWITCH_STATUS_RESTART) {
22
Assuming 'destroy_status' is equal to SWITCH_STATUS_RESTART
23
Taking true branch
1230 char buf[1024] = "";
1231 int j = 0;
1232
1233 switch_sleep(1000000);
1234 if (!argv || execv(argv[0], argv) == -1) {
24
Null pointer passed as an argument to a 'nonnull' parameter
1235 fprintf(stderrstderr, "Restart Failed [%s] resorting to plan b\n", strerror(errno(*__errno_location ())));
1236 for (j = 0; j < argc; j++) {
1237 switch_snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%s ", argv[j]);
1238 }
1239 ret = system(buf);
1240 }
1241 }
1242
1243 return ret;
1244}
1245
1246
1247/* For Emacs:
1248 * Local Variables:
1249 * mode:c
1250 * indent-tabs-mode:t
1251 * tab-width:4
1252 * c-basic-offset:4
1253 * End:
1254 * For VIM:
1255 * vim:set softtabstop=4 shiftwidth=4 tabstop=4 noet:
1256 */