Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / res_update.h @ 13

History | View | Annotate | Download (2.41 KB)

1
/*        $NetBSD: res_update.h,v 1.8 2012/11/15 18:49:37 christos Exp $        */
2

    
3
/*
4
 * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
5
 * Copyright (c) 1999 by Internet Software Consortium, Inc.
6
 *
7
 * Permission to use, copy, modify, and distribute this software for any
8
 * purpose with or without fee is hereby granted, provided that the above
9
 * copyright notice and this permission notice appear in all copies.
10
 *
11
 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
12
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
 * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
14
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
17
 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
 */
19

    
20
/*
21
 *        Id: res_update.h,v 1.3 2005/04/27 04:56:15 sra Exp
22
 */
23

    
24
#ifndef __RES_UPDATE_H
25
#define __RES_UPDATE_H
26

    
27
#include <sys/types.h>
28
#include <arpa/nameser.h>
29
#include <sys/queue.h>
30
#include <resolv.h>
31

    
32
/*%
33
 * This RR-like structure is particular to UPDATE.
34
 */
35
struct ns_updrec {
36
        TAILQ_ENTRY(ns_updrec) r_link, r_glink;
37
        ns_sect                r_section;        /*%< ZONE/PREREQUISITE/UPDATE */
38
        char *                r_dname;        /*%< owner of the RR */
39
        ns_class        r_class;        /*%< class number */
40
        ns_type                r_type;                /*%< type number */
41
        uint32_t        r_ttl;                /*%< time to live */
42
        u_char *        r_data;                /*%< rdata fields as text string */
43
        u_int                r_size;                /*%< size of r_data field */
44
        int                r_opcode;        /*%< type of operation */
45
        /* following fields for private use by the resolver/server routines */
46
        struct databuf *r_dp;                /*%< databuf to process */
47
        struct databuf *r_deldp;        /*%< databuf's deleted/overwritten */
48
        u_int                r_zone;                /*%< zone number on server */
49
};
50
typedef struct ns_updrec ns_updrec;
51
typedef        TAILQ_HEAD(ns_updqueu, ns_updrec) ns_updque;
52

    
53
#define res_mkupdate                __res_mkupdate
54
#define res_update                __res_update
55
#define res_mkupdrec                __res_mkupdrec
56
#define res_freeupdrec                __res_freeupdrec
57
#define res_nmkupdate                __res_nmkupdate
58
#define res_nupdate                __res_nupdate
59

    
60
int                res_mkupdate(ns_updrec *, u_char *, int);
61
int                res_update(ns_updrec *);
62
ns_updrec *        res_mkupdrec(int, const char *, u_int, u_int, u_long);
63
void                res_freeupdrec(ns_updrec *);
64
int                res_nmkupdate(res_state, ns_updrec *, u_char *, int);
65
int                res_nupdate(res_state, ns_updrec *, ns_tsig_key *);
66

    
67
#endif /*__RES_UPDATE_H*/