return 0;
}
+static int make_socket_fd(const char* address, int flags) {
+ _cleanup_free_ char *p = NULL;
+ SocketAddress a;
+ int fd, r;
+
+ r = socket_address_parse(&a, address);
+ if (r < 0) {
+ log_error("Failed to parse socket: %s", strerror(-r));
+ return r;
+ }
+
+ fd = socket_address_listen(&a, flags, SOMAXCONN, SOCKET_ADDRESS_DEFAULT, NULL, false, false, 0755, 0644, NULL);
+ if (fd < 0) {
+ log_error("Failed to listen: %s", strerror(-r));
+ return fd;
+ }
+
+ r = socket_address_print(&a, &p);
+ if (r < 0) {
+ log_error("socket_address_print(): %s", strerror(-r));
+ close_nointr_nofail(fd);
+ return r;
+ }
+
+ log_info("Listening on %s", p);
+
+ return fd;
+}
+
static int open_sockets(int *epoll_fd, bool accept) {
int n, fd, r;
int count = 0;
return fd;
}
+ assert(fd == SD_LISTEN_FDS_START + count);
count ++;
}
int r, n;
int epoll_fd = -1;
- log_set_max_level(LOG_DEBUG);
- log_show_color(true);
log_parse_environment();
+ log_open();
r = parse_argv(argc, argv);
if (r <= 0)
if (n < 0)
return EXIT_FAILURE;
- while (true) {
+ for (;;) {
struct epoll_event event;
r = epoll_wait(epoll_fd, &event, 1, -1);