Lines Matching refs:xw

102 /** initialize xfrd_xfr_writer struct xw */
103 static void xfr_writer_init(struct xfrd_xfr_writer* xw,
106 /** write packet from xfrd_xfr_writer struct xw to xfr file */
107 static void xfr_writer_write_packet(struct xfrd_xfr_writer* xw);
110 static void xfr_writer_commit(struct xfrd_xfr_writer* xw, const char *fmt,
129 /** add SOA RR with serial serial to xfrd_xfr_writer xw */
130 static inline void xfr_writer_add_SOA(struct xfrd_xfr_writer* xw,
133 if(try_buffer_write_SOA(&xw->packet, owner, serial))
135 xfr_writer_write_packet(xw);
136 assert(buffer_position(&xw->packet) == 12);
137 try_buffer_write_SOA(&xw->packet, owner, serial);
140 /** add RR to xfrd_xfr_writer xw */
141 static inline void xfr_writer_add_RR(struct xfrd_xfr_writer* xw,
145 if(try_buffer_write_RR(&xw->packet, owner, rr_type, rdata_len, rdata))
147 xfr_writer_write_packet(xw);
148 assert(buffer_position(&xw->packet) == 12);
149 try_buffer_write_RR(&xw->packet, owner, rr_type, rdata_len, rdata);
152 /** add PTR RR to xfrd_xfr_writer xw */
153 static inline void xfr_writer_add_PTR(struct xfrd_xfr_writer* xw,
156 if(try_buffer_write_PTR(&xw->packet, owner, name))
158 xfr_writer_write_packet(xw);
159 assert(buffer_position(&xw->packet) == 12);
160 try_buffer_write_PTR(&xw->packet, owner, name);
163 /** add TXT RR to xfrd_xfr_writer xw */
164 static inline void xfr_writer_add_TXT(struct xfrd_xfr_writer* xw,
167 if(try_buffer_write_TXT(&xw->packet, owner, txt))
169 xfr_writer_write_packet(xw);
170 assert(buffer_position(&xw->packet) == 12);
171 try_buffer_write_TXT(&xw->packet, owner, txt);
1110 xfr_writer_init(struct xfrd_xfr_writer* xw,
1113 xw->producer_zone = producer_zone;
1114 buffer_create_from( &xw->packet, &xw->packet_space
1115 , sizeof(xw->packet_space));
1116 buffer_write(&xw->packet, "\000\000\000\000\000\000"
1118 xw->seq_nr = 0;
1119 xw->old_serial = xw->producer_zone->serial;
1120 xw->new_serial = (uint32_t)xfrd_time();
1121 if(xw->new_serial <= xw->old_serial)
1122 xw->new_serial = xw->old_serial + 1;
1124 xw->old_serial = 0;
1127 xw->xfrfilenumber = xfrd->xfrfilenumber++;
1131 xfr_writer_write_packet(struct xfrd_xfr_writer* xw)
1134 (const dname_type*)xw->producer_zone->options->node.key;
1139 if(buffer_position(&xw->packet) == 12)
1141 buffer_flip(&xw->packet);
1143 , xw->producer_zone->options->pattern->pname
1144 , xw->old_serial, xw->new_serial, xw->seq_nr
1145 , buffer_begin(&xw->packet), buffer_limit(&xw->packet)
1146 , xfrd->nsd, xw->xfrfilenumber);
1147 xw->seq_nr += 1;
1148 buffer_clear(&xw->packet);
1149 buffer_write(&xw->packet, "\000\000\000\000\000\000"
1155 xfr_writer_commit(struct xfrd_xfr_writer* xw, const char *fmt, ...)
1160 (const dname_type*)xw->producer_zone->options->node.key;
1167 xfr_writer_write_packet(xw); /* Write remaining data */
1169 , xw->old_serial, xw->new_serial
1170 , xw->seq_nr /* Number of packets */
1171 , 1, msg, xfrd->nsd, xw->xfrfilenumber);
1174 , xw->old_serial, xw->new_serial, xw->xfrfilenumber);
1182 struct xfrd_xfr_writer xw;
1190 xfr_writer_init(&xw, producer_zone);
1191 xfr_writer_add_SOA(&xw, producer_name, xw.new_serial);
1193 if(xw.old_serial == 0) {
1197 xfr_writer_add_RR (&xw, producer_name
1199 xfr_writer_add_TXT(&xw, label_plus_dname("version"
1204 xfr_writer_add_SOA(&xw, producer_name, xw.old_serial);
1214 xfr_writer_add_PTR(&xw, to_delete->member_id
1218 xfr_writer_add_TXT( &xw
1232 xfr_writer_add_SOA(&xw, producer_name, xw.new_serial);
1243 xfr_writer_add_PTR(&xw, to_add->member_id,
1247 xfr_writer_add_TXT( &xw
1257 xfr_writer_add_SOA(&xw, producer_name, xw.new_serial);
1258 xfr_writer_commit(&xw, "xfr for catalog producer zone "
1262 xw.old_serial, xw.new_serial);
1263 producer_zone->serial = xw.new_serial;
1268 pxfr->serial = xw.new_serial;
1269 pxfr->xfrfilenumber = xw.xfrfilenumber;