Lines Matching defs:queue

58  * 'Q'id files (queue):
67 * Each queue file needs to have a corresponding data file.
75 newspoolf(struct queue *queue)
93 queue->tmpf = strdup(fn);
94 if (queue->tmpf == NULL)
98 * Assign queue id
102 if (asprintf(&queue->id, "%"PRIxMAX, (uintmax_t)st.st_ino) < 0)
105 queue->mailf = fdopen(fd, "r+");
106 if (queue->mailf == NULL)
111 t->str = queue->tmpf;
117 if (queue->mailf != NULL)
118 fclose(queue->mailf);
157 readqueuef(struct queue *queue, char *queuefn)
160 struct queue itmqueue;
167 LIST_INIT(&itmqueue.queue);
198 syslog(LOG_DEBUG, "ignoring unknown queue info `%s' in `%s'",
208 syslog(LOG_ERR, "malformed queue file `%s'", queuefn);
215 it = LIST_FIRST(&itmqueue.queue);
219 LIST_INSERT_HEAD(&queue->queue, it, next);
235 linkspool(struct queue *queue)
240 if (fflush(queue->mailf) != 0 || fsync(fileno(queue->mailf)) != 0)
244 username, getuid(), queue->sender);
246 LIST_FOREACH(it, &queue->queue, next) {
247 if (asprintf(&it->queueid, "%s.%"PRIxPTR, queue->id, (uintptr_t)it) <= 0)
261 if (link(queue->tmpf, it->mailfn) != 0)
265 LIST_FOREACH(it, &queue->queue, next) {
270 unlink(queue->tmpf);
274 LIST_FOREACH(it, &queue->queue, next) {
282 load_queue(struct queue *queue)
291 bzero(queue, sizeof(*queue));
292 LIST_INIT(&queue->queue);
296 err(EX_NOINPUT, "reading queue");
302 /* ignore non-queue files */
312 * do an explicit stat on the queue file.
325 it = readqueuef(queue, queuefn);
333 syslog(LOG_INFO, "could not pick up queue file: `%s'/`%s': %m", queuefn, mailfn);
383 syslog(LOG_INFO, "could not acquire queue file: %m");
388 dropspool(struct queue *queue, struct qitem *keep)
392 LIST_FOREACH(it, &queue->queue, next) {