Don't compute attributes string twice.
[paraslash.git] / ortp_send.c
index 65c68418bc7cba6f9d6f327d6b95195dfb2f8c74..0c6cccb902a7be84f0f4ce1d40c699c7ff544cda 100644 (file)
@@ -1,19 +1,7 @@
 /*
  * Copyright (C) 2005-2007 Andre Noll <maan@systemlinux.org>
  *
- *     This program is free software; you can redistribute it and/or modify
- *     it under the terms of the GNU General Public License as published by
- *     the Free Software Foundation; either version 2 of the License, or
- *     (at your option) any later version.
- *
- *     This program is distributed in the hope that it will be useful,
- *     but WITHOUT ANY WARRANTY; without even the implied warranty of
- *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *     GNU General Public License for more details.
- *
- *     You should have received a copy of the GNU General Public License
- *     along with this program; if not, write to the Free Software
- *     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * Licensed under the GPL v2. For licencing details see COPYING.
  */
 
 /** \file ortp_send.c para_server's ortp sender */
 #include <ortp/port.h>
 
 #include "server.cmdline.h"
+#include "para.h"
+#include "error.h"
+#include "string.h"
+#include "afh.h"
+#include "afs.h"
 #include "server.h"
 #include "vss.h"
 #include "send.h"
 #include "list.h"
 #include "ortp.h"
-#include "string.h"
 
-/** \cond convert in_addr to ascii */
+/** Convert in_addr to ascii. */
 #define TARGET_ADDR(oc) inet_ntoa((oc)->addr)
-/** \endcond */
 
-/** describes one entry in the list of targets for the ortp sender */
+/** Describes one entry in the list of targets for the ortp sender. */
 struct ortp_target {
-/** address info */
+       /** Address info. */
        struct in_addr addr;
-/** whether the ortp sender is activated */
+       /** Whether the ortp sender is activated. */
        int status;
-/** the ortp timestamp increases by this amount */
+       /** The ortp timestamp increases by this amount. */
        uint32_t chunk_ts;
-/** the currently used timestamp for this target */
+       /** The currently used timestamp for this target. */
        uint32_t last_ts;
-/** the position of this target in the list of targets */
+       /** The position of this target in the list of targets. */
        struct list_head node;
-/** the UDP port */
+       /** The UDP port. */
        int port;
-/** non-zero if at least one chunk has been sent to this target */
+       /** Non-zero if at least one chunk has been sent to this target. */
        int streaming;
-/** the session pointer from libortp */
+       /** The session pointer from libortp. */
        RtpSession *session;
 };
 
@@ -171,13 +162,15 @@ static void ortp_send(long unsigned current_chunk, long unsigned chunks_sent,
 {
        struct ortp_target *ot, *tmp;
        size_t sendbuf_len;
-       size_t header_len = 0;
+       unsigned header_len = 0;
        int packet_type = ORTP_DATA;
        char *sendbuf, *header_buf = NULL;
        struct timeval *chunk_tv;
 
        if (self->status != SENDER_ON)
                return;
+
+//     PARA_NOTICE_LOG("sending %lu\n", current_chunk);
        chunk_tv = vss_chunk_time();
        if (!chunk_tv)
                return;
@@ -299,7 +292,7 @@ static void ortp_init_target_list(void)
                if (!p)
                        goto err;
                *p = '\0';
-               if (!inet_aton(arg, &addr))
+               if (!inet_pton(AF_INET, arg, &addr))
                        goto err;
                port = atoi(++p);
                if (port < 0 || port > 65535)