|
@@ -240,7 +240,8 @@ int main (int argc, char **argv)
|
240
|
240
|
int opt, timeout = 1800, family = AF_INET;
|
241
|
241
|
int daemonize = FALSE;
|
242
|
242
|
char *forward_service = NULL, *reverse_service = NULL,
|
243
|
|
- *user = NULL, *domain = NULL, *chroot_dir = NULL, separator = NULL;
|
|
243
|
+ *user = NULL, *domain = NULL, *chroot_dir = NULL;
|
|
244
|
+ char separator = '=';
|
244
|
245
|
int forward_sock, reverse_sock;
|
245
|
246
|
char *secret_file = NULL, *pid_file = NULL;
|
246
|
247
|
FILE *pf = NULL, *sf = NULL;
|
|
@@ -272,7 +273,7 @@ int main (int argc, char **argv)
|
272
|
273
|
domain = strdup(optarg);
|
273
|
274
|
break;
|
274
|
275
|
case 'a':
|
275
|
|
- separator = (char)*optarg;
|
|
276
|
+ separator = *optarg;
|
276
|
277
|
break;
|
277
|
278
|
case 'f':
|
278
|
279
|
forward_service = strdup(optarg);
|
|
@@ -323,7 +324,7 @@ int main (int argc, char **argv)
|
323
|
324
|
if ( getenv("SRS_DOMAIN") != NULL )
|
324
|
325
|
domain = strdup(getenv("SRS_DOMAIN"));
|
325
|
326
|
if ( getenv("SRS_SEPARATOR") != NULL )
|
326
|
|
- separator = (char)*getenv("SRS_SEPARATOR");
|
|
327
|
+ separator = *getenv("SRS_SEPARATOR");
|
327
|
328
|
if ( getenv("SRS_FORWARD_PORT") != NULL )
|
328
|
329
|
forward_service = strdup(getenv("SRS_FORWARD_PORT"));
|
329
|
330
|
if ( getenv("SRS_REVERSE_PORT") != NULL )
|
|
@@ -369,6 +370,11 @@ int main (int argc, char **argv)
|
369
|
370
|
return EXIT_FAILURE;
|
370
|
371
|
}
|
371
|
372
|
|
|
373
|
+ if (separator != '=' && separator != '+' && separator != '-') {
|
|
374
|
+ fprintf (stderr, "%s: SRS separator character must be one of '=+-'\n", self);
|
|
375
|
+ return EXIT_FAILURE;
|
|
376
|
+ }
|
|
377
|
+
|
372
|
378
|
/* The stuff we do first may not be possible from within chroot or without privileges */
|
373
|
379
|
|
374
|
380
|
/* Open pid file for writing (the actual process ID is filled in later) */
|
|
@@ -461,9 +467,8 @@ int main (int argc, char **argv)
|
461
|
467
|
srs_add_secret (srs, secret);
|
462
|
468
|
}
|
463
|
469
|
fclose (sf);
|
464
|
|
- if (separator && srs_set_separator (srs, separator) != SRS_SUCCESS) {
|
465
|
|
- srs_set_separator (srs, '=');
|
466
|
|
- }
|
|
470
|
+
|
|
471
|
+ srs_set_separator (srs, separator);
|
467
|
472
|
|
468
|
473
|
fds[0].fd = forward_sock;
|
469
|
474
|
fds[0].events = POLLIN;
|