]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - http_send.c
make chunk_size a local var and rename it to period_size
[paraslash.git] / http_send.c
index c574ba3ca91f58c5114f08e4191c624898bd1a04..bb9534cb6bea3a8953a01ad09213994f1d6ade4b 100644 (file)
@@ -178,23 +178,6 @@ static int queue_packet(struct http_client *hc, const char *buf, size_t len)
        return 1;
 }
 
-static int write_ok(int fd)
-{
-       struct timeval tv = {0, 0};
-       fd_set wfds;
-       int ret;
-again:
-       FD_ZERO(&wfds);
-       FD_SET(fd, &wfds);
-       ret = select(fd + 1, NULL, &wfds, NULL, &tv);
-       if (ret < 0 && errno == EINTR)
-               goto again;
-       if (ret < 0)
-               ret = -E_WRITE_OK;
-       return ret;
-}
-
-
 static int send_queued_packets(struct http_client *hc)
 {
        int ret;
@@ -205,7 +188,7 @@ static int send_queued_packets(struct http_client *hc)
        list_for_each_entry_safe(qp, tmp, &hc->packet_queue, node) {
                ret = write_ok(hc->fd);
                if (ret <= 0)
-                       return ret;
+                       return ret? -E_WRITE_OK : 0;
                ret = write(hc->fd, qp->packet, qp->len);
                if (ret < 0)
                        return ret;
@@ -222,9 +205,9 @@ static int send_queued_packets(struct http_client *hc)
        return 1;
 }
 
-static void http_send(__unused struct audio_format *af,
+static void http_send(__a_unused struct audio_format *af,
                long unsigned current_chunk,
-               __unused long unsigned chunks_sent, const char *buf, size_t len)
+               __a_unused long unsigned chunks_sent, const char *buf, size_t len)
 {
        struct http_client *hc, *tmp;
        int ret;
@@ -283,12 +266,12 @@ static int host_in_access_perm_list(struct http_client *hc)
        return 0;
 }
 
-static void http_post_select(__unused struct audio_format *af, fd_set *rfds,
+static void http_post_select(__a_unused struct audio_format *af, fd_set *rfds,
                fd_set *wfds)
 {
        int i = -1, match;
        struct http_client *hc, *tmp;
-       char *err_msg;
+       const char *err_msg;
 
        list_for_each_entry_safe(hc, tmp, &clients, node) {
                i++;
@@ -363,6 +346,7 @@ err_out:
        free(hc);
 }
 
+/* FIXME: use para_fdset */
 static void http_pre_select(struct audio_format *af, int *max_fileno, fd_set *rfds,
                fd_set *wfds)
 {
@@ -371,7 +355,7 @@ static void http_pre_select(struct audio_format *af, int *max_fileno, fd_set *rf
        if (server_fd < 0)
                return;
        FD_SET(server_fd, rfds);
-       *max_fileno = MAX(*max_fileno, server_fd);
+       *max_fileno = PARA_MAX(*max_fileno, server_fd);
        list_for_each_entry_safe(hc, tmp, &clients, node) {
                //PARA_DEBUG_LOG("hc %p on fd %d: status %d\n", hc, hc->fd, hc->status);
                hc->check_r = 0;
@@ -382,20 +366,20 @@ static void http_pre_select(struct audio_format *af, int *max_fileno, fd_set *rf
                        break;
                case HTTP_CONNECTED: /* need to recv get request */
                        FD_SET(hc->fd, rfds);
-                       *max_fileno = MAX(*max_fileno, hc->fd);
+                       *max_fileno = PARA_MAX(*max_fileno, hc->fd);
                        hc->check_r = 1;
                        break;
                case HTTP_GOT_GET_REQUEST: /* need to send ok msg */
                case HTTP_INVALID_GET_REQUEST: /* need to send err msg */
                        FD_SET(hc->fd, wfds);
-                       *max_fileno = MAX(*max_fileno, hc->fd);
+                       *max_fileno = PARA_MAX(*max_fileno, hc->fd);
                        hc->check_w = 1;
                        break;
                case HTTP_SENT_OK_MSG:
                        if (!af || !afs_playing())
                                break; /* wait until server starts playing */
                        FD_SET(hc->fd, wfds);
-                       *max_fileno = MAX(*max_fileno, hc->fd);
+                       *max_fileno = PARA_MAX(*max_fileno, hc->fd);
                        hc->check_w = 1;
                        break;
                }
@@ -415,14 +399,14 @@ static int open_tcp_port(int port)
        return 1;
 }
 
-static int http_com_on(__unused struct sender_command_data *scd)
+static int http_com_on(__a_unused struct sender_command_data *scd)
 {
        if (self->status == SENDER_ON)
                return 1;
        return open_tcp_port(conf.http_port_arg);
 }
 
-static int http_com_off(__unused struct sender_command_data *scd)
+static int http_com_off(__a_unused struct sender_command_data *scd)
 {
        self->status = SENDER_OFF;
        if (server_fd > 0) {