* Copyright © 2005-2007 Pierre Habouzit
*/
-#include <fcntl.h>
-#include <netinet/in.h>
-#include <sys/epoll.h>
-#include <sys/stat.h>
+#include "common.h"
#include <srs2.h>
-#include "common.h"
+#include "epoll.h"
#include "mem.h"
#include "buffer.h"
return 0;
}
-int start_listener(int epollfd, int port, bool decoder)
+int start_listener(int port, bool decoder)
{
struct sockaddr_in addr = {
.sin_family = AF_INET,
int main_loop(srs_t *srs, const char *domain, int port_enc, int port_dec)
{
- int exitcode = EXIT_SUCCESS;
- int epollfd = epoll_create(128);
-
- if (epollfd < 0) {
- UNIXERR("epoll_create");
- exitcode = EXIT_FAILURE;
- goto error;
- }
-
- if (start_listener(epollfd, port_enc, false) < 0)
+ if (start_listener(port_enc, false) < 0)
return EXIT_FAILURE;
- if (start_listener(epollfd, port_dec, true) < 0)
+ if (start_listener(port_dec, true) < 0)
return EXIT_FAILURE;
while (!sigint) {
if (n < 0) {
if (errno != EAGAIN && errno != EINTR) {
UNIXERR("epoll_wait");
- exitcode = EXIT_FAILURE;
- break;
+ return EXIT_FAILURE;
}
continue;
}
}
}
- close(epollfd);
-
- error:
- return exitcode;
+ return EXIT_SUCCESS;
}
static srs_t *srs_read_secrets(const char *sfile)
int res;
srs_t *srs;
- if (atexit(common_shutdown)) {
- fputs("Cannot hook my atexit function, quitting !\n", stderr);
- return EXIT_FAILURE;
- }
- common_initialize();
-
- for (int c = 0; (c = getopt(argc, argv, "he:d:p:u")) >= 0; ) {
+ for (int c = 0; (c = getopt(argc, argv, "hu" "e:d:p:")) >= 0; ) {
switch (c) {
case 'e':
port_enc = atoi(optarg);