| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 
 | /*
 * Part of DNS zone file validator `validns`.
 *
 * Copyright 2011-2014 Anton Berezin <tobez@tobez.org>
 * Modified BSD license.
 * (See LICENSE file in the distribution.)
 *
 */
#include <sys/types.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "common.h"
#include "textparse.h"
#include "mempool.h"
#include "carp.h"
#include "rr.h"
static struct rr* nsap_parse(char *name, long ttl, int type, char *s)
{
    struct rr_nsap *rr = getmem(sizeof(*rr));
    rr->data = extract_hex_binary_data(&s, "NSAP data", EXTRACT_EAT_WHITESPACE);
    if (rr->data.length < 0)    return NULL;
    if (*s) {
        return bitch("garbage after valid NSAP data");
    }
    return store_record(type, name, ttl, rr);
}
static char* nsap_human(struct rr *rrv)
{
    return "...";
}
static struct binary_data nsap_wirerdata(struct rr *rrv)
{
    RRCAST(nsap);
    return compose_binary_data("d", 1, rr->data);
}
struct rr_methods nsap_methods = { nsap_parse, nsap_human, nsap_wirerdata, NULL, NULL };
 |