summaryrefslogtreecommitdiff
path: root/data/lighttpd/lighttpd-1.4.53/src/joblist.c
diff options
context:
space:
mode:
Diffstat (limited to 'data/lighttpd/lighttpd-1.4.53/src/joblist.c')
-rw-r--r--data/lighttpd/lighttpd-1.4.53/src/joblist.c66
1 files changed, 66 insertions, 0 deletions
diff --git a/data/lighttpd/lighttpd-1.4.53/src/joblist.c b/data/lighttpd/lighttpd-1.4.53/src/joblist.c
new file mode 100644
index 000000000..7c2102478
--- /dev/null
+++ b/data/lighttpd/lighttpd-1.4.53/src/joblist.c
@@ -0,0 +1,66 @@
+#include "first.h"
+
+#include "base.h"
+#include "joblist.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+int joblist_append(server *srv, connection *con) {
+ if (srv->joblist->size == 0) {
+ srv->joblist->size = 16;
+ srv->joblist->ptr = malloc(sizeof(*srv->joblist->ptr) * srv->joblist->size);
+ force_assert(NULL != srv->joblist->ptr);
+ } else if (srv->joblist->used == srv->joblist->size) {
+ srv->joblist->size += 16;
+ srv->joblist->ptr = realloc(srv->joblist->ptr, sizeof(*srv->joblist->ptr) * srv->joblist->size);
+ force_assert(NULL != srv->joblist->ptr);
+ }
+
+ srv->joblist->ptr[srv->joblist->used++] = con;
+
+ return 0;
+}
+
+void joblist_free(server *srv, connections *joblist) {
+ UNUSED(srv);
+
+ free(joblist->ptr);
+ free(joblist);
+}
+
+connection *fdwaitqueue_unshift(server *srv, connections *fdwaitqueue) {
+ connection *con;
+ UNUSED(srv);
+
+
+ if (fdwaitqueue->used == 0) return NULL;
+
+ con = fdwaitqueue->ptr[0];
+
+ memmove(fdwaitqueue->ptr, &(fdwaitqueue->ptr[1]), --fdwaitqueue->used * sizeof(*(fdwaitqueue->ptr)));
+
+ return con;
+}
+
+int fdwaitqueue_append(server *srv, connection *con) {
+ if (srv->fdwaitqueue->size == 0) {
+ srv->fdwaitqueue->size = 16;
+ srv->fdwaitqueue->ptr = malloc(sizeof(*(srv->fdwaitqueue->ptr)) * srv->fdwaitqueue->size);
+ force_assert(NULL != srv->fdwaitqueue->ptr);
+ } else if (srv->fdwaitqueue->used == srv->fdwaitqueue->size) {
+ srv->fdwaitqueue->size += 16;
+ srv->fdwaitqueue->ptr = realloc(srv->fdwaitqueue->ptr, sizeof(*(srv->fdwaitqueue->ptr)) * srv->fdwaitqueue->size);
+ force_assert(NULL != srv->fdwaitqueue->ptr);
+ }
+
+ srv->fdwaitqueue->ptr[srv->fdwaitqueue->used++] = con;
+
+ return 0;
+}
+
+void fdwaitqueue_free(server *srv, connections *fdwaitqueue) {
+ UNUSED(srv);
+ free(fdwaitqueue->ptr);
+ free(fdwaitqueue);
+}