Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postfix/src/oqmgr/   (Postfix Mailserver Version 3.11©)  Datei vom 2.11.2007 mit Größe 2 kB image not shown  

Quelle  qmgr_enable.c

  Sprache: C
 

/*++
/* NAME
/* qmgr_enable
/* SUMMARY
/* enable dead transports or sites
/* SYNOPSIS
/* #include "qmgr.h"
/*
/* void qmgr_enable_queue(queue)
/* QMGR_QUEUE *queue;
/*
/* QMGR_QUEUE *qmgr_enable_transport(transport)
/* QMGR_TRANSPORT *transport;
/*
/* void qmgr_enable_all(void)
/* DESCRIPTION
/* This module purges dead in-core state information, effectively
/* re-enabling delivery.
/*
/* qmgr_enable_queue() enables deliveries to the named dead site.
/* Empty queues are destroyed. The existed solely to indicate that
/* a site is dead.
/*
/* qmgr_enable_transport() enables deliveries via the specified
/* transport, and calls qmgr_enable_queue() for each destination
/* on that transport.  Empty queues are destroyed.
/*
/* qmgr_enable_all() enables all transports and queues.
/* See above for the side effects caused by doing this.
/* BUGS
/* The side effects of calling this module can be quite dramatic.
/* DIAGNOSTICS
/* Panic: consistency check failure. Fatal: out of memory.
/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/* IBM T.J. Watson Research
/* P.O. Box 704
/* Yorktown Heights, NY 10598, USA
/*--*/


/* System library. */

#include <sys_defs.h>

/* Utility library. */

#include <msg.h>
#include <vstream.h>

/* Application-specific. */

#include "qmgr.h"

/* qmgr_enable_all - enable transports and queues */

void    qmgr_enable_all(void)
{
    QMGR_TRANSPORT *xport;

    if (msg_verbose)
 msg_info("qmgr_enable_all");

    /*
     * The number of transports does not change as a side effect, so this can
     * be a straightforward loop.
     */

    for (xport = qmgr_transport_list.next; xport; xport = xport->peers.next)
 qmgr_enable_transport(xport);
}

/* qmgr_enable_transport - defer todo entries for named transport */

void    qmgr_enable_transport(QMGR_TRANSPORT *transport)
{
    QMGR_QUEUE *queue;
    QMGR_QUEUE *next;

    /*
     * Proceed carefully. Queues may disappear as a side effect.
     */

    if (transport->flags & QMGR_TRANSPORT_STAT_DEAD) {
 if (msg_verbose)
     msg_info("enable transport %s", transport->name);
 qmgr_transport_unthrottle(transport);
    }
    for (queue = transport->queue_list.next; queue; queue = next) {
 next = queue->peers.next;
 qmgr_enable_queue(queue);
    }
}

/* qmgr_enable_queue - enable and possibly delete queue */

void    qmgr_enable_queue(QMGR_QUEUE *queue)
{
    if (QMGR_QUEUE_THROTTLED(queue)) {
 if (msg_verbose)
     msg_info("enable site %s/%s", queue->transport->name, queue->name);
 qmgr_queue_unthrottle(queue);
    }
    if (QMGR_QUEUE_READY(queue) && queue->todo.next == 0 && queue->busy.next == 0)
 qmgr_queue_done(queue);
}

Messung V0.5 in Prozent
C=80 H=96 G=88

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.