1*6e778a7eSPedro F. Giffuni /*- 2*6e778a7eSPedro F. Giffuni * SPDX-License-Identifier: ISC 3*6e778a7eSPedro F. Giffuni * 4d808369aSHajimu UMEMOTO * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") 5d808369aSHajimu UMEMOTO * Copyright (c) 1999 by Internet Software Consortium, Inc. 6eb27a220SHajimu UMEMOTO * 7d808369aSHajimu UMEMOTO * Permission to use, copy, modify, and distribute this software for any 8d808369aSHajimu UMEMOTO * purpose with or without fee is hereby granted, provided that the above 9d808369aSHajimu UMEMOTO * copyright notice and this permission notice appear in all copies. 10eb27a220SHajimu UMEMOTO * 11d808369aSHajimu UMEMOTO * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES 12d808369aSHajimu UMEMOTO * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13d808369aSHajimu UMEMOTO * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR 14d808369aSHajimu UMEMOTO * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15d808369aSHajimu UMEMOTO * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 16d808369aSHajimu UMEMOTO * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 17d808369aSHajimu UMEMOTO * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 18eb27a220SHajimu UMEMOTO */ 19eb27a220SHajimu UMEMOTO 20d808369aSHajimu UMEMOTO /* 21046c3635SPedro F. Giffuni * $Id: res_update.h,v 1.3 2005/04/27 04:56:15 sra Exp $ 22d808369aSHajimu UMEMOTO */ 23eb27a220SHajimu UMEMOTO 24d808369aSHajimu UMEMOTO #ifndef __RES_UPDATE_H 25d808369aSHajimu UMEMOTO #define __RES_UPDATE_H 26d808369aSHajimu UMEMOTO 27dde4a85dSHajimu UMEMOTO /*! \file */ 28dde4a85dSHajimu UMEMOTO 29d808369aSHajimu UMEMOTO #include <sys/types.h> 30d808369aSHajimu UMEMOTO #include <arpa/nameser.h> 31d808369aSHajimu UMEMOTO #include <resolv.h> 32eb27a220SHajimu UMEMOTO 33dde4a85dSHajimu UMEMOTO /*% 34eb27a220SHajimu UMEMOTO * This RR-like structure is particular to UPDATE. 35eb27a220SHajimu UMEMOTO */ 36eb27a220SHajimu UMEMOTO struct ns_updrec { 37d808369aSHajimu UMEMOTO struct { 38d808369aSHajimu UMEMOTO struct ns_updrec *prev; 39d808369aSHajimu UMEMOTO struct ns_updrec *next; 40d808369aSHajimu UMEMOTO } r_link, r_glink; 41dde4a85dSHajimu UMEMOTO ns_sect r_section; /*%< ZONE/PREREQUISITE/UPDATE */ 42dde4a85dSHajimu UMEMOTO char * r_dname; /*%< owner of the RR */ 43dde4a85dSHajimu UMEMOTO ns_class r_class; /*%< class number */ 44dde4a85dSHajimu UMEMOTO ns_type r_type; /*%< type number */ 45dde4a85dSHajimu UMEMOTO u_int32_t r_ttl; /*%< time to live */ 46dde4a85dSHajimu UMEMOTO u_char * r_data; /*%< rdata fields as text string */ 47dde4a85dSHajimu UMEMOTO u_int r_size; /*%< size of r_data field */ 48dde4a85dSHajimu UMEMOTO int r_opcode; /*%< type of operation */ 49eb27a220SHajimu UMEMOTO /* following fields for private use by the resolver/server routines */ 50dde4a85dSHajimu UMEMOTO struct databuf *r_dp; /*%< databuf to process */ 51dde4a85dSHajimu UMEMOTO struct databuf *r_deldp; /*%< databuf's deleted/overwritten */ 52dde4a85dSHajimu UMEMOTO u_int r_zone; /*%< zone number on server */ 53eb27a220SHajimu UMEMOTO }; 54eb27a220SHajimu UMEMOTO typedef struct ns_updrec ns_updrec; 55d808369aSHajimu UMEMOTO typedef struct { 56d808369aSHajimu UMEMOTO ns_updrec *head; 57d808369aSHajimu UMEMOTO ns_updrec *tail; 58d808369aSHajimu UMEMOTO } ns_updque; 59eb27a220SHajimu UMEMOTO 60eb27a220SHajimu UMEMOTO #define res_mkupdate __res_mkupdate 61d808369aSHajimu UMEMOTO #define res_update __res_update 62eb27a220SHajimu UMEMOTO #define res_mkupdrec __res_mkupdrec 63d808369aSHajimu UMEMOTO #define res_freeupdrec __res_freeupdrec 64eb27a220SHajimu UMEMOTO #define res_nmkupdate __res_nmkupdate 65eb27a220SHajimu UMEMOTO #define res_nupdate __res_nupdate 66eb27a220SHajimu UMEMOTO 67eb27a220SHajimu UMEMOTO int res_mkupdate(ns_updrec *, u_char *, int); 68d808369aSHajimu UMEMOTO int res_update(ns_updrec *); 69eb27a220SHajimu UMEMOTO ns_updrec * res_mkupdrec(int, const char *, u_int, u_int, u_long); 70d808369aSHajimu UMEMOTO void res_freeupdrec(ns_updrec *); 71eb27a220SHajimu UMEMOTO int res_nmkupdate(res_state, ns_updrec *, u_char *, int); 72eb27a220SHajimu UMEMOTO int res_nupdate(res_state, ns_updrec *, ns_tsig_key *); 73eb27a220SHajimu UMEMOTO 74d808369aSHajimu UMEMOTO #endif /*__RES_UPDATE_H*/ 75dde4a85dSHajimu UMEMOTO 76dde4a85dSHajimu UMEMOTO /*! \file */ 77