Fix compilation on NetBSD.
[paraslash.git] / server.c
index 4ea6df0b2abdd550866a1189fc2c72de48106614..80cc8f46e36a6e70be2ed13da7bfcce6f5d5a27d 100644 (file)
--- a/server.c
+++ b/server.c
@@ -23,8 +23,8 @@
  *
  * The gory details, listed by topic:
  *
- *     - Audio format handlers: \ref mp3_afh.c, \ref ogg_afh.c \ref aac_afh.c,
- *     - Decoders: \ref mp3dec.c, \ref \ref oggdec.c, \ref aacdec.c,
+ *     - Audio format handlers: \ref mp3_afh.c, \ref ogg_afh.c, \ref aac_afh.c,
+ *     - Decoders: \ref mp3dec.c, \ref oggdec.c, \ref aacdec.c,
  *     - Volume normalizer: \ref compress.c,
  *     - Output: \ref alsa_write.c, \ref osx_write.c,
  *     - http: \ref http_recv.c, \ref http_send.c,
@@ -199,7 +199,6 @@ static void shm_init(void)
        mmd->events = 0;
        mmd->num_connects = 0;
        mmd->active_connections = 0;
-       strcpy(mmd->afd.path, "(none)");
        mmd->vss_status_flags = VSS_NEXT;
        mmd->new_vss_status_flags = VSS_NEXT;
        mmd->sender_cmd_data.cmd_num = -1;
@@ -304,12 +303,12 @@ static void setup_signal_handling(void)
 
 static unsigned init_network(void)
 {
-       int fd, ret = init_tcp_socket(conf.port_arg);
+       int fd, ret = para_listen(AF_UNSPEC, IPPROTO_TCP, conf.port_arg);
 
        if (ret < 0)
                goto err;
        fd = ret;
-       ret = mark_fd_nonblock(fd);
+       ret = mark_fd_nonblocking(fd);
        if (ret < 0)
                goto err;
        add_close_on_fork_list(fd); /* child doesn't need the listener */
@@ -364,7 +363,7 @@ static void init_afs(void)
        }
        close(afs_server_socket[1]);
        afs_socket = afs_server_socket[0];
-       ret = mark_fd_nonblock(afs_socket);
+       ret = mark_fd_nonblocking(afs_socket);
        if (ret < 0)
                exit(EXIT_FAILURE);
        add_close_on_fork_list(afs_socket);
@@ -458,7 +457,7 @@ int main(int argc, char *argv[])
 {
        /* listen on sock_fd, new connection on new_fd */
        int sockfd, new_fd;
-       struct sockaddr_in their_addr;
+       char *peer_name;
        int i, max_fileno, ret;
        pid_t chld_pid;
        fd_set rfds, wfds;
@@ -540,11 +539,11 @@ genocide:
        if (!FD_ISSET(sockfd, &rfds))
                goto repeat;
 
-       new_fd = para_accept(sockfd, &their_addr, sizeof(struct sockaddr_in));
+       new_fd = para_accept(sockfd, NULL, 0);
        if (new_fd < 0)
                goto repeat;
-       PARA_INFO_LOG("got connection from %s, forking\n",
-               inet_ntoa(their_addr.sin_addr));
+       peer_name = remote_name(new_fd);
+       PARA_INFO_LOG("got connection from %s, forking\n", peer_name);
        mmd->num_connects++;
        mmd->active_connections++;
        random();
@@ -567,7 +566,6 @@ genocide:
         */
        for (i = argc - 1; i >= 0; i--)
                memset(argv[i], 0, strlen(argv[i]));
-       sprintf(argv[0], "para_server (serving %s)",
-               inet_ntoa(their_addr.sin_addr));
-       return handle_connect(new_fd, &their_addr);
+       sprintf(argv[0], "para_server (serving %s)", peer_name);
+       return handle_connect(new_fd, peer_name);
 }