Annotation of embedaddon/lighttpd/src/joblist.c, revision 1.1.1.2
1.1.1.2 ! misho 1: #include "first.h"
! 2:
1.1 misho 3: #include "base.h"
4: #include "joblist.h"
5: #include "log.h"
6:
7: #include <stdlib.h>
8: #include <string.h>
9:
10: int joblist_append(server *srv, connection *con) {
11: if (con->in_joblist) return 0;
12:
13: if (srv->joblist->size == 0) {
14: srv->joblist->size = 16;
15: srv->joblist->ptr = malloc(sizeof(*srv->joblist->ptr) * srv->joblist->size);
1.1.1.2 ! misho 16: force_assert(NULL != srv->joblist->ptr);
1.1 misho 17: } else if (srv->joblist->used == srv->joblist->size) {
18: srv->joblist->size += 16;
19: srv->joblist->ptr = realloc(srv->joblist->ptr, sizeof(*srv->joblist->ptr) * srv->joblist->size);
1.1.1.2 ! misho 20: force_assert(NULL != srv->joblist->ptr);
1.1 misho 21: }
22:
23: srv->joblist->ptr[srv->joblist->used++] = con;
24:
25: return 0;
26: }
27:
28: void joblist_free(server *srv, connections *joblist) {
29: UNUSED(srv);
30:
31: free(joblist->ptr);
32: free(joblist);
33: }
34:
35: connection *fdwaitqueue_unshift(server *srv, connections *fdwaitqueue) {
36: connection *con;
37: UNUSED(srv);
38:
39:
40: if (fdwaitqueue->used == 0) return NULL;
41:
42: con = fdwaitqueue->ptr[0];
43:
44: memmove(fdwaitqueue->ptr, &(fdwaitqueue->ptr[1]), --fdwaitqueue->used * sizeof(*(fdwaitqueue->ptr)));
45:
46: return con;
47: }
48:
49: int fdwaitqueue_append(server *srv, connection *con) {
50: if (srv->fdwaitqueue->size == 0) {
51: srv->fdwaitqueue->size = 16;
52: srv->fdwaitqueue->ptr = malloc(sizeof(*(srv->fdwaitqueue->ptr)) * srv->fdwaitqueue->size);
1.1.1.2 ! misho 53: force_assert(NULL != srv->fdwaitqueue->ptr);
1.1 misho 54: } else if (srv->fdwaitqueue->used == srv->fdwaitqueue->size) {
55: srv->fdwaitqueue->size += 16;
56: srv->fdwaitqueue->ptr = realloc(srv->fdwaitqueue->ptr, sizeof(*(srv->fdwaitqueue->ptr)) * srv->fdwaitqueue->size);
1.1.1.2 ! misho 57: force_assert(NULL != srv->fdwaitqueue->ptr);
1.1 misho 58: }
59:
60: srv->fdwaitqueue->ptr[srv->fdwaitqueue->used++] = con;
61:
62: return 0;
63: }
64:
65: void fdwaitqueue_free(server *srv, connections *fdwaitqueue) {
66: UNUSED(srv);
67: free(fdwaitqueue->ptr);
68: free(fdwaitqueue);
69: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>