crypt.c: fix memory leak in para_decrypt_buffer()
[paraslash.git] / dccp_send.c
index 3592a28..c335e76 100644 (file)
@@ -1,5 +1,5 @@
 /*
 /*
- * Copyright (C) 2006 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-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
  *
  *     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
@@ -26,7 +26,7 @@
 #include "server.h"
 #include "net.h"
 #include "list.h"
 #include "server.h"
 #include "net.h"
 #include "list.h"
-#include "afs.h"
+#include "vss.h"
 #include "send.h"
 #include "dccp.h"
 #include "error.h"
 #include "send.h"
 #include "dccp.h"
 #include "error.h"
@@ -76,7 +76,7 @@ static void dccp_post_select(fd_set *rfds, __a_unused fd_set *wfds)
        }
        PARA_NOTICE_LOG("connection from %s\n", inet_ntoa(dc->addr.sin_addr));
        dc->fd = ret;
        }
        PARA_NOTICE_LOG("connection from %s\n", inet_ntoa(dc->addr.sin_addr));
        dc->fd = ret;
-       list_add(&dc->node, &clients);
+       para_list_add(&dc->node, &clients);
        add_close_on_fork_list(dc->fd);
        mark_fd_nonblock(dc->fd);
 }
        add_close_on_fork_list(dc->fd);
        mark_fd_nonblock(dc->fd);
 }
@@ -120,7 +120,8 @@ static void dccp_shutdown_client(struct dccp_client *dc)
        free(dc);
 }
 
        free(dc);
 }
 
-#define DCCP_RETRIES 100
+/** give up if write would block that many times */
+#define DCCP_WRITE_RETRIES 100
 
 static int dccp_write(int fd, const char *buf, size_t len)
 {
 
 static int dccp_write(int fd, const char *buf, size_t len)
 {
@@ -130,9 +131,9 @@ again:
        size = PARA_MIN(1024, len - written);
        ret = write(fd, buf + written, size);
        if (ret < 0) {
        size = PARA_MIN(1024, len - written);
        ret = write(fd, buf + written, size);
        if (ret < 0) {
-               if (errno != EAGAIN || !retries++ > DCCP_RETRIES)
+               if (errno != EAGAIN || !retries++ > DCCP_WRITE_RETRIES)
                        goto err_out;
                        goto err_out;
-               PARA_DEBUG_LOG("EAGAIN #%d@%d/%d\n", retries, written, len);
+               PARA_DEBUG_LOG("EAGAIN #%d@%zd/%zd\n", retries, written, len);
                goto again;
        }
        retries = 0;
                goto again;
        }
        retries = 0;
@@ -165,7 +166,7 @@ static void dccp_send(long unsigned current_chunk,
                if (!ret)
                        continue;
                if (!dc->header_sent && current_chunk) {
                if (!ret)
                        continue;
                if (!dc->header_sent && current_chunk) {
-                       header_buf = afs_get_header(&header_len);
+                       header_buf = vss_get_header(&header_len);
                        if (header_buf && header_len > 0) {
                                ret = dccp_write(dc->fd, header_buf, header_len);
                                if (ret != header_len) {
                        if (header_buf && header_len > 0) {
                                ret = dccp_write(dc->fd, header_buf, header_len);
                                if (ret != header_len) {