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

Quelle  mac_midna.c

  Sprache: C
 

/*++
/* NAME
/* mac_midna 3h
/* SUMMARY
/* IDNA-based mac_expand() plugin
/* SYNOPSIS
/* #include <mac_midna.h>
/*
/* void mac_midna_register(void)
/* DESCRIPTION
/* mac_midna_register() registers the domain_to_ascii{} and
/* domain_to_utf8{} caller-defined functions for mac_expand().
/* SEE ALSO
/* mac_midna_domain(3)
/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/* porcupine.org
/*--*/


 /*
  * System library.
  */

#include <sys_defs.h>

 /*
  * Utility library.
  */

#include <mac_expand.h>
#include <mac_midna.h>
#include <mac_parse.h>
#include <midna_domain.h>
#include <msg.h>
#include <stringops.h>
#include <vstring.h>

#define NAME_TO_A_LABEL "domain_to_ascii"
#define NAME_TO_U_LABEL "domain_to_utf8"

static int mac_midna_domain_to_ascii_eval(VSTRING *out, const char *name)
{
    const char *aname;

#ifndef NO_EAI
    if (!allascii(name)) {
 if ((aname = midna_domain_to_ascii(name)) == 0) {
     msg_warn("bad domain argument in: '%s{%s}'", NAME_TO_A_LABEL, name);
     return (MAC_PARSE_ERROR);
 }
 if (msg_verbose)
     msg_info("%s: %s asciified to %s", __func__, name, aname);
    } else
#endif
 aname = name;
    if (out)
 vstring_strcat(out, aname);
    return (MAC_PARSE_OK);
}

static int mac_midna_to_u_label_eval(VSTRING *out, const char *name)
{
    const char *uname;

#ifndef NO_EAI
    if (allascii(name)) {
 if ((uname = midna_domain_to_utf8(name)) == 0) {
     msg_warn("bad domain argument in: '%s{%s}'", NAME_TO_U_LABEL, name);
     return (MAC_PARSE_ERROR);
 }
 if (msg_verbose)
     msg_info("%s: %s internationalzied to %s", __func__, name, uname);
    } else
#endif
 uname = name;
    if (out)
 vstring_strcat(out, uname);
    return (MAC_PARSE_OK);
}

/* mac_midna_register - register caller-defined function */
void    mac_midna_register(void)
{
    static int first = 1;

    if (first) {
 mac_expand_add_named_fn(NAME_TO_A_LABEL, mac_midna_domain_to_ascii_eval);
 mac_expand_add_named_fn(NAME_TO_U_LABEL, mac_midna_to_u_label_eval);
 first = 0;
    }
}

Messung V0.5 in Prozent
C=72 H=95 G=83

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

*© 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.