]> git.pond.sub.org Git - empserver/blobdiff - src/lib/gen/ioqueue.c
License upgrade to GPL version 3 or later
[empserver] / src / lib / gen / ioqueue.c
index 420e9c137040d17ea930ace56af9338078d48a2c..c91acc1e2b74358f1a441d6ac4c2788c0dcf49f6 100644 (file)
@@ -1,11 +1,11 @@
 /*
  *  Empire - A multi-player, client/server Internet based war game.
- *  Copyright (C) 1986-2008, Dave Pare, Jeff Bailey, Thomas Ruschak,
- *                           Ken Stevens, Steve McClure
+ *  Copyright (C) 1986-2011, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ *                Ken Stevens, Steve McClure, Markus Armbruster
  *
- *  This program is free software; you can redistribute it and/or modify
+ *  Empire 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
+ *  the Free Software Foundation, either version 3 of the License, or
  *  (at your option) any later version.
  *
  *  This program is distributed in the hope that it will be useful,
@@ -14,8 +14,7 @@
  *  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-1307  USA
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  *  ---
  *
@@ -26,9 +25,9 @@
  *  ---
  *
  *  ioqueue.c: Read and write i/o queues
- * 
+ *
  *  Known contributors to this file:
- *     
+ *
  */
 
 /*
 #include "misc.h"
 #include "queue.h"
 
+struct io {
+    struct emp_qelem queue;
+    int size;
+    int nbytes;
+    int offset;
+    char *data;
+};
+
+struct ioqueue {
+    struct io list;
+    int bufsize;
+    int cc;
+};
+
 static int ioqtocbuf(struct ioqueue *ioq, char *buf, int cc, int stopc);
 static int ioqtoiov(struct ioqueue *ioq, struct iovec *iov, int max);
 static int ioqtobuf(struct ioqueue *ioq, char *buf, int cc);
@@ -62,7 +75,7 @@ ioq_create(int size)
     ioq->list.nbytes = 0;
     ioq->list.offset = 0;
     ioq->list.size = 0;
-    ioq->list.data = 0;
+    ioq->list.data = NULL;
     ioq->bufsize = size;
     ioq->cc = 0;
     return ioq;
@@ -115,10 +128,11 @@ ioq_peek(struct ioqueue *ioq, char *buf, int cc)
     return ioqtobuf(ioq, buf, cc);
 }
 
-int
+void
 ioq_dequeue(struct ioqueue *ioq, int cc)
 {
-    return removecc(ioq, cc);
+    int res = removecc(ioq, cc);
+    CANT_HAPPEN(res != cc);
 }
 
 void