blob: 8794d69e1b7ac4dc43c95be66aacbcef19d274e4 [file] [log] [blame]
Paul Jakma924f9d32006-03-30 13:25:52 +000012006-03-14 Paul Jakma <paul.jakma@sun.com>
2
3 * privs.c: (zprivs_caps_init) Change user IDs before lowering
4 privileges, while this seems to work on Linux, on Solaris
5 it rightfully refuses due to PRIV_PROC_SETID having been
6 dropped.
7
Paul Jakma478ccfd2006-03-06 18:18:37 +000082006-03-06 Paul Jakma <paul.jakma@sun.com>
9
10 * if.h: export show_address_cmd, for anyone who wishes to use
11 it.
12
Paul Jakma5a54df92006-02-21 01:37:14 +0000132006-02-21 Paul Jakma <paul.jakma@sun.com>
14
15 * sockunion.c: (sockunion_{su2str,log}) Use XSTRDUP.
16 Particularly with _su2str, as that string gets XFREEd,
17 which can be annoying if run debug code in memory.c.
18
paul306d8892006-02-02 17:50:19 +0000192006-02-02 Paul Jakma <paul.jakma@sun.com>
20
21 * workqueue.h: (struct work_queue) Remove the delay field.
22 It served no purpose and just introduced bad behaviour.
23 Should be excised before its allowed to escape into 1.0.
24 This removes need for the 'flood' and runs_since_clear
25 fields.
26 * workqueue.c: (general) excise delay factor between queue
27 runs, hence the 'flood' crap too.. See above.
28
paul581a02a2006-01-19 20:22:16 +0000292006-01-19 Paul Jakma <paul.jakma@sun.com>
30
31 * stream.c: (stream_getq_from) should use POSIX uint64_t
32 not u_int64_t. Latter is neither a traditional BSD type, nor
33 a POSIX type.
34
vincenteac314c2006-01-17 23:39:04 +0000352006-01-17 Vincent Jardin <vincent.jardin@6wind.com>
36
37 * md5.c: Don't forget to keep const.
38 * regex.c: Cleanup code and remove warnings.
39
paul7d0b0c42006-01-17 17:40:45 +0000402006-01-17 Paul Jakma <paul.jakma@sun.com>
41
42 * md5.{c,h}: (md5_loop) Is better off taking a void * and doing
43 cast to byte wise type internally, avoids needs for casts
44 in users.
paul789f78a2006-01-17 17:42:03 +000045 * vty.c: (no_terminal_monitor_cmd) New ALIAS for
46 terminal_no_monitor, in the more normal negating format,
47 to be kind to my fingers.
48 (vty_init) install new ALIAS.
pauld2110862006-01-17 17:43:18 +000049 * zclient.{c,h}: (zclient_create_header) export this, seems others
50 could use it (in lieu of more complete zserv helpers).
paul7d0b0c42006-01-17 17:40:45 +000051
paulc1b98002006-01-16 01:54:02 +0000522006-01-16 Paul Jakma <paul.jakma@sun.com>
53
54 * zclient.h: Update the Zserv protocol header with a version
55 field. Define the old command field to be a 'marker', to
56 allow old Zserv and updated Zserv to be differentiated.
57 Future updates will bump the version field obviously. New
58 command field is made wider. Try to stop using the
59 'zebra_size_t' typedef in the callbacks.
60 * zclient.c: Update to read/write new format header.
61
paulc77d4542006-01-11 01:59:04 +0000622006-01-11 Paul Jakma <paul.jakma@sun.com>
63
64 * if.h: (struct interface) expand flags to 8 bytes.
65 * zclient.c: (zebra_interface_{add,state}_read) stream read of
66 interface flags now need to use stream_getq.
67 (zebra_interface_if_set_value) ditto
68
paul4b201d42006-01-10 14:35:19 +0000692006-01-10 Paul Jakma <paul.jakma@sun.com>
70
71 * stream.c: (stream_new) Allocate stream data as seperate object.
72 (stream_free) free the data.
73 (stream_resize) new function, resize stream to new size.
74 (stream_{get,put}q*) new functions to get/put quad word size
75 types.
76 * stream.h: (struct stream) make data seperate from the stream.
77 Export new stream_resize and quad-word get/put functions.
78
gdtf80a0162005-12-29 16:03:32 +0000792005-12-29 Greg Troxel <gdt@fnord.ir.bbn.com>
80
81 * vty.c (vty_hello): add cast to quiet lint (from David Young)
82
paul00c290e2005-11-26 09:21:43 +0000832005-11-26 Paul Jakma <paul.jakma@sun.com>
84
85 * buffer.c: (struct buffer_data) change gcc zero array
86 declaration to C99 incomplete array.
87 * stream.h: (struct stream) same
88
paul6e0f1b92005-11-24 12:47:17 +0000892005-11-24 Paul Jakma <paul.jakma@sun.com>
90
91 * privs.c: (zcaps2sys/solaris) remove unused variable.
92 (zprivs_state_caps/solaris) Format string missing a
93 specifier.
paulb6026072005-11-24 12:51:24 +000094 * zebra.h: s/u_int/unsigned int/, u_int is a BSD type, defining
95 __USE_BSD on Linux pulls in further things from netinet/ip.h
96 which dont preprocess for some reason. There is no C99
97 shorthand type directly equivalent to u_int afaict, so don't
98 use it.
paul6e0f1b92005-11-24 12:47:17 +000099
paul190880d2005-11-14 12:07:47 +00001002005-11-14 Paul Jakma <paul.jakma@sun.com>
101
paul889e9312005-11-14 14:46:35 +0000102 * (general) pass struct work-queue to callback functions.
103 * workqueue.h: (struct work_queue) move the state flag
104 variables to end.
105 Add an opaque pointer to spec, for user-data global to the
106 queue.
107 Pass reference to work_queue to all callbacks.
108 * workqueue.c: (work_queue_item_remove) pass ref to workqueue
109 to user callbacks.
110 (work_queue_run) ditto.
111
1122005-11-14 Paul Jakma <paul.jakma@sun.com>
113
paul190880d2005-11-14 12:07:47 +0000114 * (general) Add state to detect queue floods. There's no sense
115 trying to be sparing of CPU resources, if the queue is
116 flooding and using ever more memory resources. we should just
117 get on with clearing the queue.
118 The sense of delay and hold were wrong way around, fix.
119 * workqueue.h: (struct work_queue) Add status bitfield. Add
120 'flood' integer to workqueue spec. Add runs_since_clear
121 counter to workqueue.
122 * workqueue.c: (work_queue_new) set defaults for delay, hold
123 and flood.
124 (work_queue_add) initial schedule should use delay, not hold.
125 (show_work_queues) Print flood field, conserve whitespace.
126 (work_queue_unplug) use delay, not hold.
127 (work_queue_run) consecutive runs should be seperated by hold
128 time, not delay.
129 Keep track of number of consecutive runs, go into 'overdrive'
130 if queue is being flooded, we can't avoid making heavy use of
131 resources, better to use CPU than ever more RAM.
paul76367ea2005-11-14 14:05:35 +0000132 * zebra.h: [bug #231] include stdint, if its there.
paul190880d2005-11-14 12:07:47 +0000133
1342005-11-05 Paul Jakma <paul.jakma@sun.com>
pauldb29ae52005-11-12 22:36:41 +0000135
136 * routemap.c: (vty_show_route_map_entry) call action is
137 seperate from exit action, latter should still be printed
138 regardless of whether a call is specified.
139
paul34204aa2005-11-03 09:00:23 +00001402005-11-03 Paul Jakma <paul.jakma@sun.com>
141
142 * zebra.h: BSD BYTE_ORDER define isn't available everywhere,
143 define if needs be.
144 * checksum.h: new file. checksum.c exports in_cksum, provide
145 a header for it.
146 * checksum.c: (in_cksum) callers shouldn't have to know it uses
147 a u_short internally, change to void *.
148 * Makefile.am: Add checksum.h
149 * command.h: remove bogus trailling slash.
150 * md5.c: (general) Update it for the twentieth century. ANSI
151 declarations are widely supported now.. Don't include system
152 headers, only include zebra.h. Use POSIX types (the
153 alternative is to define u_int64_t in a portable way - rest
154 of Quagga needs same cleanup).
155 Make endian-conditional code be compiler conditional rather
156 than preprocessor conditional, so that breakage gets noticed
157 quicker.
158 * md5.h: POSIX types. Get rid of the odd __P() non-ANSI capable
159 compiler compatibility hack.
paul9c4f1c62005-11-03 11:04:07 +0000160 * if.c: (connected_free) use MTYPE for connected label.
paula49ad232005-11-03 13:00:54 +0000161 * memtypes.c: Add MTYPE_CONNECTED_LABEL
162 * memtypes.h: Update auto-built file.
paul34204aa2005-11-03 09:00:23 +0000163
paul02416842005-10-26 05:05:16 +00001642005-10-26 Paul Jakma <paul.jakma@sun.com>
165
166 * (general) Cleanup a some calls to XFREE,strdup, etc. to use
167 the memory.h macros.
168 * memtypes.c: Add MTYPE_IF_RMAP_NAME, MTYPE_PQUEUE,
169 MTYPE_PQUEUE_DATA and MTYPE_HOST.
170 * memtypes.h: update auto-built file.
171 * if_rmap.c: Use MTYPE_IF_RMAP_NAME.
172 * pqueue.c: Use the two MTYPE_PQUEUE mtypes for allocations.
paul05865c92005-10-26 05:49:54 +0000173 * command.c: Use MTYPE_HOST, MTYPE_STRVEC. Some other fixups,
174 including fixing some likely leaks in config_write_file.
175 * vty.c: memory macro usage fixes.
176 (vty_read_config) fix leak where relative config file is
177 specified.
paul02416842005-10-26 05:05:16 +0000178
ajs24065a32005-10-20 22:28:14 +00001792005-10-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
180
ajsc188c372005-10-21 02:57:41 +0000181 * sockopt.c: (setsockopt_multicast_ipv4) If IP_ADD_MEMBERSHIP
182 fails with errno equal to EADDRINUSE, then issue an info
183 message and try IP_DROP_MEMBERSHIP followed by IP_ADD_MEMBERSHIP.
184
1852005-10-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
186
ajs24065a32005-10-20 22:28:14 +0000187 * memory.c: (show_memory_vty) Omit zero statistics. Print separators
188 only if some non-zero stats have been printed in between.
189 (show_separator) New function to print a separator.
190 (show_memory_all) Keep track of whether a separator is needed
191 between the different memory statistics groups.
192
ajs50123222005-10-18 20:19:13 +00001932005-10-18 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
194
195 * memtypes.h: Add MTYPE_OSPF_VERTEX_PARENT (to match memtypes.c).
196
pauleb3da6d2005-10-18 04:20:33 +00001972005-10-18 Paul Jakma <paul.jakma@sun.com>
198
199 * memtypes.c: (memory_list_ospf) Add MTYPE_OSPF_VERTEX_PARENT.
200
ajsf52d13c2005-10-01 17:38:06 +00002012005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
202
203 * zebra.h: Declare new functions zebra_route_string() and
204 zebra_route_char().
205 * log.c: (zroute_lookup,zebra_route_string,zebra_route_char) New
206 functions to map zebra route numbers to strings.
207
vincent5e4914c2005-09-29 16:34:30 +00002082005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
209
210 * smux.[ch]: allow to retreive global OID (identified by <0
211 namelen).
212
paulceacedb2005-09-29 14:39:32 +00002132005-09-29 Paul Jakma <paul.jakma@sun.com>
214
215 * zebra.h: Solaris capabilities requires priv.h to be included.
216 * privs.{c,h}: Add support for Solaris Least-Privileges.
217 privs.h: Reduce some of the abstract capabilities, which do
218 not have rough equivalents on both systems. Rename the net
219 related caps to _NET, as they should have been in first
220 place.
221 (zprivs_terminate) should take the zebra_privs_t as argument so
222 that it can update change pointer.
223 Add an additional privilege state, ZPRIVS_UNKNOWN.
224 * privs.c: (various capability functions) Add
225 Solaris privileges variants.
226 (zprivs_state) Use privs.c specific generic types to
227 represent various capability/privilege related types, so that
228 each can be typedef'd as appropriate on each platform.
229 (zprivs_null_state) static added, to hold the state the null
230 method should report (should be raised by default, and
231 LOWERED if zprivs_terminate has been called)
232 (zprivs_state_null) Report back the zprivs_null_state.
233 (cap_map) Make it able to map abstract capability to multiple
234 system capabilities.
235 (zcaps2sys) Map to abstract capabilities to multiple system
236 privileges/capabilities.
237 (zprivs_init) move capability related init to seperate
238 function, zprivs_caps_init.
239 (zprivs_terminate) ditto, moved to zprivs_caps_terminate.
240 Set the change_state callback to the NULL state, so the
241 user can continue to run and use the callbacks.
242
vincentfbf5d032005-09-29 11:25:50 +00002432005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
244
245 * filer.c: show protocol name in filter_show()
246 * plist.c: show protocol name in vty_show_prefix_entry()
247 * routemap.c: show protocol name in vty_show_route_map_entry()
248 * vty.c: in vty_command(), show protocol name if command unknown
249
vincentc1a03d42005-09-28 15:47:44 +00002502005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
251
252 * md5-gnu.h: removed
253 * md5.h: replaces md5-gnu.h
254 * Makefile.am: use correct md5.h
255 * md5.c: import from WIDE
256
paul75b2dd02005-09-21 14:06:35 +00002572005-09-21 Paul Jakma <paul.jakma@sun.com>
258
259 * memtypes.{c,h}: Add MTYPE_AS_SEG_DATA.
260
hassoe6a4feb2005-09-19 09:53:21 +00002612005-09-19 Hasso Tepper <hasso at quagga.net>
262
263 * str.[ch]: Add strndup() from glibc.
264
pauleb820af2005-09-05 11:54:13 +00002652005-09-05 Paul Jakma <paul.jakma@sun.com>
266
267 * command.c: (install_element) be more robust. Eg, cmd_init
268 need not have been called, some applications may use other
269 library subsystems, which call install_element, without the
270 application wanting commands and hence not calling cmd_init.
271
paul1e836592005-08-22 22:39:56 +00002722005-08-22 Hugo Santos <hsantos@av.it.pt>
273
274 * command.h: (enum node_type) Add BGP_IPV6M_NODE
275 * command.c: (node_parent) Handle BGP_IPV6M_NODE node
276 (config_exit, config_end) ditto
277 * vty.c: (vty_end_config) Handle BGP_IPV6M_NODE node
278
gdt0312f0c2005-08-10 13:20:03 +00002792005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com>
280
281 * getopt.h: Don't declare getopt (rather than getopt_long), since
282 quagga doesn't need it.
283 * getopt.c (getopt): Don't define getopt.
284
ajs330009f2005-07-26 14:35:37 +00002852005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
ajs7907c6c2005-07-26 19:55:31 +0000286 * prefix.c: (prefix_ipv4_new, prefix_ipv6_new): Call prefix_new
287 to allocate the memory to make sure that all struct prefix pointers
288 point to objects of the same length (avoids memory overruns
289 on struct prefix assignments).
290 (prefix_ipv4_free, prefix_ipv6_free): Simply call prefix_free.
291 It is interesting to note that these functions are never actually
292 called anywhere in the code. Instead prefix_free was already
293 being called directly, despite the previous MTYPE incompatibility.
294
2952005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
ajs330009f2005-07-26 14:35:37 +0000296
297 * prefix.c: (ip_masklen) While loop should test that 'pnt' pointer is
298 in range before dereferencing it.
299
paul510e2092005-06-24 01:20:25 +00003002005-06-24 Pawel Worach <pawel.worach@gmail.com>
301
302 * getopt.h: add further tests for full getopt declaration on
303 various systems.
304
paul354f3b62005-06-18 16:55:20 +00003052005-06-18 Paul Jakma <paul.jakma@sun.com>
306
307 * memtypes.h: update autobuilt file to match memtypes.c changes
308
paul200df112005-06-01 11:17:05 +00003092005-06-01 Paul Jakma <paul.jakma@sun.com>
310
311 * memtypes.c: Add MTYPE_BGP_PROCESS_QUEUE and
312 MTYPE_BGP_CLEAR_NODE_QUEUE
313
paul8176c192005-05-24 09:33:52 +00003142005-05-24 Paul Jakma <paul@dishone.st>
315
316 * memtypes.h: update this auto-built file. (maybe we should just
317 remove it, is GNU awk a terrible dependency to have?)
318
pauld5c92532005-05-23 12:33:58 +00003192005-05-23 Paul Jakma <paul@dishone.st>
320
321 * memtypes.awk: use character classes, which work correctly in
322 all LC_COLLATE environments, unlike A-Z, which doesnt work in
323 eg estonian collate order. Reported by Hasso.
pauld4f09602005-05-23 12:43:34 +0000324 * routemap.c: (rmap_onmatch_goto) fix crash if 'continue' command
325 is used, which does not supply an argv[0].
326 this is a backport candidate /iff/ the trailing ; is removed
327 from VTY_GET_INTEGER_RANGE
328 * vty.h: fix the VTY_GET macros, do {..} while(0) so they have
329 correct function like syntax in usage.
paul269d74f2005-05-23 13:42:46 +0000330 * workqueue.h: Add a WQ_QUEUE_BLOCKED item_status return code,
331 to allow a queue function to indicate the queue is not
332 ready/blocked - rather than any problem with the item at hand.
333 Add a notion of being able to 'plug' and 'unplug' a queue.
334 Add helpers to plug/unplug a queue.
335 Add a completion callback, to be called when a queue is emptied.
336 * workqueue.c: (work_queue_new) remove useless list_free.
337 (work_queue_schedule) new internal helper function to schedule
338 queue, if appropriate.
339 (work_queue_add) use work_queue_schedule
340 (show_work_queues) Print 'P' if queue is plugged.
341 (work_queue_plug) new API function, plug a queue - ie prevent it
342 from 'drained' / processed / scheduled.
343 (work_queue_unplug) unplug a queue, allowing it to be drained
344 / scheduled / processed again.
345 (work_queue_run) Add support for WQ_QUEUE_BLOCKED.
346 Add comment for RETRY_NOW case.
347 Make hysteris more aggresive in ramping up granularity, improves
348 performance significantly.
349 Add support for calling completion callback when queue is emptied,
350 possibly useful for knowing when to unplug a queue.
pauld5c92532005-05-23 12:33:58 +0000351
pauldc818072005-05-19 01:30:53 +00003522005-05-19 Paul Jakma <paul@dishone.st>
353
354 * thread.c: (thread_cancel_event) the number of pending events
355 cancelled is potentially useful information, dont throw it away,
356 pass it back to the caller.
paul2ba9a372005-05-19 01:37:50 +0000357 * sockunion.c: (sockunion_getsockname) use MTYPE_SOCKUNION, not TMP
358 (sockunion_getpeername) ditto
paule387e662005-05-19 02:13:28 +0000359 * memtypes.c: (memory_list_bgp) add MTYPE_BGP_PEER_HOST
pauldc818072005-05-19 01:30:53 +0000360
paul024a7f02005-05-15 14:25:08 +00003612005-05-15 Paul Jakma <paul@dishone.st>
362
363 * getopt.h: It's not just __GNU_LIBRARY__ which defines
364 getopt, eg __EXTENSIONS__ does too on SunOS. It still seems
365 awfully fragile though.
366 * getopt.c: include zebra.h after config.h, before including
367 getopt.h so that things at least are consistent..
368 * getopt1.c: ditto
369
paul42c98192005-05-07 02:22:51 +00003702005-05-07 Yar Tikhiy <yar@comp.chem.msu.su>
371
372 * sockopt.c: Add support for BSD style ifindex in ip_mreq.
373
paul8cc41982005-05-06 21:25:49 +00003742005-05-06 Paul Jakma <paul@dishone.st>
375
376 * (general) extern and static'ification of functions in code and
377 header.
378 Cleanup any definitions with unspecified arguments.
379 Add casts for callback assignments where the callback is defined,
380 typically, as passing void *, but the function being assigned has
381 some other pointer type defined as its argument, as gcc complains
382 about casts from void * to X* via function arguments.
383 Fix some old K&R style function argument definitions.
384 Add noreturn gcc attribute to some functions, as appropriate.
385 Add unused gcc attribute to some functions (eg ones meant to help
386 while debugging)
387 Add guard defines to headers which were missing them.
388 * command.c: (install_node) add const qualifier, still doesnt shut
389 up the warning though, because of the double pointer.
390 (cmp_node) ditto
391 * keychain.c: (key_str2time) Add GET_LONG_RANGE() macro, derived
392 fromn vty.h ones to fix some of the (long) < 0 warnings.
393 * thread.c: (various) use thread_empty
394 (cpu_record_hash_key) should cast to uintptr_t, a stdint.h type
395 * vty.h: Add VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX so they
396 removed from ospfd/ospf_vty.h
397 * zebra.h: Move definition of ZEBRA_PORT to here, to remove
398 dependence of lib on zebra/zserv.h
399
hassoe7fe8c82005-05-06 19:33:35 +00004002005-05-06 Hasso Tepper <hasso at quagga.net>
401
402 * sockunion.c: Fix warning message.
403
paul0dab9302005-05-03 09:07:56 +00004042005-05-03 Paul Jakma <paul@dishone.st>
405
406 * stream.h: Add comment about the special zero-ing ability of
407 stream_put.
408 (stream_recvmsg, stream_write) should return ssize_t and size_t
409 respectively. Should both be extern linkage.
410 (stream_recvfrom) Stream aware wrapper around recvfrom, in style
411 of stream_read_try.
412 * stream.c: (stream_recvfrom) new function, wrapper around recvfrom.
413 (stream_recvmsg, stream_write) ssize_t and size_t return values
414
ajs3df53782005-04-27 16:29:54 +00004152005-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
416
ajs8b70d0b2005-04-28 01:31:13 +0000417 Add wall-clock timing statistics to 'show thread cpu' output.
418 * thread.h: Define struct rusage_t to contain wall-clock time
419 and cpu time. Change GETRUSAGE macro to collect both pieces
420 of data. Make appropriate changes to struct cpu_thread_history
421 to track CPU time and real time. Change proto for
422 thread_consumed_time to return real and cpu time elapsed.
423 And declare a new global variable 'struct timeval recent_time'.
424 * thread.c (struct timeval recent_time): New global timestamp variable.
425 (timeval_adjust): If timeout is negative, set to 0 (not 10
426 microseconds). And remove upper bound of 1,000,000 seconds, since
427 this does not seem to make any sense (and it breaks
428 funcname_thread_add_timer_timeval).
429 (timeval_cmp): Should return long, not int.
430 (vty_out_cpu_thread_history): Show CPU time and real time.
431 (cpu_record_hash_print): Calculate totals for CPU and real time.
432 (cpu_record_print): Change 'show thread cpu' title to show CPU and
433 real time.
434 (thread_timer_remain_second): Put current time in global recent_time.
435 (funcname_thread_add_timer_timeval): Fix assert. Replace 2-case
436 switch assignment with a ternary expression. Use global recent_time
437 variable. Fix use of timeval_adjust (previously, the value was not
438 actually being adjusted).
439 (thread_cancel): Add missing "break" statement in case
440 THREAD_BACKGROUND.
441 (thread_timer_wait): Use global recent_time value instead of calling
442 gettimeofday. And there's no need to check for negative timeouts,
443 since timeval_subtract already sets these to zero.
444 (thread_timer_process): Timers are sorted, so bail out once we
445 encounter a timer that has not yet popped. And remove some
446 extraneous asserts.
447 (thread_fetch): Do not process foreground timers before calling
448 select. Instead, add them to the ready list just after the select.
449 Also, no need to maintain a count of the number of ready threads,
450 since we don't care how many there are, just whether there's
451 one at the head of the ready list (which is easily checked).
452 Stick current time in global variable recent_time to reduce
453 the number of calls to gettimeofday. Tighten logic for
454 calculating the select timeout.
455 (thread_consumed_time): Now returns real time and puts the elapsed
456 cpu time in an additional argument.
457 (thread_should_yield): Use real (wall-clock) time to decide whether
458 to yield.
459 (thread_call): Maintain CPU and real time statistics.
460 * vty.c (vty_command): For slow commands, show real and cpu time.
461
4622005-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
463
ajs3df53782005-04-27 16:29:54 +0000464 * workqueue.c (show_work_queues): Remove unused gettimeofday call.
465
paul84369682005-04-27 12:39:27 +00004662005-04-27 Paul Jakma <paul.jakma@sun.com>
467
468 * workqueue.h: (struct work_queue_item) change retry_count to ran,
469 its a count of number item has been run.
470 * workqueue.c: (show_work_queues) Fix formating of slightly
471 bugfix: fix SIGFPE if wq->runs is 0.
472 (work_queue_run) retry logic was slightly wrong.
473 cycles.best is 0 initialy, granularity is 1, so update best
474 if cycles >= granularity, not just >.
paula7bca0f2005-04-27 12:44:54 +0000475 * memory.h: memtypes is built source, default includes points to
476 top_builddir, so we should refer to lib/memtypes.h
477
ajs07334da2005-04-26 17:14:30 +00004782005-04-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
479
480 * buffer.c (buffer_write): Comment out call to buffer_flush_available.
481 This should speed up buffering at the expense of a possible increase
482 in latency in flushing the data if inside a long-running thread.
483
paulab59ae32005-04-25 13:52:26 +00004842005-04-25 Paul Jakma <paul.jakma@sun.com>
485
paul147aff02005-04-25 16:29:10 +0000486 * workqueue.{c,h}: Helper API for setting up and running queues via
487 background threads.
488 * command.c: install the 'show workqueues' command
489 * memtypes.c: Add work queue mtypes, and a rib-queue type for
490 a zebra rib work queue.
491 * memtypes.h: Updated to match memtypes.c
paulab59ae32005-04-25 13:52:26 +0000492 * Makefile.am: Refer to source files via srcdir variable, fix
493 out-of-tree build breakage.
paul147aff02005-04-25 16:29:10 +0000494 Add new workqueue files to build.
paul2c1de2a2005-04-25 14:02:44 +0000495 * memory.c: Make the string field much wider
496 * memtypes.c: Correct the prefix list str/entry strings
paul907873a2005-04-25 14:53:46 +0000497 * thread.c: Kill unused TIMER_NO_SORT bits
paulab59ae32005-04-25 13:52:26 +0000498
ajsfb9e46b2005-04-22 14:23:34 +00004992005-04-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
500
501 * thread.h: Fix type for struct thread_master add_type: should be
502 unsigned char. Also, add some documentation of thread_add_background
503 args. And remove extraneous declaration of
504 show_thread_work_queues_cmd.
505
paula48b4e62005-04-22 00:43:47 +00005062005-04-22 Paul Jakma <paul.jakma@sun.com>
507
paule1e53ed2005-04-22 13:44:17 +0000508 * memory.h: Move include of memtypes.h to after the definition of
509 struct memory_list, gcc 4.0 doesn't like arrays of incomplete
510 types.
paula48b4e62005-04-22 00:43:47 +0000511 * thread.h: Add background thread type and thread_add_background
512 macro and accompanying funcname_... function.
513 export thread_should_yield, background threads can use it.
514 Lower thread yield time to 10ms, 100ms is noticeable lag and
515 a thread would only be /starting/ to finish sometime afterward.
516 * thread.c: (general) Add background thread type and schedule
517 nearly all thread types through the ready list for fairness.
518 (timeval_adjust) static qualifier missing
519 (vty_out_cpu_thread_history) add support for printout of
520 background threads
521 (show_thread_cpu) ditto.
522 (thread_master_debug) add debug of background list
523 (thread_master_create) fixup long line
524 (thread_add_unuse) add asserts for required state.
525 (thread_master_free) free background thread list
526 (funcname_thread_add_timer_timeval) make generic, able to
527 support arbitrary timer-like thread types.
528 (funcname_thread_add_timer) pass thread type to .._add_timer_timeval
529 (funcname_thread_add_timer_msec) ditto
530 (funcname_thread_add_background) Add a background thread, with an
531 optional millisecond delay factor, using .._add_timer_timeval.
532 (thread_cancel) Add background thread type.
533 Move the thread_list_delete common to all cases to bottom of
534 function, after the switch statement..
535 (thread_cancel_event) indent
536 (thread_timer_wait) Static qualifier, and make it able to cope
537 with arbitrary timer-like thread lists, so its of use to
538 background threads too.
539 (thread_process_fd) static qualifier. Again, make it take a list
540 reference rather than thread_master. Fix indentation.
541 (thread_timer_process) Check for ready timer-like threads in the
542 given list and move them on to the ready list - code originally
543 embedded in thread_fetch.
544 (thread_fetch) Schedule all threads, other than events, through
545 the ready list, to ensure fairness. Timer readying code moved to
546 thread_timer_process so it can be reused for background threads.
547 Remove the unneeded quagga_sigevent_process, as pointed out by
548 John Lin <john.ch.lin@gmail.com>.
549 (thread_should_yield) make this available.
550
ajs924b9222005-04-16 17:11:24 +00005512005-04-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
552
553 * thread.h (thread_consumed_time): Declare new function to calculate
554 elapsed microseconds.
555 * thread.c (thread_consumed_time): Must be global not static so we
556 can call it from lib/vty.c:vty_command.
557 (thread_should_yield): Surround with `#if 0' to make clear that this
558 function is not currently being used anywhere.
559 (thread_call): If CONSUMED_TIME_CHECK is defined, print a CPU HOG
560 warning message if the thread takes more than CONSUMED_TIME_CHECK
561 microseconds.
562 * vty.c (vty_command): If CONSUMED_TIME_CHECK is defined, print a CPU
563 HOG warning message if the command takes more than CONSUMED_TIME_CHECK
564 microseconds.
565
pauldc830cb2005-04-16 15:51:05 +00005662005-04-16 Paul Jakma <paul@dishone.st>
567
568 * memtypes.c: the comment about use of comments in the comments
569 headers was causing comment within comment warnings from compiler
570 * memtypes.awk: Add extensive comments on the file format for
571 memtypes.c.
572 tighten the pattern for the MTYPE matching action (suggestion from
573 Andrew) and tighten which field we try the match on.
574
paul2fd2fd52005-04-15 11:47:15 +00005752005-04-15 Paul Jakma <paul@dishone.st>
576
577 * memtypes.c: The new, unified location for memory type definitions.
578 The memtype enum and declarations for memory_lists are built from
579 this automatically and put into memtypes.h.
580 * memtypes.awk: New script to generate memtypes.h from memtypes.c
581 * memory.h: Finally, the enum can banished!
582 * memory.c: Finally, the seperate mtype memory_list definitions can
583 be banished!
584 (log_memstats) Increase width of fields
585 (show_memory_zebra_cmd) display zebra specific memory types.
586 Increase width of fields.
587 * Makefile.am: Add memtypes.{c,h}, add BUILT_SOURCES for memtypes.h
588 Add a rule to build memtypes.h using memtypes.awk.
589 Add memtypes.awk to EXTRA_DIST.
pauld45f1f12005-04-15 22:18:37 +0000590 memtypes.awk is gawk dependent, use the GAWK automake var.
591 * memtypes.h: New file, auto-generated, checked in for convenience.
paul2fd2fd52005-04-15 11:47:15 +0000592
ajs634f9ea2005-04-11 15:51:40 +00005932005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
594
595 * zclient.h (struct zclient): Add two fields to support non-blocking
596 I/O: struct buffer *wb, and struct thread *t_write.
597 (zclient_free): Remove function.
598 (zebra_redistribute_send): Change 2nd arg from socket fd to
599 struct zclient * (needed to support non-blocking I/O and buffering).
600 (zclient_send_message): New function to send an arbitrary
601 message with non-blocking I/O.
602 * zclient.c (zclient_new): Create write buffer.
603 (zclient_free): Remove unused function.
604 (zclient_stop): Must cancel new t_write thread. Also, reset
605 all buffers: ibuf, obuf, and wb.
606 (zclient_failed): New helper function for typical error handling.
607 (zclient_flush_data): New thread to flush queued data.
608 (zclient_send_message): New function to send the message in
609 zclient->obuf to zebra using non-blocking I/O and buffering.
610 (zebra_message_send, zapi_ipv4_route, zapi_ipv6_route): Use
611 new zclient_send_message function instead of calling writen.
612 (zclient_start): Set socket non-blocking. Also, change 2nd arg
613 to zebra_redistribute_send from zclient->sock to zclient.
614 (zebra_redistribute_send): Change 2nd arg to struct zclient *.
615 Can now use zclient->obuf to assemble the message instead of
616 allocating a temporary stream. And call zclient_send_message to
617 send the message instead of writen.
618 (zclient_read): Convert to support non-blocking I/O by using
619 stream_read_try instead of deprecated stream_read.
620 (zclient_redistribute): Change 2nd arg to zebra_redistribute_send
621 from zclient->sock to zclient.
622
hasso5bb4c192005-04-09 13:27:50 +00006232005-04-09 Jeroen Simonetti <jeroens@office.netland.nl>
624
625 * routemap.c: Show description in "show route-map" output.
626
ajsd66a7b52005-04-08 16:42:03 +00006272005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
628
ajs67bf16c2005-04-08 19:02:04 +0000629 * sigevent.c: On GNU_LINUX, check whether __USE_GNU is already defined.
630
6312005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
632
ajs926fe8f2005-04-08 18:50:40 +0000633 * vty.c: (vty_log_fixed) Use casts to (void *) to try to eliminate
634 compiler warnings when assigning a (const char *) value to
635 struct iovec iov_base.
636
6372005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
638
ajsd66a7b52005-04-08 16:42:03 +0000639 * zebra.h: If GNU_LINUX is defined, then define _GNU_SOURCE. This
640 fixes a problem where we were not getting the declaration of strnlen
641 in <string.h>.
642
hasso3a2ce6a2005-04-08 01:30:51 +00006432005-04-08 Hasso Tepper <hasso at quagga.net>
644
hasso4a8164e2005-04-08 14:20:18 +0000645 * routemap.[ch]: Added "description ..." command.
646
6472005-04-08 Hasso Tepper <hasso at quagga.net>
648
hasso3a2ce6a2005-04-08 01:30:51 +0000649 * prefix.[hc]: Pass argument to the inet6_ntoa by value making it more
650 inet_ntoa alike.
651
paul1eb8ef22005-04-07 07:30:20 +00006522005-04-07 Paul Jakma <paul.jakma@sun.com>
653
654 * linklist.h: Add usage comments.
655 Rename getdata macro to listgetdata.
656 Rename nextnode to listnextnode and fix its odd behaviour to be
657 less dangerous.
658 Make listgetdata macro assert node is not null, NULL list entries
659 should be bug condition.
660 ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use
661 with for loop, Suggested by Jim Carlson of Sun.
662 Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the
663 "safety" of previous macro.
664 LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to
665 distinguish from the similarly named functions, and reflect their
666 effect better.
667 Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section
668 with the old defines which were modified above,
669 for backwards compatibility - guarded to prevent Quagga using it..
670 * linklist.c: fix up for linklist.h changes.
671 * *.c: fix up for new list loop macro, try audit other loop
672 usage at same time, to some degree.
673
hasso59209902005-04-05 14:36:49 +00006742004-04-05 Hasso Tepper <hasso at quagga.net>
675
676 * lib/prefix.[hc]: inet6_ntoa utility function copied from
677 ripngd/ripngd.c (inet6_ntop).
678
paul3d1dc852005-04-05 00:45:23 +00006792004-04-05 Paul Jakma <paul@dishone.st>
680
681 * vty.c: Improve logging of failures to open vty socket(s).
682 See bugid #163.
683
ajs3cb98de2005-04-02 16:01:05 +00006842005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
685
ajs08dbfb62005-04-03 03:40:52 +0000686 * if.h: Fix comments to reflect that if_lookup_by_name and
687 if_get_by_name now require the argument strings to be NUL-terminated.
688 * if.c: (if_lookup_by_name) Compare using strcmp.
689 (if_get_by_name) Pass strlen(ifname) as 2nd arg to if_create.
690
6912005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
692
ajs018546e2005-04-02 23:05:56 +0000693 * if.c: (if_nametoindex) The man page is rather vague, but it seems
694 like the argument to if_nametoindex has an implicit maximum length
695 of IFNAMSIZ characters.
696
6972005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
698
ajsa3491982005-04-02 22:50:38 +0000699 * if.h: (if_lookup_by_name_len, if_get_by_name_len) New functions.
700 * if.c: (if_lookup_by_name_len, if_get_by_name_len) New functions.
701 (if_get_by_name) Tighten up code.
702 (interface) Use new function if_get_by_name_len.
703 * zclient.c: (zebra_interface_add_read) Use new if_get_by_name_len
704 function.
705 (zebra_interface_state_read) Use new if_lookup_by_name_len function.
706
7072005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
708
ajs851adbd2005-04-02 18:48:39 +0000709 * str.c: Replace strlcpy and strlcat with actual working versions
710 copied from rsync-2.6.2/lib/compat.c.
711
7122005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
713
ajsd2fc8892005-04-02 18:38:43 +0000714 * if.h: Remove define for IFINDEX_INTERNBASE and add define
715 IFINDEX_INTERNAL 0, since all internal (i.e. non-kernel) pseudo-
716 interfaces should have ifindex set to 0.
717 (if_new) Remove function.
718 (if_delete_retain) New function to delete an interface without
719 removing from iflist and freeing the structure.
720 (ifname2ifindex) New function.
721 * if.c: (if_new) Remove function (absorb into if_create).
722 (if_create) Replace function if_new with call to calloc.
723 Set ifp->ifindex to IFINDEX_INTERNAL. Fix off-by-one error
724 in assert to check length of interface name. Add error message
725 if interface with this name already exists.
726 (if_delete_retain) New function to delete an interface without
727 removing from iflist and freeing the structure.
728 (if_delete) Implement with help of if_delete_retain.
729 (ifindex2ifname) Reimplement using if_lookup_by_index.
730 (ifname2ifindex) New function to complement ifindex2ifname.
731 (interface) The interface command should check the name length
732 and fail with a warning message if it is too long.
733 (no_interface) Fix spelling in warning message.
734 (if_nametoindex) Reimplement using if_lookup_by_name.
735 (if_indextoname, ifaddr_ipv4_lookup) Reimplement using
736 if_lookup_by_index.
737
7382005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
739
ajs3cb98de2005-04-02 16:01:05 +0000740 * zebra.h: Should include str.h to pick up missing functions.
741 * str.h: Declare strnlen if needed.
742 * str.c: Do not include str.h since zebra.h now includes it.
743 (strnlen) New function.
744
ajsdb8eaac2005-03-16 16:13:06 +00007452005-03-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
746
747 * zebra.h: Must check whether __attribute__ should be defined before
748 including zassert.h.
749
paulb8961472005-03-14 17:35:52 +00007502005-03-14 Paul Jakma <paul.jakma@sun.com>
751
752 * command.c: (sort_node) use vector_max instead of referencing
753 (struct vector *)->max directly. Test that vector_max is > 0
754 before using it to calculate an index.
755 Fixup vector loop to make main body conditional on vector slot
756 not being empty.
757 (cmd_cmdsize) Fixup vector loop to make main body conditional on
758 vector slot not being empty.
759 (cmd_filter_by_completion) ditto
760 (cmd_filter_by_string) ditto
761 (is_cmd_ambiguous) ditto
762 (cmd_describe_command_real) Change index integers to unsigned.
763 Test that vector_max is > 0 before using it to calculate an index.
764 Return immediately with CMD_ERR_NO_MATCH if vline has no
765 active slots.
766 Fixup vector loop to make main body conditional on vector slot
767 not being empty.
768 (cmd_complete_command_real) ditto.
769 (cmd_execute_command_strict) Fixup vector loop to be conditional
770 on non-null slot.
paul909a2152005-03-14 17:41:45 +0000771 (various) Fix indentation and other whitespace.
paul55468c82005-03-14 20:19:01 +0000772 vector.h: Rename to (struct vector).max to slightly less confusing
773 active, for the number of active slots, distinct from allocated
774 or active-and-not-empty. Rename vector_max to vector_active
775 for same reason.
paulb8961472005-03-14 17:35:52 +0000776
paul9e92eea2005-03-09 13:39:26 +00007772005-03-09 Paul Jakma <paul.jakma@sun.com>
778
779 * command.c: Undo commit of sign warning fix and hidden command
780 in list_cmd. Sign warning is more subtle. list_cmd on its own
781 will be committed after.
paul4275b1d2005-03-09 13:42:23 +0000782 * command.c: (config_list_cmd) Don't list hidden or deprecated
783 commands, hiding these from tab completion is still to be done.
paul9e92eea2005-03-09 13:39:26 +0000784
paulb45da6f2005-03-08 15:16:57 +00007852005-03-08 Paul Jakma <paul.jakma@sun.com>
786
paul9c5d8562005-03-08 15:56:42 +0000787 * command.c: (banner_motd_file_cmd) use XSTRDUP/XFREE.
paul22085182005-03-08 16:00:12 +0000788 (no_banner_motd_cmd) use XFREE.
paul9c5d8562005-03-08 15:56:42 +0000789 (cmd_describe_command_real) sign compile warning fix
790 (cmd_complete_command_real) ditto.
791 (config_list_cmd) Don't list hidden or deprecated commands,
792 hiding these from tab completion is still to be done.
793 * command.h: cmd attr enum should start at 1.
paulb45da6f2005-03-08 15:16:57 +0000794 * vty.c: (vty_hello) suggestions from Andrew, read by line and
795 stub out trailling non-printable characters on each line thus
796 allowing us to specify VTY_NEWLINE to vty_out.
797
paul3b0c5d92005-03-08 10:43:43 +00007982005-03-08 Jeroen Massar <jeroen@unfix.org>
799
800 * vty.c: (vty_hello) display motd file, if set
801 * command.h: add char *motdfile to struct host
802 * command.c: (config_write_host) write out motdfile config
803 (banner_motd_file_cmd) new command, allow motd to be read from
804 file.
805 (no_banner_motd_cmd) free motdfile string, if needs be.
806 (cmd_init) init (struct host).motdfile. Add new motd file
807 commands.
808
hasso12f6ea22005-03-07 08:35:39 +00008092005-03-07 Michael Sandee <voidptr@voidptr.sboost.org>
810
811 * command.c: host.name might be NULL.
812 * vty.c: Fix fd leak.
813
ajs81fb3242005-02-24 16:02:53 +00008142005-02-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
815
816 * stream.c: (stream_read_try) Log a warning message if a fatal
817 I/O error occurs.
818 (stream_fifo_new) Fix prototype.
819 * stream.h: Fix prototype for stream_fifo_new (need void arg).
820
ajs9fc7ebf2005-02-23 15:12:34 +00008212005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
822
ajscdb6ee92005-02-23 15:48:32 +0000823 * {vty.h,vty.c}: Remove vty_finish (duplicate of vty_reset).
824
8252005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
826
ajs9fc7ebf2005-02-23 15:12:34 +0000827 * buffer.h: Make the struct buffer and struct buffer_data structures
828 private by moving them inside buffer.c. Add comments for all
829 functions. Rename buffer_write as buffer_put (to be more consistent
830 with the buffer_putc and buffer_putstr functions). Declare a new
831 buffer_write function that is used to write data to a file descriptor
832 and/or add it to the buffer queue. Remove unused function
833 buffer_flush_vty_all. Create a new enum typedef buffer_status_t
834 to be used as the return code for all buffer_flush* functions
835 and buffer_write.
836 * buffer.c: The struct buffer and struct buffer_data declarations
837 are now private to this file. In conjunction with that, remove
838 some unnecessary fields: struct buffer (alloc, unused_head,
839 unused_tail, length), struct buffer_data (prev).
840 (buffer_data_new) Removed: functionality incorporated into buffer_add.
841 (buffer_data_free) Removed: use a macro BUFFER_DATA_FREE instead.
842 (buffer_new) Use calloc instead of malloc + memset(zero).
843 Supply an appropriate default size if the specified size is 0.
844 (buffer_free) Eliminate code duplication by calling buffer_reset to
845 free the contents of the buffer (and remove unused code related
846 to unused_head).
847 (buffer_empty,buffer_putc,buffer_putstr) Aesthetic change (make more
848 compact).
849 (buffer_reset) Use macro BUFFER_DATA_FREE. No need to set
850 alloc and length to 0 (these fields have been removed).
851 (buffer_add) Fix scope to be static. Call XMALLOC directly instead
852 of calling removed buffer_data_new function. Simplify the logic
853 (since it's now a singly-linked list instead of doubly-linked).
854 (buffer_write) Renamed to buffer_put. Change to void, since return
855 code of 1 was meaningless. No need to adjust length field, since
856 it has been removed.
857 (buffer_putw,buffer_flush,buffer_flush_vty_all,buffer_flush_vty)
858 Remove unused functions.
859 (buffer_flush_all) Rewrite using buffer_flush_available to eliminate
860 a possible failure mode if IOV_MAX is less than the number of buffers
861 on the queue.
862 (buffer_flush_window) Incorporate logic from buffer_flush_vty.
863 Log an error message if there is a writev error.
864 (buffer_flush_available) Be more paranoid: check for case where
865 buffer is already empty. Use new ERRNO_IO_RETRY macro, and use
866 new enum for return codes. Simplify deletion logic (since it's
867 now a singly-linked list).
868 (buffer_write) New function for use with non-blocking I/O.
869 * vty.h: Replace the struct vty sb_buffer field with a fixed-size
870 (5-character) sb_buf field and an sb_len field, since using
871 a struct buffer was inappropriate for this task. Add some useful
872 comments about telnet window size negotiation.
873 * vty.c: Include <arpa/telnet.h> (no longer included by zebra.h).
874 Remove VTY_OBUF_SIZE (instead use buffer_new default size).
875 Make telnet_backward_char and telnet_space_char static const.
876 (vty_out) Replace buffer_write with buffer_put.
877 (vty_log_out) Check for I/O errors. If fatal, close the vty session.
878 Consolidate 3 separate writes into a single write call.
879 (vty_will_echo,vty_command,vty_next_line,vty_previous_line,
880 vty_end_config,vty_describe_fold,vty_clear_buf,vty_serv_sock_addrinfo,
881 vty_serv_sock_family,vty_serv_un,vty_use_backup_config,exec_timeout,
882 vty_config_write,vty_save_cwd) Fix scope to static.
883 (vty_new) Let buffer_new use its default buffer size.
884 (vty_write) Fix signature: 2nd arg should be const char *.
885 Replaced buffer_write with buffer_put.
886 (vty_telnet_option) Fix minor bug (window height or width greater than
887 255 was broken). Use sb_buf and sb_len instead of removed sb_buffer
888 (which was being used improperly).
889 (vty_read) On error, use ERRNO_IO_RETRY to decide whether it's fatal.
890 If the error is fatal, call buffer_reset so vty_close does not attempt
891 to flush the data. Use new sb_buf and sb_len instead of sb_buffer
892 to store the SB negotiation string.
893 (vty_flush) When vty->lines is 0, call buffer_flush_available instead
894 of buffer_flush_window. Look at the return code from buffer_flush
895 to detect I/O errors (and in that case, log an error message and
896 close the vty).
897 (vty_create) Fix scope to static. Initialize sb_len to 0 instead
898 of creating sb_buffer.
899 (vty_accept) Set socket nonblocking.
900 (vtysh_accept) Use new set_nonblocking function instead of calling
901 fcntl directly.
902 (vtysh_flush) New function called from vtysh_read (after command
903 execution) and from vtysh_write. This flushes the buffer
904 and reacts appropriately to the return code (by closing the vty
905 or scheduling further flushes).
906 (vtysh_read) Check whether error is fatal using ERRNO_IO_RETRY.
907 If not, just try again later. Otherwise, call buffer_reset before
908 calling vty_close (to avoid trying to flush the buffer in vty_close).
909 Fix logic to allow case where a command does not arrive atomically
910 in a single read call by checking for the terminating NUL char.
911 (vtysh_write) Use new vtysh_flush helper function.
912 (vty_close) No need to call buffer_empty, just call buffer_flush_all
913 in any case (it will check whether the buffer is empty).
914 Do not free sb_buffer (since it has been removed).
915 (vty_log_fixed) Use writev instead of write.
916 * zebra.h: Do not include <arpa/telnet.h>, since this is used only
917 by lib/vty.c.
918
hassoc3c07f22005-02-21 18:17:52 +00009192005-02-21 Vincenzo Eramo <eramo at infocom.ing.uniroma1.it>
920
921 * pqueue.[ch]: Introduce "update" function to meet ospf spf needs. It
922 will allow to update node when:
923 i) a node is inserted into the priority queue;
924 ii) a node position is modified in the priority queue;
925 * pqueue.h: Export trickle_down() function.
926
paul109ac962005-02-19 01:17:07 +00009272005-02-19 Paul Jakma <paul.jakma@sun.com>
928
929 * stream.c: (stream_new) fix dumb mistake.
930
ajsd7e2a812005-02-17 20:02:49 +00009312005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
932
ajs53270112005-02-17 20:07:22 +0000933 * stream.c: (stream_read_try) Use new ERRNO_IO_RETRY macro.
934
9352005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
936
ajsd7e2a812005-02-17 20:02:49 +0000937 * network.h: Define a new ERRNO_IO_RETRY macro to test whether an I/O
938 operation should be retried. This eliminates the need to duplicate
939 the same logic testing for EAGAIN or EINTR in multiple places.
940
ajs42218e72005-02-16 16:25:39 +00009412005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
942
ajs262feb12005-02-16 20:35:47 +0000943 * stream.h: Declare new function stream_read_try suitable for use
944 with non-blocking file descriptors. Indicate that stream_read
945 and stream_read_unblock are deprecated.
946 * stream.c: (stream_read_try) New function for use with non-blocking
947 I/O.
948 (stream_recvmsg) Should return -1 if the stream is too small to
949 contain the data.
950
9512005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
952
ajs42218e72005-02-16 16:25:39 +0000953 * network.c: (set_nonblocking) Should check return code from
954 fcntl(F_GETFL).
955
ajsa269d612005-02-16 00:45:37 +00009562005-02-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
957
958 * network.h: Declare new function set_nonblocking. Indicate that
959 readn and writen are deprecated.
960 * network.c: (set_nonblocking) New function to make a file descriptor
961 non-blocking, since it seems silly to have fcntl calls sprinkled
962 throughout the code.
963
paul1dd13d42005-02-14 23:49:09 +00009642005-02-14 Paul Jakma <paul.jakma@sun.com>
paulf2e6c422005-02-12 14:35:49 +0000965
966 * stream.h: Unsigned long updated to size_t
967 * stream.c: ditto
paul050c0132005-02-14 23:47:47 +0000968 * stream.h: Add stream_copy, stream_dup, stream_recvmsg.
969 Add comment describing struct stream abstraction, and various
970 other comments.
971 Deprecate several unsafe/ambigious macros.
972 Add STREAM_WRITEABLE and STREAM_READABLE.
973 Add (stream_getl_from) for symmetry.
974 Update stream_forward_{endp,getp} to use size_t offset.
975 Make stream data a 0 length array, rather than a seperate malloc.
976 * stream.c: Add consistency checks. Update to follow stream.h
977 changes.
978 (stream_new) Alloc stream+data in one go.
979 (stream_copy) new function, copy a stream.
980 (stream_dup) new function, dup a stream.
981 (stream_recvmsg) new function, recvmsg data into a stream.
982 (stream_empty) no need to check getp == 0.
paulf2e6c422005-02-12 14:35:49 +0000983
paul9985f832005-02-09 15:51:56 +00009842005-02-09 Paul Jakma <paul.jakma@sun.com>
985
986 * stream.h: Remove putp. Update reference to putp with endp.
987 Add stream_forward_endp, which daemons were doing manually.
988 Rename stream_forward to stream_forward_getp.
989 stream.c: Remove/update references to putp.
990 introduce stream_forward_endp.
991
ajs548e6f72005-02-08 15:57:25 +00009922005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
993
994 * zebra.h: Change macro definitions SET_FLAG and UNSET_FLAG
995 to use compound assignment operators (aesthetic change).
996
ajs1e221352005-02-03 16:42:40 +00009972005-02-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
998
ajsc4c7d0c2005-02-03 19:22:05 +0000999 * log.c: (zlog_signal,zlog_backtrace_sigsafe) Eliminate use of fileno()
1000 since it is not async-signal-safe.
1001 (_zlog_assert_failed) Rewrite crashlog logic more compactly.
1002 (zlog_set_file,zlog_reset_file,zlog_rotate) Update logfile_fd
1003 for use in signal handler.
1004
10052005-02-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1006
ajs1e221352005-02-03 16:42:40 +00001007 * log.c: (syslog_sigsafe) Reduce scope of syslog_fd: it is accessed
1008 inside this function only.
1009 (open_crashlog) New function to open /var/tmp/quagga.<daemon>.crashlog
1010 with flags O_WRONLY|O_CREAT|O_EXCL to save some crash info.
1011 (zlog_signal,_zlog_assert_failed) Increase logging priority from
1012 LOG_ERR to LOG_CRIT. If no file logging is configured, try to use
1013 open_crashlog to create a crash logfile.
1014 (zlog_backtrace_sigsafe) If a crashlog file descriptor is open,
1015 dump a backtrace to that file.
1016
ajs847947f2005-02-02 18:38:48 +000010172005-02-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1018
1019 * if.h: Declare if_flag_dump.
1020
ajs6a52d0d2005-01-30 18:49:28 +000010212005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1022
1023 * daemon.c: (daemon) Replace perror with zlog_err.
1024 * vty.c: (vty_serv_un) Replace perror with zlog_err.
1025
ajs3b8b1852005-01-29 18:19:13 +000010262005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1027
1028 * buffer.h: Fix comment on buffer_getstr to reflect that it now
1029 uses XMALLOC.
1030 * buffer.c: (buffer_getstr) Use XMALLOC(MTYPE_TMP) instead of malloc.
1031 * filter.c: (access_list_remark,ipv6_access_list_remark) Use
1032 argv_concat instead of buffer_getstr.
1033 * if.c: (interface_desc) Use argv_concat instead of buffer_getstr.
1034 * plist.c: (ip_prefix_list_description,ipv6_prefix_list_description)
1035 Use argv_concat instead of buffer_getstr.
1036
ajsf6834d42005-01-28 20:28:35 +000010372005-01-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1038
ajsafb8b602005-01-28 20:41:07 +00001039 * lib/buffer.h: Document behavior of buffer_getstr function.
1040 * lib/buffer.c: (buffer_getstr) Fix bug: must handle case where
1041 the string extends beyond the head struct buffer_data.
1042
10432005-01-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1044
ajsf6834d42005-01-28 20:28:35 +00001045 * lib/command.h: Document behavior of argv_concat function.
1046 * lib/command.c: (argv_concat) Calculate total string length first so
1047 we can call malloc just once (instead of realloc'ing to add each
1048 string element).
1049 (do_echo,config_logmsg) Allow for possible NULL return value from
1050 argv_concat.
1051
hasso13bfca72005-01-23 21:42:25 +000010522005-01-23 Hasso Tepper <hasso at quagga.net>
1053
1054 * lib/command.[ch]: Make node_parent() function nonstatic. vtyh.c will
1055 use it as well.
1056
ajs31364272005-01-18 22:18:59 +000010572005-01-18 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1058
1059 * log.h: Test for SA_SIGINFO to see whether zlog_signal takes final
1060 two args (siginfo and program_counter).
1061 * log.c: (hex_append) Include this function only if SA_SIGINFO or
1062 HAVE_GLIBC_BACKTRACE is defined.
1063 (zlog_signal) Final two args (siginfo and program_counter) now
1064 depend on whether SA_SIGINFO is defined on this platform.
1065 * sigevent.c: (program_counter) Do not include this function if
1066 SA_SIGINFO is not defined on this platform.
1067 (exit_handler,core_handler) Test for SA_SIGINFO to decide whether
1068 2nd & 3rd arguments are present and to decide how to invoke
1069 zlog_signal.
1070 (trap_default_signals) Test for SA_SIGINFO and invoke sigaction
1071 appropriately.
1072
ajs239c26f2005-01-17 15:22:28 +000010732005-01-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1074
1075 * log.h: Change prototype for zlog_backtrace_sigsafe to take additional
1076 program_counter argument.
1077 * log.c: (zlog_backtrace_sigsafe) Add additional program_counter
1078 argument. If it is non-NULL, use backtrace_symbols_fd to resolve
1079 the address.
1080 (zlog_signal) Call zlog_backtrace_sigsafe with additional
1081 program_counter argument.
1082
hasso87d683b2005-01-16 23:31:54 +000010832005-01-17 Hasso Tepper <hasso at quagga.net>
1084
1085 * command.[ch], vty.c: cmd_execute_command() function must not attempt
1086 to walk up in the node tree if called from vtysh. Different daemons
1087 might have commands with same syntax in different nodes (for example
1088 "router-id x.x.x.x" commands in zebra/ospfd/ospf6d daemons).
1089
ajscb585b62005-01-14 17:09:38 +000010902005-01-14 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1091
1092 * command.c (print_version): Do not bother even to examine host.name,
1093 since it is always NULL when this function is called from main.
1094
gdtf867d322005-01-14 15:47:33 +000010952005-01-14 Greg Troxel <gdt@fnord.ir.bbn.com>
1096
1097 * command.c (print_version): Don't print host.name if it is NULL.
1098 Fixes segfault on Solaris reported by Goetz von Escher <goetz@open.ch>
1099
ajse22f5512005-01-12 16:18:17 +000011002005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1101
ajs40abf232005-01-12 17:27:27 +00001102 * sigevent.c: (trap_default_signals) Use the SA_SIGINFO flag to
1103 pass additional siginfo_t and ucontext_t arguments to core_handler
1104 and exit_handler.
1105 (core_handler,exit_handler) Now invoked with 3 arguments (using
1106 SA_SIGINFO). Pass additional info to zlog_signal.
1107 (program_counter) New function to find program counter in ucontext_t,
1108 needs to be enhanced to support more platforms (currently works only
1109 on Linux/x86).
1110 * log.h: Change the zlog_signal prototype to add new arguments
1111 siginfo_t * and program_counter.
1112 * log.c: (zlog_signal) Add new arguments siginfo and program_counter.
1113 Include si_addr and program counter (if non-NULL) in message.
1114 And remove #ifdef HAVE_GLIBC_BACKTRACE around hex_append, since
1115 that is now used to render the si_addr and PC pointers.
1116
11172005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1118
ajse22f5512005-01-12 16:18:17 +00001119 * zebra.h: If not C99 and no va_copy macro available, fall back to
1120 memcpy (solves a build problem on FreeBSD 4.x).
1121
ajsb99760a2005-01-04 16:24:43 +000011222005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1123
1124 * zebra.h: Define ZCMSG_FIRSTHDR appropriately based on whether
1125 config.h indicates HAVE_BROKEN_CMSG_FIRSTHDR (as determined
1126 by the configure test program).
1127 * sockopt.c: (getsockopt_cmsg_data) Use ZCMSG_FIRSTHDR instead
1128 of CMSG_FIRSTHDR.
1129
hassocba8a602005-01-02 18:51:01 +000011302005-01-02 Hasso Tepper <hasso at quagga.net>
1131
1132 * command.c: Revert int -> unsigned int fixes in
1133 cmd_describe_command_real() and cmd_complete_command_real(). index can
1134 be actually negative and it caused crash with "do<TAB>" in vty.
1135
gdt1d69fdf2004-12-29 18:53:30 +000011362004-12-29 Greg Troxel <gdt@poblano.ir.bbn.com>
1137
gdtd44debe2004-12-29 20:06:23 +00001138 * sockopt.c (getsockopt_ipv4_ifindex): Document calling
1139 convention. Beef up comments. Handle the case where the cmsghdr
1140 has a zero controllen, or more specifically when the wanted option
1141 is not present. This is needed for Solaris 8, and in general for
1142 any platform for which configure finds a method and it can fail.
1143 Mark some changes with XXX to be cleaned up post 0.98.
1144
ajsaf04bd72004-12-28 17:00:12 +000011452004-12-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1146
ajs1d75c8c2004-12-28 21:43:17 +00001147 * sockopt.c: (setsockopt_ipv4_ifindex) Improve error message.
1148 When neither IP_PKTINFO nor IP_RECVIF is defined, make return value
1149 deterministic (-1).
1150
11512004-12-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1152
ajsaf04bd72004-12-28 17:00:12 +00001153 * thread.c: (funcname_thread_add_timer_msec) Reduce overflow risk.
1154
paul4ba9b922004-12-21 22:34:58 +000011552004-12-21 Paul Jakma <paul.jakma@sun.com>
1156
1157 * if.h: Add more 'non-generic' IFF_ flags.
1158 * if.c: IFF_NOXMIT/IFF_VIRTUAL interfaces are 'loopback like'
paul0e43a2b2004-12-22 00:15:34 +00001159 * stream.c: Dont allocate streams with 0 sized data buffers
paul4ba9b922004-12-21 22:34:58 +00001160
ajs202d08c2004-12-17 20:50:00 +000011612004-12-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
ajs2885f722004-12-17 23:16:33 +00001162
1163 * command.c: (do_echo) Added new "echo" command, useful for
1164 watchdog pinging to make sure the daemon is responsive.
1165
11662004-12-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
ajs202d08c2004-12-17 20:50:00 +00001167
1168 * pid_output.c: (pid_output_lock) Eliminate static function, and just
1169 use the #ifdef to decide which version of the function to include.
1170 This eliminates a compilation problem with gcc4. And fix the
1171 non-fcntl version so that it actually compiles. Exit with
1172 status 1 instead of -1 on error.
1173
ajs81fc57c2004-12-15 17:41:14 +000011742004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1175
1176 * sigevent.c: (trap_default_signals) Ignore SIGPIPE instead of exiting.
1177
ajs3378d202004-12-10 22:43:17 +000011782004-12-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1179
1180 * log.c: (zlog_signal,_zlog_assert_failed) Change logging level back to
1181 LOG_ERR instead of LOG_EMERG.
1182
ajsc3324c62004-12-09 17:26:31 +000011832004-12-09 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1184
1185 * log.c: (hex_append) No need to include this function if
1186 HAVE_GLIBC_BACKTRACE is not defined.
1187
ajsb9e70282004-12-08 17:14:45 +000011882004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1189
1190 * prefix.c: (prefix_copy) Error message before abort should
1191 have severity LOG_ERR, not LOG_INFO.
1192 * memory.c: (mtype_log) Log level should be LOG_DEBUG, not LOG_INFO.
1193
ajs274a4a42004-12-07 15:39:31 +000011942004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1195
ajs8ddca702004-12-07 18:53:52 +00001196 * {smux.c,zclient.c}: Change level of debug messages to LOG_DEBUG.
1197
11982004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1199
ajs82146b82004-12-07 17:15:55 +00001200 * command.c: (config_write_host) Note that "log trap" is deprecated
1201 when writing out the config.
1202
12032004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1204
ajs274a4a42004-12-07 15:39:31 +00001205 * log.h: Replace struct zlog flags and maskpri fields with maxlvl
1206 array to support individual logging levels for each destination.
1207 Remove the 2nd argument to openzlog since the default logging config
1208 should be standardized inside the library. Replaced the
1209 zlog_set_flag and zlog_reset_flag functions with zlog_set_level.
1210 And zlog_set_file now requires an additional log_level argument.
1211 Declare zlog_proto_names for use inside command.c in the
1212 "show logging" command. Added defines useful for command
1213 construction.
1214 * log.c: (vzlog) Decide where to send the message based on the
1215 individual logging levels configured for each destination.
1216 Remove support for ZLOG_STDERR since it was never actually used.
1217 Support record-priority for terminal monitors.
1218 (zlog_signal,zlog_backtrace_sigsafe) Support destination-specific
1219 logging levels. Remove stderr support (was never used). Added
1220 support for terminal monitor logging.
1221 (_zlog_assert_failed) Increase message severity to LOG_EMERG.
1222 (openzlog) Remove 2nd argument since default config should be
1223 standardized in library. By default, terminal monitoring
1224 is set to debug, and all other logging is disabled.
1225 (zlog_set_flag,zlog_reset_flag) Removed.
1226 (zlog_set_level) New function to replace zlog_set_flag and
1227 zlog_reset_flag. Supports destination-specific logging levels.
1228 (zlog_set_file,zlog_reset_file) Support file-specific logging level.
1229 (zlog_rotate) Log an error message if fopen fails, and support
1230 new file-specific logging level.
1231 * command.h: Change DEFUN_CMD_FUNC_DECL and DEFUN_CMD_FUNC_TEXT so that
1232 command functions will be static instead of global. Remove
1233 declarations for config_exit and config_help. Define new macros
1234 DEFUNSH_ATTR, DEFUNSH_HIDDEN, and DEFUNSH_DEPRECATED so we can
1235 have deprecated commands in vtysh. Similarly, for completeness,
1236 define macros ALIAS_SH, ALIAS_SH_HIDDEN, and ALIAS_SH_DEPRECATED.
1237 Also, fix bug in ALIAS_ATTR macro (didn't matter because it
1238 was never used).
1239 * command.c: Make many functions static instead of global.
1240 (facility_name,facility_match,level_match) New functions
1241 to support enhanced destination-specific logging levels.
1242 (config_write_host) Support new destination-specific logging levels.
1243 (config_logmsg) Added new "logmsg" command to help test logging
1244 system.
1245 (show_logging) Added "show logging" command to show the current
1246 configuration of the logging system.
1247 (config_log_stdout_level) Support explicit stdout logging level.
1248 (no_config_log_stdout) Now takes optional LEVEL arg.
1249 (config_log_monitor,config_log_monitor_level,no_config_log_monitor)
1250 New commands creating new "log monitor" commands to set terminal
1251 monitoring log level.
1252 (config_log_file_level) Support explicit file logging level.
1253 (config_log_syslog_level) Support explicit syslog logging level.
1254 (config_log_facility,no_config_log_facility) Implement new
1255 "log facility" command.
1256 (cmd_init) Add hooks for new commands: "show logging", "logmsg",
1257 "log stdout <level>", "log monitor", "log monitor <level>",
1258 "no log monitor", "log file <filename> <level>",
1259 "no log file <filename> <level>", "log syslog <level>",
1260 "log facility", and "no log facility".
1261 * vty.h: Added a "level" argument to vty_log so it can support
1262 "log record-priority". Declare new function vty_log_fixed for
1263 use in signal handlers.
1264 * vty.c: (vty_log,vty_log_out) Added a "level" argument to support
1265 "log record-priority" for vty terminal monitors.
1266 (vty_down_level) Use config_exit_cmd.func instead of calling
1267 config_exit directly (since command functions will now be static
1268 instead of global).
1269 (vty_log_fixed) New function to send terminal monitor messages
1270 from inside a signal handler.
1271
ajs887c44a2004-12-03 16:36:46 +000012722004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1273
ajs5e764772004-12-03 19:03:33 +00001274 * log.h: Document appropriate use of syslog logging priorities
1275 inside quagga.
1276
12772004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1278
ajs56f20692004-12-03 17:40:31 +00001279 * command.h: Remove fields log_stdout and log_syslog from struct host,
1280 since they are just trying to duplicate information in the
1281 zlog_default structure. Note that this fixes a bug since those
1282 fields were not registering any logging that was established
1283 in the initial call to openzlog (this affects only the zebra and
1284 ospf6d daemons). It is probably a bug to turn on any logging by
1285 default in the call to openzlog.
1286 * command.c: (config_write_host) Get logging info from zlog_default
1287 instead of now-removed fields host.log_stdout and host.log_syslog.
1288 (config_log_stdout,no_config_log_stdout) Do not set now-removed field
1289 host.log_stdout, since this info is recorded in zlog_default.
1290 (config_log_file) Use XSTRDUP (instead of strdup) to set host.logfile.
1291 (config_log_syslog,config_log_syslog_facility,no_config_log_syslog)
1292 Do not set now-removed field host.log_syslog, since this info is
1293 recorded in zlog_default.
1294
12952004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1296
ajs887c44a2004-12-03 16:36:46 +00001297 * version.h.in: Remove declaration for pid_output_lock, this function
1298 is now static, not global.
1299 * pid_output.c: (pid_output_lock) This function should be static, not
1300 global. And remove "old umask" error message, since it was really
1301 an unimportant debug message, not an error.
1302 (pid_output) Need to declare static function pid_output_lock.
1303
ajs7d149b82004-11-28 23:00:01 +000013042004-11-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1305
1306 * log.h: Remove several unused fields from struct zlog. Add comments
1307 for other fields, and add one new field syslog_options that is
1308 used in the new syslog_sigsafe implementation.
1309 * log.c: (syslog_sigsafe) New function to send syslog messages in
1310 an async-signal safe way that can be used inside a signal handler.
1311 (syslog_connect) New function to connect to syslog daemon inside a
1312 signal handler. This function supports only systems where /dev/log
1313 is a unix datagram socket (e.g. not Solaris).
1314 (zlog_signal) Call syslog_sigsafe if syslog logging is enabled.
1315 (zlog_backtrace_sigsafe) Call syslog_sigsafe if syslog logging is
1316 enabled.
1317 (openzlog) Save syslog_options for use in syslog_sigsafe.
1318 (num_append) Fix bug: handle 0 properly.
1319 (hex_append) New function to print a u_long in hex format.
1320
hasso2557aed2004-11-28 21:16:20 +000013212004-11-28 Hasso Tepper <hasso at quagga.net>
1322
1323 * command.h: DEFUN_DEPRECATED passes attribute to DEFUN as well.
1324
ajsd1c51d72004-11-26 14:14:30 +000013252004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1326
ajs48d6c692004-11-26 20:52:59 +00001327 * log.c, log.h, memory.c: Change function name from zlog_backtrace_safe
1328 to the more self-explanatory zlog_backtrace_sigsafe.
1329
13302004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1331
ajs5b85fac2004-11-26 19:36:42 +00001332 * debug.[ch]: Remove unused files.
1333 * Makefile.am: Remove references to debug.c and debug.h
1334
13352004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1336
ajs063ee522004-11-26 18:11:14 +00001337 * log.c: (zlog_backtrace) New function to log a backtrace.
1338 (zlog_backtrace_safe) Log a backtrace in an async-signal-safe way.
1339 Unfortunately, this function does not support syslog logging yet.
1340 (zlog_signal) Move backtrace code into separate function
1341 zlog_backtrace_safe.
1342 (_zlog_assert_failed) Call zlog_backtrace before aborting.
1343 * log.h: Declare new functions zlog_backtrace and zlog_backtrace_safe.
1344 * memory.c: (zerror) Call zlog_backtrace before aborting.
1345
13462004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1347
ajsd1c51d72004-11-26 14:14:30 +00001348 * Makefile.am: Need to add zassert.h to pkginclude_HEADERS.
1349
ajse5879ca2004-11-25 16:07:53 +000013502004-11-25 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1351
ajs4cf0d0d2004-11-25 17:14:34 +00001352 * zebra.h: If not C99 and there's no va_copy macro and there is
1353 a __va_copy macro, define va_copy as __va_copy.
1354
13552004-11-25 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1356
ajse5879ca2004-11-25 16:07:53 +00001357 * pid_output.c: (pid_output_lock) Fix 2 bugs: when locking, should
1358 set l_whence to SEEK_SET, not SEEK_END. And after writing new
1359 pid to file, must ftruncate to eliminate any extraneous bytes left
1360 over from the last time a pid was written.
1361
ajscee3df12004-11-24 17:14:49 +000013622004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1363
1364 * zassert.h: New header file to declare a quagga-specific assert macro.
1365 * log.c: (_zlog_assert_failed) New function called when assert fails
1366 to log the error and abort.
1367 * zebra.h: Include "zassert.h" instead of <assert.h>.
1368 * regex.c: Include "zassert.h" instead of <assert.h>.
1369
ajsd246bd92004-11-23 17:35:08 +000013702004-11-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1371
ajs59a06a92004-11-23 18:19:14 +00001372 * sigevent.c: (signal_init) Set up some default signal handlers
1373 so that processes will issue an error message before terminating
1374 or dumping core.
1375 (trap_default_signals) New function to set up signal handlers
1376 for various signals that may kill the process.
1377 (exit_handler) Call zlog_signal, then _exit.
1378 (core_handler) Call zlog_signal, then abort.
1379 * log.h: Declare new function zlog_signal.
1380 * log.c: (zlog_signal) New function to log information about
1381 a received signal before the process dies. Try to log a
1382 backtrace also.
1383 (quagga_signal_handler,signal_set) Should be static.
1384
13852004-11-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1386
ajsd246bd92004-11-23 17:35:08 +00001387 * log.c: (vzlog) Take a single va_list argument and use va_copy
1388 as necessary for multiple traversals.
1389 (zlog) Pass only one va_list to vzlog.
1390 (zlog_*,plog_*) Use a macro for boilerplate code; pass only one
1391 va_list to vzlog.
1392 (zlog_set_file) Remove unused 2nd argument (flags).
1393 (zlog_save_cwd,zlog_get_cwd,zlog_free_cwd) Remove unused functions.
1394 * log.h: Remove ZLOG_*_INDEX defines (no longer used).
1395 Remove unused 2nd argument from zlog_set_file prototype.
1396 Fix prototype for zlog_rotate.
1397 * command.c: (config_log_file) Remove unused 2nd arg to zlog_set_file.
1398 * vty.c: (vty_out) Fix stdarg usage to perform multiple traversals
1399 properly.
1400 (vty_log) Must use va_copy for multiple traversals of va_list arg.
1401
ajsca359762004-11-19 23:40:16 +000014022004-11-19 David Young <dyoung@pobox.com>
1403
1404 * log.c: (safe_strerror) New function: safe wrapper for strerror.
1405
ajsff29bb32004-11-19 18:29:22 +000014062004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1407
1408 * sockopt.c: (setsockopt_so_recvbuf) Stop error message from being
1409 printed every time.
1410
ajsf858e492004-11-16 14:25:30 +000014112004-11-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1412
1413 * memory.h: Fix prototype for memory_init().
1414 * memory.c: Declare many functions and data structures static instead
1415 of global. Fix prototype for memory_init().
1416
gdt69e13252004-11-15 18:51:15 +000014172004-11-15 Greg Troxel <gdt@fnord.ir.bbn.com>
1418
1419 * sockopt.h: Avoid CMSG_ALIGN, and declare that sizes are without
1420 alignment (users should use CMSG_SPACE).
1421
1422 * zebra.h: Rationalize CMSG_SPACE compatibility defines. Warn if
1423 asumming 4-byte alignment, since this isn't safe.
1424
ajs7fa25ff2004-11-15 16:12:32 +000014252004-11-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1426
1427 * memory.c: (zerror) Use zlog_err instead of fprintf to stderr.
1428 Instead of exiting, log currenty memory usage and then abort.
1429 (log_memstats) New function to log memory statistics, called by
1430 zerror.
1431 (show_memory_all) Loop over new mlists array instead of calling
1432 show_memory_vty separately for each memory_list.
1433
paulb86718e2004-11-08 17:34:07 +000014342004-11-08 Paul Jakma <paul@dishone.st>
paulb35e5b42004-11-07 22:27:27 +00001435
paul2265d202004-11-08 15:43:21 +00001436 * buffer.c: Add missing include of log.h.
1437 (buffer_flush_available) written is compared against
1438 mostly against unsigned types, only for the writev do we need
1439 signed compare, so declare it as size_t and cast it to ssize_t
1440 just for the error compare when we've called writev.
1441 * buffer.h: Add comment that buffer data sizes really should be
1442 size_t.
1443
14442004-11-07 Paul Jakma <paul@dishone.st>
1445
1446 * version.h.in: add autoconf configure_input output var
paulb35e5b42004-11-07 22:27:27 +00001447
ajs49ff6d92004-11-04 19:26:16 +000014482004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1449
ajs5a646652004-11-05 01:25:55 +00001450 * vty.h: Remove fields in struct vty that were related to VTY_CONTINUE
1451 capabilities (that were used only in bgpd/bgp_route.c and are now
1452 removed). Also remove some other fields that were not being
1453 used at all.
1454 * vty.c: (vty_execute) Do not test for obsolete status values VTY_START
1455 and VTY_CONTINUE.
1456 (vty_read) Remove calls to vty->output_func since that was part
1457 of the VTY_CONTINUE infrastructure that has been removed.
1458 (vty_flush) Remove code to support VTY_START and VTY_CONTINUE.
1459 (vty_close) Remove code to cancel vty->t_output thread, since that
1460 thread was never actually used.
1461
14622004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1463
ajs49ff6d92004-11-04 19:26:16 +00001464 * vty.c: Vtysh connections to daemons should use buffering.
1465 (vty_out) Remove exception for vty_shell_serv, just use buffer_write.
1466 (vty_new) Increase output buffer size to 4096 rounded up to a
1467 multiple of pagesize.
1468 (vtysh_read) After command has been executed and all output buffered,
1469 call buffer_flush_available and schedule further writes if the
1470 buffers are not yet empty.
1471 (vtysh_write) New function to flush output to vtysh when the socket
1472 is writeable.
1473 (vty_event) Added new VTYSH_WRITE event for flushing buffers to vtysh
1474 clients. Also, should save read thread in vty->t_read so the
1475 thread can be cancelled in vty_close.
1476 * buffer.h: In struct buffer_data, remove unused "parent" field.
1477 Convert "unsigned char *data" to "unsigned char data[0]" to save
1478 a malloc. Declare new function buffer_flush_available that works
1479 with non-blocking sockets.
1480 * buffer.c: (buffer_data_new) Use a single malloc now that data is
1481 a variable-size array at end of structure.
1482 (buffer_data_free) Just a single free now that data is part of the
1483 structure.
1484 (buffer_write) Simplify the logic to make behavior more transparent.
1485 (buffer_flush) Decrease b->length as data is written out.
1486 (buffer_flush_vty_all) Decrease b->length as buffers are freed.
1487 (buffer_flush_vty) Decrease b->length as data is written out.
1488 (buffer_flush_available) New function to flush non-blocking sockets.
1489
paule064d6d2004-11-01 08:59:21 +000014902004-11-01 Paul Jakma <paul@dishone.st>
1491
1492 * sockopt.c: (setsockopt_pktinfo) remove, its unused.
1493
paul75e15fe2004-10-31 02:13:09 +000014942004-10-31 Paul Jakma <paul@dishone.st>
1495
1496 * vty.c: As per Andrew's suggestions..
1497 (vty_serv_un) remove flags.
1498 (vtysh_accept) close socket if we cant set NONBLOCK. Add flags.
paul66cbbce2004-10-31 16:15:33 +00001499 * keychain.c: Convert some more strtoul users to VTY_GET_INTEGER.
paul9d11a192004-10-31 16:19:24 +00001500 * memory.h: Add MTYPE_THREAD_FUNCNAME and MTYPE_THREAD_STATS
1501 * thread.c: Update stats and funcname alloc/free to use previous
paul039b9572004-10-31 16:43:17 +00001502 specific memory type defines. Use XCALLOC and sizeof the type,
1503 not the pointer.
paul70e149e2004-10-31 16:29:50 +00001504 * smux.c: fix int to size_t compile warnings
paul75e15fe2004-10-31 02:13:09 +00001505
pauldccfb192004-10-29 08:29:36 +000015062004-10-29 Paul Jakma <paul@dishone.st>
1507
1508 * vty.c: Move setting of sock to O_NONBLOCK from vty_serv_un
1509 to vtysh_accept, where sock is the actual fd we wanted to set to
1510 O_NONBLOCK, ie the /connected/ vtysh unix socket.
1511
hasso508ec912004-10-23 14:26:49 +000015122004-10-23 Hasso Tepper <hasso at quagga.net>
1513
1514 * zclient.c: Unbreak reading interface update message. Might fix
1515 blocker bugzilla #109.
1516
paul23b9c612004-10-22 11:51:57 +000015172004-10-22 Paul Jakma <paul@dishone.st>
paul7d9c6e52004-10-22 10:54:39 +00001518
1519 * sockopt.c: (getsockopt_ipv4_ifindex) no ifindex should be 0, not
paul23b9c612004-10-22 11:51:57 +00001520 -1.
1521 (setsockopt_pktinfo) unexported
1522 * sockopt.h: Cleanup SOCKOPT_CMSG defines a bit. Add a throwaway
1523 define for SOPT_SIZE_CMSG_IFINDEX_IPV4 for systems which have
paul4ccb2c42004-10-22 22:52:33 +00001524 neither IP_RECVIF nor IP_PKTINFO (eg openbsd), thanks to Rivo
1525 Nurges for highlighting problem and fix.
paul4927cf02004-10-22 16:55:10 +00001526 Fix elif that should be an else.
paul406d6712004-10-22 12:27:44 +00001527 * command.h: Cleanup the defines a bit, add helper defines and
1528 collapse all defines to use those. Add an attribute field to
1529 cmd_element to support, eg hidden or deprecated commands, add
1530 defun defines for such. All that's left to do is add logic
1531 to command.c to check these attributes... ;)
paulaf0d97e2004-10-22 23:24:43 +00001532 * zebra.h: reserve ZEBRA_ROUTE_HSLS
paul7d9c6e52004-10-22 10:54:39 +00001533
hasso6590f2c2004-10-19 20:40:08 +000015342004-10-19 Hasso Tepper <hasso at quagga.net>
1535
1536 * version.h.in: Define copyright string QUAGGA_COPYRIGHT.
1537 * print_version.c: Remove. print_version () function moved to
1538 command.[c|h].
1539 * command.c: Use QUAGGA_COPYRIGHT.
1540 * Makefile.am: Remove useless version.c and print_version.c files.
1541
hasso3fb9cd62004-10-19 19:44:43 +000015422004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
1543
1544 * zclient.c: (zebra_interface_address_read) If the destination address
1545 is encoded as all zeroes, load it as a NULL pointer.
1546 * if.h: Add comment describing struct connected destination field
1547 and indicating that it may be NULL. Define macros
1548 CONNECTED_DEST_HOST and CONNECTED_POINTOPOINT_HOST to help
1549 with PtP logic (distinguish between host and subnet addressing).
1550 * if.c: (if_lookup_address) Fix PtP logic to handle subnet addressing
1551 properly,
1552 (connected_lookup_address) ditto.
1553 (connected_add_by_prefix) Handle case where destination is NULL,
1554 * prefix.[c|h]: New functions ipv4_network_addr and
1555 ipv4_broadcast_addr.
1556
hassoddd85ed2004-10-13 08:18:07 +000015572004-10-13 Hasso Tepper <hasso at quagga.net>
1558
1559 * command.c: Make CMD_ERR_NOTHING_TODO nonfatal if reading
1560 configuration from file. Fixes critical bugzilla #113.
hassoc75105a2004-10-13 10:33:26 +00001561 * smux.c, smux.h: Remove all defaults to initialize smux connection to
1562 snmpd by default even if not configured to do so. "smux peer OID
1563 <password>" initializes now connection and "no smux peer" terminates
1564 it.
hassoddd85ed2004-10-13 08:18:07 +00001565
paul42d49862004-10-13 05:22:18 +000015662004-10-13 Paul Jakma <paul@dishone.st>
1567
1568 * (global) more const'ification.
1569 * sockunion.c: (sockunion_su2str) buffer should be sized
1570 SU_ADDRSTRLEN.
1571 (sockunion_log) do not return stack variables, strdup buf before
1572 return.
1573 * vty.h: Fix up the VTY_GET_INTEGER macros. Testing caller supplied
1574 values against ULONG_MAX is daft, when caller probably has passed
1575 a type that can not hold ULONG_MAX. use a temporary long instead.
1576 Add VTY_GET_LONG, make VTY_GET_INTEGER_RANGE use it, make
1577 VTY_GET_INTEGER a define for VTY_GET_INTEGER_RANGE.
1578
hassoa1494112004-10-11 12:53:17 +000015792004-10-11 Hasso Tepper <hasso at quagga.net>
1580
1581 * command.h: Sync DEFUNSH with other macros.
1582 * sockunion.c, sockunion.h: More const strings.
1583
paul9076fbd2004-10-11 09:40:58 +000015842004-10-11 Paul Jakma <paul@dishone.st>
1585
1586 * thread.c: (funcname_thread_add_timer)
1587 (funcname_thread_add_timer_msec) Fix mistakes from last change.
1588 Pointed out by Liu Xin in [quagga-dev 1609].
paulc9eca012004-10-11 11:28:44 +00001589 * if.h: mtu's should be unsigned.
1590 * routemap.{c,h}: const char updates
1591 * smux.{c,h}: ditto
paul9076fbd2004-10-11 09:40:58 +00001592
paul9035efa2004-10-10 11:56:56 +000015932004-10-10 Paul Jakma <paul@dishone.st>
paul47ca2952004-10-10 08:03:18 +00001594
1595 * version.h.in: (pid_output*) add const qualifier.
paul9035efa2004-10-10 11:56:56 +00001596 * command.h: Change DEFUN func to take const char *[] rather
1597 than char **, to begin process of fixing compile warnings in lib/.
1598 Nearly all other changes in this commit follow from this change.
1599 * buffer.{c,h}: (buffer_write) pointer-arithmetic is gccism, take
1600 const void * and cast an automatic const char *p to it.
1601 (buffer_putstr) add const
1602 * command.c: (zencrypt) const qualifier
1603 (cmd_execute_command_real) ditto
1604 (cmd_execute_command_strict) ditto
1605 (config_log_file) ditto.
1606 Fix leak of getcwd() returned string.
1607 * memory.{c,h}: Add MTYPE_DISTRIBUTE_IFNAME for struct dist ifname.
1608 * distribute.{c,h}: Update with const qualifier.
1609 (distribute_free) use MTYPE_DISTRIBUTE_IFNAME
1610 (distribute_lookup) Cast to char *, note that it's ok.
1611 (distribute_hash_alloc) use MTYPE_DISTRIBUTE_IFNAME.
1612 (distribute_get) Cast to char *, note that it's ok.
1613 * filter.c: Update with const qualifier.
1614 * if.{c,h}: ditto.
1615 * if_rmap.{c,h}: ditto.
1616 (if_rmap_lookup) Cast to char *, note that it's ok.
1617 (if_rmap_get) ditto.
1618 * log.{c,h}: Update with const qualifier.
1619 * plist.{c,h}: ditto.
1620 * routemap.{c,h}: ditto.
1621 * smux.{c,h}: ditto. Fix some signed/unsigned comparisons.
1622 * sockopt.c: (getsockopt_cmsg_data) add return for error case.
1623 * vty.c: Update with const qualifier.
1624
hasso27a43a82004-10-08 06:29:12 +000016252004-10-08 Hasso Tepper <hasso at quagga.net>
1626
1627 * routemap.c, routemap.h: Make some string arguments const.
1628
paul5973ee72004-10-08 01:36:54 +000016292004-10-05 Paul Jakma <paul@dishone.st>
1630
1631 * version.h.in: print_version declaration is here, not in automake
1632 generated version.h.
1633
hassoea8e9d92004-10-07 21:32:14 +000016342004-10-08 Hasso Tepper <hasso at quagga.net>
1635
1636 * command.c, command.h: Make argument of cmd_make_strvec function
1637 const.
1638 * command.c: Make hostname commands usable in vtysh again.
1639
hasso6ad96ea2004-10-07 19:33:46 +000016402004-10-07 Hasso Tepper <hasso at quagga.net>
1641
1642 * command.c, pid_output.c, print_version.c, vty.c, vty.h: Make more
1643 strings const.
1644
hasso8c328f12004-10-05 21:01:23 +000016452004-10-05 Hasso Tepper <hasso at quagga.net>
1646
1647 * *.[c|h]: Make many strings cons and a lot of int -> unsigned int
1648 changes to fix warnings.
1649
paul96e27c92004-10-05 14:33:43 +000016502004-10-05 Paul Jakma <paul@dishone.st>
1651
1652 * sockopt.{c,h}: add sockopt_iphdrincl_swab_{htosys,systoh},
1653 functions to change byte order between system IP_HDRINCL order
1654 and host order.
paul98c91ac2004-10-05 14:57:50 +00001655 * thread.c: (funcname_thread_add_timer_timeval) new function, add
1656 timer at specified timeval.
1657 (funcname_thread_add_timer) use funcname_thread_add_timer_timeval.
1658 (funcname_thread_add_timer_msec) ditto
paul96e27c92004-10-05 14:33:43 +00001659
hassob04c6992004-10-04 19:10:31 +000016602004-10-04 Hasso Tepper <hasso at quagga.net>
1661
1662 * memory.c, memory.h: Make char * argument of strdup functions const.
1663 * prefix.c, prefix.h: Make many arguments const. Reorder stuff in
1664 header.
1665 * log.h: Make log message const in struct message.
1666 * log.c: Fix some indenting.
1667 * network.c, network.h: Make second argument of writen() const.
1668
hassoe7168df2004-10-03 20:11:32 +000016692004-10-03 Hasso Tepper <hasso at quagga.net>
1670
1671 * command.h: Introduce SERVICE_NODE for "service <...>" commands.
1672 * command.c: Don't initialize commands that don't make sense if vtysh
1673 is used.
1674 * vty.c: Make VTY_NODE appear in vtysh.
1675
hasso18a6dce2004-10-03 18:18:34 +000016762004-10-03 James R. Leu <jleu at mindspring.com>
1677
1678 * zclient.c, zclient.h: zclient functions for router id handling.
1679 * zebra.h: New message types for router id handling.
1680
paul9172ee02004-09-27 12:46:37 +000016812004-09-27 Paul Jakma <paul@dishone.st>
1682
1683 * zebra.h: Add WANT_OSPF_WRITE_FRAGMENT for ospfd
1684 to try to fragment oversized packets. Enabled only for Linux.
1685 Add HAVE_IP_HDRINCL_BSD_ORDER to define struct ip byte order,
1686 to consolidate various ad-hoc platform defines for same thing.
1687
hassoe473b032004-09-26 16:08:11 +000016882004-09-26 Hasso Tepper <hasso at quagga.net>
1689
1690 * vty.c, sockopt.c: Fix compiler warnings.
1691
hasso52dc7ee2004-09-23 19:18:23 +000016922004-09-23 Hasso Tepper <hasso at quagga.net>
1693
1694 * linklist.h: Remove list and listnode typedefs.
1695 * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
1696
paul0b3acf42004-09-17 08:39:08 +000016972004-09-17 Paul Jakma <paul@dishone.st>
1698
paulb89e60c2004-09-21 15:43:13 +00001699 * sockopt.c: Add missing bracket
1700
17012004-09-17 Paul Jakma <paul@dishone.st>
1702
paul0b3acf42004-09-17 08:39:08 +00001703 * sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd.
1704
paul33394762004-09-13 11:27:57 +000017052004-09-13 Paul Jakma <paul@dishone.st>
1706
1707 * command.c: Update the copyright string in the default motd.
1708
gdt630e4802004-08-31 17:28:41 +000017092004-08-31 David Wiggins <dwiggins@bbn.com>
1710
1711 * hash.c (hash_iterate): Save next pointer before calling
1712 procedure, so that iteration works even if the called procedure
1713 deletes the hash backet.
1714
1715 * linklist.h (listtail): new macro, not yet used.
1716
hasso34553cc2004-08-27 13:56:39 +000017172004-08-27 Hasso Tepper <hasso at quagga.net>
1718
1719 * command.c: Install "terminal length" commands only if vty is used.
1720 Vtysh will handle it itself.
1721
gdtafa43b22004-08-26 13:12:41 +000017222004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com>
1723
1724 * sockopt.h: Define method-independent macro for callers of
1725 get_ifindex to use for cmsg length.
1726
paule6822762004-08-19 04:13:29 +000017272004-08-19 Paul Jakma <paul@dishone.st>
1728
paulefba6ce2004-08-25 13:47:16 +00001729 * zebra.h: add MAX and MIN defines (eg for ospf6d)
1730
17312004-08-19 Paul Jakma <paul@dishone.st>
1732
paule6822762004-08-19 04:13:29 +00001733 * sockopt.c: include sockopt.h
1734 rename some of the _pktinfo_ functions to _ifindex, where that is
1735 their purpose.
1736 (getsockopt_ipv6_pktinfo_ifindex) renamed to
1737 getsockopt_ipv6_ifindex.
1738 (setsockopt_ipv4_pktinfo) renamed to setsockopt_ipv4_ifindex
1739 (setsockopt_pktinfo) update with previous and add comment re
1740 AF_INET portability.
1741 (setsockopt_ifindex) generic ifindex function ala
1742 setsockopt_pktinfo.
1743 (getsockopt_ipv4_pktinfo_ifindex) renamed to
1744 getsockopt_ipv4_ifindex.
1745 (getsockopt_ipv4_ifindex) rejiggling to reduce repeated
1746 ifdef/elses. pktinfo case forgot to set ifindex.
1747 (getsockopt_pktinfo_ifindex) renamed to
1748 getsockopt_ifindex. update some calls to renamed functions.
1749 * sockopt.h: Update renamed exported functions
1750 Rename the CMSG_SIZE macros to IFINDEX.
1751 Guard IPv4 PKTINFO in a conditional define.
1752
paulc0618de2004-08-18 21:52:58 +000017532004-08-18 Paul Jakma <paul@dishone.st>
1754
1755 * vty.c: (vty_serv_un) set unix vty socket to nonblocking
1756 to prevent inadvertent blocking of daemons by use of
1757 vtysh. TODO: disentangle manual paging from the buffer_write
1758 path so that unix vty can use this path too and be reliable.
1759
gdt33f92322004-07-23 16:14:32 +000017602004-07-23 Greg Troxel <gdt@poblano.ir.bbn.com>
1761
1762 * sockopt.c (getsockopt_ipv4_pktinfo_ifindex): Make this compile
1763 on NetBSD, and add comments to make it less confusing. Change the
1764 sense of the SUNOS_5 test to make parallel structure between the
1765 variables and the code.
1766
paul4f7baa02004-07-23 15:11:07 +000017672004-07-23 Paul Jakma <paul@dishone.st>
1768
1769 * sockopt.h: Add SOPT_SIZE_CMSG_PKTINFO{_IPV{4,6}} define, for
1770 sizeof pktinfo as appropriate, to be used when allocating msg
1771 buffers. export setsockopt_pktinfo() and
1772 getsockopt_pktinfo_ifindex()
1773 * sockopt.c: (setsockopt_pktinfo_ifindex) new function to portably
1774 set received ifindex sock option.
1775 (getsockopt_pktinfo_ifindex) portably retrieve ifindex.
1776 (getsockopt_cmsg_data) retrieve indicated control info from
1777 message header.
1778 (getsockopt_ipv6_pktinfo_ifindex) ipv6 version of above.
1779 (setsockopt_ipv4_pktinfo) v4 version
1780 (setsockopt_pktinfo) the exported version
1781 (getsockopt_ipv4_pktinfo_ifindex) v4 specific version
1782 (getsockopt_pktinfo_ifindex) the exported version
1783
paul05c447d2004-07-22 19:14:27 +000017842004-07-14 Paul Jakma <paul@dishone.st>
1785
1786 * sigevent.c: (quagga_signal_handler) add a global caught flag, set
1787 the flags to a constant rather increment to be kinder.
1788 (quagga_sigevent_process) new function, to do core of what
1789 quagga_signal_timer did. dont block signals at all as sig->caught
1790 is volatile sig_atomic_t and should be safe to access from signal
1791 and normal contexts. The signal blocking is unneeded paranoia, but
1792 is left intact under an ifdef, should some platform require it.
1793 Check global caught flag before iterating through array.
1794 (quagga_signal_timer) nearly everything moved to
1795 quagga_sigevent_process. Left in under ifdef, in case some
1796 platform could use a regular timer check for signals.
1797 * sigevent.h: quagga_sigevent_process declaration.
1798 * thread.c: (thread_fetch) check for signals at beginning of
1799 scheduler loop, check for signals if select returns EINTR.
1800
gdtb7797132004-07-13 13:47:25 +000018012004-07-13 Greg Troxel <gdt@poblano.ir.bbn.com>
1802
1803 * sigevent.c: Don't block SIGTRAP and SIGKILL. Blocking SIGTRAP
1804 confuses gdb, at least on NetBSD 2.0_BETA, where the block
1805 succeeds.
1806
paul5510e832004-07-09 14:00:01 +000018072004-07-09 Paul Jakma <paul@dishone.st>
1808
1809 * Merge Kunihiro's 'show route-map' change and add
1810 compatibility aliases for route-map continue
paulb9790b32004-07-09 14:05:47 +00001811 * jhash.{c,h}: New files. Bob Jenkins' public domain hashing
1812 function, as implemented in linux kernel by David Miller.
paul5510e832004-07-09 14:00:01 +00001813
paulb06c14f2004-07-09 12:24:42 +000018142004-07-09 Juris Kalnins <juris@mt.lv>
1815
1816 * if.c: (if_cmp_func) fix for interface names where name is same,
1817 but one has no number, eg "devtyp" and "devtyp0".
1818
gdt87efd642004-06-30 17:36:11 +000018192004-06-30 Greg Troxel <gdt@poblano.ir.bbn.com>
1820
1821 * Makefile.am: Make libzebra shared.
1822
paul138ce752004-06-21 10:35:59 +000018232004-06-21 Paul Jakma <paul@dishone.st>
1824
1825 * ChangeLog: fix my last update config.h -> zebra.h ;)
1826 * zebra.h: Fix gcc check.
1827
paul02ff83c2004-06-11 11:27:03 +000018282004-06-11 Sowmini Varadhan <sowmini.varadhan@sun.com>
1829
1830 * filter.c: (access_list_remark_cmd) buffer_putstr doesnt need cast
1831 to u_char. (ipv6_access_list_remark_cmd) ditto.
1832 if.c: ditto
1833 * network.c: (readn/writen) pointer arg should be type u_char.
1834 * plist.c: needs to include stream.h, not declare stream functions
1835 internally.
1836 (various) Add static qualifier to internal functions.
1837 (prefix_list_type_str) extraneous breaks in switch statement.
1838 (ip_prefix_list_description_cmd) buffer_putstr doesnt need cast
1839 * stream.h: depends on plist.h and export stream_put_prefix
1840 * vty.c: (vty_<telnet option build functions>) should use
1841 unsigned char, telnet options are 0 -> 255.
1842 * zclient.c: various u_char<->char type cleanups.
1843 * zebra.h: Having to define CMSG_* can apply to more than just
1844 BSDI_NRL.
1845
paul51a87982004-06-09 10:36:05 +000018462004-06-09 Paul Jakma <paul@dishone.st>
1847
paul138ce752004-06-21 10:35:59 +00001848 * zebra.h: __attribute__ is a gcc'ism
paul51a87982004-06-09 10:36:05 +00001849
paul5228ad22004-06-04 17:58:18 +000018502004-06-04 Paul Jakma <paul@dishone.st>
1851
1852 * type mismatch fixes
1853
hasso6708fa32004-05-18 18:46:54 +000018542004-05-18 Hasso Tepper <hasso@estpak.ee>
1855
1856 * pqueue.[c|h]: Added as part of ospf6d merge from Zebra repository.
1857
paul0a589352004-05-08 11:48:26 +000018582004-05-08 Paul Jakma <paul@dishone.st>
1859
1860 * zclient.c (zapi_ipv4_route) Follow Sowmini's lead and describe
1861 message format.
1862
18632004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
1864
1865 * zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route
1866 (zapi_ipv4_delete) ditto.
1867 (zapi_ipv4_route) add/delete a route by way of cmd arg.
1868 (zapi_ipv6_add) collapsed into zapi_ipv6_route.
1869 (zapi_ipv6_delete) ditto.
1870 (zapi_ipv6_route) add/delete a route by way of cmd arg.
1871 (zebra_interface_address_delete_read) collapsed into
1872 zebra_interface_address_read.
1873 (zebra_interface_address_delete_read) ditto.
1874 (zebra_interface_address_read) read address add/delete messages
1875 by way of type argument. Describe command message format.
1876 (zebra_interface_add_read) Unconditionally read new ifmtu6 field.
1877 Describe command message format.
1878 (zebra_interface_state_read) Unconditionally read new ifmtu6 field.
1879 (zclient_redistribute_set) Collapsed into zclient_redistribute
1880 (zclient_redistribute_unset) ditto
1881 (zclient_redistribute) set/unset redistribution.
1882 (zclient_redistribute_default_set) Collapsed into
1883 zclient_redistribute_default.
1884 (zclient_redistribute_default_unset) ditto.
1885 (zclient_redistribute_default) Redistribute default set/unset.
1886 * zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add
1887 zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add
1888 zclient_redistribute. Ditto for
1889 zclient_redistribute_default_{set/unset}.
1890
paul4a7aac12004-05-08 05:00:31 +000018912004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
1892
1893 * if.h: Add mtu6 field to struct interface, IPv6 MTU may differ
1894 from IPv4, and Solaris treats the MTU's differently.
1895 Add connected_add_by_prefix, for use by later patch.
1896 * if.c: (connected_add_by_prefix) Add prefix to connected list.
1897 (if_flag_dump) Solaris: Dump IFF_IPv4/6 flag
1898 (if_dump) Dump mtu6 flag, for HAVE_IPV6.
paul22528292004-05-08 05:10:38 +00001899 * command.c: (sockunion_getsockname) use socklen_t for len.
1900 (sockunion_getpeername) ditto.
paul0a589352004-05-08 11:48:26 +00001901
paul31fcdd32004-04-21 11:00:43 +000019022004-04-21 Boris Kovalenko <boris@tagnet.ru>
1903
1904 * daemon.c: (daemon) fix check for error return from setsid
1905
paulc49b3062004-01-19 21:23:37 +000019062004-01-19 Paul Jakma <paul@dishone.st>
1907
1908 * sigevent.{c,h}: New files, implement event handled signals.
1909 see signal_init() in sigevent.h.
1910
jardinc32e1b52003-12-23 09:06:51 +000019112003-12-23 Vincent Jardin <jardin@6wind.com>
1912
1913 * {command.c, memory.c, vty.c, zebra.h}: Add isisd support
1914
gdt3dbf9962003-12-22 20:18:18 +000019152003-12-22 Greg Troxel <gdt@fnord.ir.bbn.com>
1916
1917 * vty.c (vty_use_backup_config): Don't free filenames before using
1918 them for unlink.
1919
paul54aba542003-08-21 20:28:24 +000019202003-08-20 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
1921
1922 * command.c: Fix <cr> display problem for command line
1923 description
1924
paule9af5c72003-05-24 11:54:31 +000019252003-05-24 Anil Madhavapeddy
1926
1927 * (sockunion.c): Incorrect bounds specified in sockunion_log()
1928
paul445f1432003-05-16 19:00:31 +000019292003-05-08 Sergiy Vyshnevetskiy <serg @ vostok.net>
1930
1931 * vty.c: -A option
1932
19332003-04-19 Hasso Tepper <hasso@estpak.ee>
1934
1935 * rip_routemap.c: sync daemon's route-map commands to have same
1936 syntax
1937
paul718e3742002-12-13 20:15:29 +000019382002-09-28 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
1939
1940 * vty.c (vty_flush): One line more on vty.
1941
19422002-09-27 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1943
1944 * vector.c (vector_lookup): Add new function.
1945
19462002-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1947
1948 * thread.c (timeval_adjust): Fix unconditional crush due to
1949 FreeBSD's select() system call timeval value check.
1950
19512002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1952
1953 * zebra-0.93 released.
1954
19552002-06-21 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1956
1957 * if.c (ifc_pointopoint): Add ifc_pointopoint() accoding to Frank
1958 van Maarseveen's suggestion.
1959
19602002-06-18 Kunihiro Ishiguro <kunihiro@zebra.org>
1961
1962 * command.c: Change bcopy() to memcpy().
1963
19642001-12-12 Kunihiro Ishiguro <kunihiro@zebra.org>
1965
1966 * command.c (config_password): Fix host.password clear bug.
1967 Reported by Wang Jian <lark@linux.net.cn>.
1968
19692001-08-29 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1970
1971 * thread.c (thread_should_yield): New function to check thread
1972 should yeild it's execution to other thread. Suggested by: Rick
1973 Payne <rickp@ayrnetworks.com>
1974
19752001-08-20 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1976
1977 * thread.c (thread_timer_cmp): Rewrite function.
1978
1979 * hash.c: Add hash_get(). Change hash_pull() to hash_release().
1980
19812001-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1982
1983 * zebra-0.92a released.
1984
19852001-08-15 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1986
1987 * zebra-0.92 released.
1988
19892001-08-12 Akihiro Mizutani <mizutani@dml.com>
1990
1991 * prefix.c (netmask_str2prefix_str): Convert "1.1.0.0 255.255.0.0"
1992 string to "1.1.0.0/16".
1993
19942001-08-10 Kunihiro Ishiguro <kunihiro@zebra.org>
1995
1996 * filter.c (access_list_lookup): access_list_lookup's first
1997 argument is changed from address family to AFI.
1998
1999 * plist.c: (prefix_list_lookup): Likewise.
2000
20012001-07-27 Akihiro Mizutani <mizutani@dml.com>
2002
2003 * plist.c: ge and le display order is changed. Old compatible
2004 rule (len <= ge-value <= le-value) is removed.
2005
20062001-07-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2007
2008 * prefix.h: Temporary fix for alignment of prefix problem.
2009
20102001-06-21 Kunihiro Ishiguro <kunihiro@zebra.org>
2011
2012 * prefix.h (struct prefix): Remove safi and padding field.
2013 (struct prefix_ipv4): Likewise.
2014 (struct prefix_ipv6): Likewise.
2015 (struct prefix_ls): Likewise.
2016 (struct prefix_rd): Likewise.
2017
2018 * command.h (enum node_type): Preparation for BGP new config.
2019
2020 * vty.c (vty_end_config): Likewise.
2021
20222001-06-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2023
2024 * routemap.c (route_map_rule_delete): Call func_free when
2025 route-map rule is deleted.
2026
20272001-06-14 "Akihiro Mizutani" <mizutani@dml.com>
2028
2029 * routemap.c (route_map_index_lookup): Prevent to use deny and
2030 permit for same route-map sequence.
2031
20322001-04-12 Kunihiro Ishiguro <kunihiro@zebra.org>
2033
2034 * vty.c (vty_read_config): Fix warning.
2035
20362001-03-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2037
2038 * command.c (IPV6_PREFIX_STR): Add '.' and '%' for IPv6 address
2039 strings.
2040
20412001-03-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2042
2043 * zebra.h (_XPG4_2): Define _XPG4_2 and __EXTENSIONS__ for
2044 CMSG_FIRSTHDR.
2045
20462001-03-07 Michael Rozhavsky <mrozhavsky@opticalaccess.com>
2047
2048 * zebra.h (struct in_pktinfo): structure in_pktinfo declaration.
2049
20502001-02-19 Kunihiro Ishiguro <kunihiro@zebra.org>
2051
2052 * memory.c (memory_list_lib): Add MTYPE_NEXTHOP for "show memory
2053 lib" member.
2054
20552001-02-13 Matthew Grant <grantma@anathoth.gen.nz>
2056
2057 * vty.c (vty_read_config): Revert check of integrate_default when
2058 VTYSH is defined.
2059
20602001-02-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2061
2062 * vty.c (vty_read_config): Do not check integrate_default. That
2063 should be used only by vtysh.
2064
20652001-02-08 Matthew Grant <grantma@anathoth.gen.nz>
2066
2067 * vty.c (vty_serv_un): Set umask 0077.
2068 (vty_read_config): Stat for vtysh Zebra.conf, if found startup and
2069 wait for boot configuration.
2070
2071 * if.c (if_lookup_address): Make it smart implementation.
2072
2073 * sockopt.c (setsockopt_multicast_ipv4): Set up a multicast socket
2074 options for IPv4 This is here so that people only have to do their
2075 OS multicast mess in one place rather than all through zebra,
2076 ospfd, and ripd .
2077
20782001-02-04 Akihiro Mizutani <mizutani@dml.com>
2079
2080 * plist.c (vty_prefix_list_install): Even when argument is
2081 invalid, new memory is allocated. Now memory allocation is done
2082 after argument check.
2083
20842001-02-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2085
2086 * zebra-0.91 is released.
2087
20882001-01-31 Akihiro Mizutani <mizutani@dml.com>
2089
2090 * vty.c (vty_login): Add vty login command.
2091
20922001-01-31 Kunihiro Ishiguro <kunihiro@zebra.org>
2093
2094 * vty.c (vty_reset): Close accept socket.
2095
20962001-01-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2097
2098 * memory.h (enum): MTYPE_ATTR_TRANSIT is added for unknown transit
2099 attribute.
2100
21012001-01-22 Kunihiro Ishiguro <kunihiro@zebra.org>
2102
2103 * zclient.c (zebra_interface_address_add_read): Fetch interface
2104 address flag.
2105 (zebra_interface_address_delete_read): Likewise.
2106
21072001-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
2108
2109 * table.c (route_node_match_ipv4): Utility function for IPv4
2110 address lookup.
2111 (route_node_match_ipv6): Utility function for IPv4 address lookup.
2112
21132001-01-15 Kunihiro Ishiguro <kunihiro@zebra.org>
2114
2115 * if.c: Delete RIP_API part until new implementation comes out.
2116
21172001-01-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2118
2119 * hash.h (struct Hash): Rename alloc to count. Change type to
2120 unsigned long.
2121
2122 * stream.c (stream_getc_from): New function.
2123 (stream_getw_from): Likewise.
2124
2125 * zebra.h (ZEBRA_FLAG_STATIC): Add new flag for persistent route.
2126
21272001-01-11 Kunihiro Ishiguro <kunihiro@zebra.org>
2128
2129 * flap.c: File is removed.
2130
2131 * flap.c: Likewise.
2132
2133 * roken.h: Likewise.
2134
2135 * buffer.c (buffer_new): Remove type option to buffer_new().
2136
21372001-01-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2138
2139 * zclient.c (zapi_ipv4_delete): Remove OLD_RIB part.
2140
21412001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2142
2143 * zebra-0.90 is released.
2144
2145 * command.c: Update Copyright year.
2146
21472001-01-09 Matthew Grant <grantma@anathoth.gen.nz>
2148
2149 * if.c (if_create): Register connected_free() function for
2150 deletion.
2151 (if_delete): Free connected information when the interface is
2152 deleted.
2153 (if_lookup_by_index): Fix argument type from int to unsigned int.
2154 (connected_add): Keep list in order if old info found, essential
2155 for repeatable operation in some daemons.
2156
21572001-01-09 endo@suri.co.jp (Masahiko Endo)
2158
2159 * vty.c (vty_flush): When vty->statis is VTY_CLOSE do not add vty
2160 read thread.
2161
21622001-01-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2163
2164 * filter.c (access_list_delete): Access-list name is not freed.
2165
2166 * plist.c (prefix_list_delete): Prefix-list name is not freed.
2167
21682000-12-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2169
2170 * zclient.c (zclient_start): Change to use UNIX domain
2171 socket for zebra communication.
2172
2173 * vector.c (vector_init): vector_alloc and vector_data_alloc is
2174 removed. All memory allocation count should be maintained by
2175 XMALLOC and XFREE macros.
2176
21772000-12-28 Kunihiro Ishiguro <kunihiro@zebra.org>
2178
2179 * zebra.h (ZEBRA_NEXTHOP_IFINDEX): Define ZEBRA_NEXTHOP_* values.
2180
21812000-12-27 Kunihiro Ishiguro <kunihiro@zebra.org>
2182
2183 * zebra.h (ZEBRA_ERR_RTEXIST): Make zebra error code to negative
2184 value.
2185
21862000-12-25 "Wataru Uno" <wataru@po.ntts.co.jp>
2187
2188 * vty.c (vtysh_read): Don't allocate new buffer because buffer is
2189 allocated in vty_new ().
2190
21912000-12-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2192
2193 * memory.h (enum): Add MTYPE_AS_FILTER_STR.
2194
2195 * command.c (config_write_terminal): Display "end" at the end of
2196 configuration.
2197
2198 * plist.c (vty_prefix_list_install): Use AF_INET to determine
2199 lenum length.
2200
22012000-12-13 "Wataru Uno" <wataru@po.ntts.co.jp>
2202
2203 * buffer.c (buffer_flush_vty): If IOV_MAX defined in the System,
2204 then all lines write by IOV_MAX.
2205
22062000-12-12 Michael Rozhavsky <mrozhavsky@opticalaccess.com>
2207
2208 * command.c (config_write_file): Robust method for writing
2209 configuration file and recover from backing up config file.
2210
22112000-11-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2212
2213 * smux.c (smux_connect): More fail check.
2214 (smux_trap): When SMUX connection is not established, do nothing.
2215
22162000-11-28 Gleb Natapov <gleb@nbase.co.il>
2217
2218 * thread.c (thread_fetch): Execut event list first. Old event
2219 list is renamed to ready list. With this change, event thread is
2220 executed before any other thread.
2221
2222 * thread.h (struct thread_master): Add ready list.
2223
22242000-11-28 Kunihiro Ishiguro <kunihiro@zebra.org>
2225
2226 * linklist.c (listnode_add_after): Add node right after the
2227 listnode pointer.
2228
22292000-11-27 Kunihiro Ishiguro <kunihiro@zebra.org>
2230
2231 * smux.h: Pass struct variable to WriteMethod.
2232
22332000-11-25 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
2234
2235 * if.c (if_lookup_address): When looking up interface with IP
2236 address, Sometimes multiple interfaces will match. Now PtP
2237 interfaces prevail in such a case which seem the right thing to
2238 do: There will probably also be host routes which usually prevail
2239 over network routes.
2240
22412000-11-25 Kunihiro Ishiguro <kunihiro@zebra.org>
2242
2243 * smux.c (smux_trap): SMUX trap implementation.
2244
22452000-11-19 Akihiro Mizutani <mizutani@dml.com>
2246
2247 * plist.c: Add automatic conversion function of an old rule.
2248 ex.) 10.0.0.0/8 ge 8 -> 10.0.0.0/8 le 32
2249
22502000-11-16 Yon Uriarte <ukl2@rz.uni-karlsruhe.de>
2251
2252 * zclient.c (zebra_interface_add_read): Read hardware address when
2253 hw_addr_len is greater than 0.
2254
22552000-11-15 Akihiro Mizutani <mizutani@dml.com>
2256
2257 * plist.c: The rule of "len <= ge-value <= le-value"
2258 was changed to "len < ge-value <= le-value".
2259
22602000-11-09 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
2261
2262 * memory.[ch]: Added #define and functions for ospf6d.
2263
2264 * log.[ch]: some platform says that the data of used va_list
2265 is undefined. Changed to hold list of va_list for each
2266 vsnprintf.
2267
22682000-11-07 Rick Payne <rickp@rossfell.co.uk>
2269
2270 * memory.h (enum): Add MTYPE_COMMUNITY_REGEXP.
2271
22722000-11-06 Kunihiro Ishiguro <kunihiro@zebra.org>
2273
2274 * command.c (config_exit): Fix bug of missing break after case
2275 BGP_VPNV4_NODE.
2276
22772000-10-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2278
2279 * vector.c (vector_unset): Check i is not nevative.
2280
22812000-10-24 Arkadiusz Miskiewicz <misiek@pld.org.pl>
2282
2283 * smux.c (smux_sock): Set terminating '\0'. Check address family.
2284
2285 * vty.c (vty_serv_sock_addrinfo): Set terminating '\0'. Use
2286 gai_strerror. Check address family.
2287
22882000-10-23 Jochen Friedrich <jochen@scram.de>
2289
2290 * smux.c: Use linklist rather than vector.
2291 (smux_getnext): A SMUX subagent has to behave as if it manages the
2292 whole SNMP MIB tree itself. It's the duty of the master agent to
2293 collect the best answer and return it to the manager. See RFC 1227
2294 chapter 3.1.6 for the glory details :-). ucd-snmp really behaves
2295 bad here as it actually might ask multiple times for the same
2296 GETNEXT request as it throws away the answer when it expects it in
2297 a different subtree and might come back later with the very same
2298 request.
2299
23002000-10-23 Kunihiro Ishiguro <kunihiro@zebra.org>
2301
2302 * command.c (cmd_init): Log related command are only installed for
2303 terminal mode.
2304
23052000-10-21 Kunihiro Ishiguro <kunihiro@zebra.org>
2306
2307 * Makefile.am (libzebra_a_SOURCES): Remove duplicated buffer.c.
2308
2309 * zebra.h: Remove #warn directive.
2310
23112000-10-20 Kunihiro Ishiguro <kunihiro@zebra.org>
2312
2313 * keychain.c (keychain_init): Register "key chain" command to
2314 KEYCHAIN_NODE and KEYCHAIN_KEY_NODE.
2315
2316 * vty.c (vty_end_config): Fix missing vty_cinfig_unlock for other
2317 CONFIG_NODE.
2318
2319 * command.c (config_end): Likewise.
2320
2321 * keychain.c (keychain_get): Key is sorted by it's identifier
2322 value.
2323
23242000-10-19 Kunihiro Ishiguro <kunihiro@zebra.org>
2325
2326 * linklist.c (list_delete_all_node): Call delete function if it is
2327 defined.
2328
2329 * command.c (cmd_execute_command_strict): Add modification for
2330 vtysh.
2331 (cmd_execute_command_strict): Remove first argument cmdvec because
2332 it is global varibale in command.c.
2333
23342000-10-18 Kunihiro Ishiguro <kunihiro@zebra.org>
2335
2336 * command.c (cmd_init): Install
2337 copy_runningconfig_startupconfig_cmd only in terminal mode.
2338
2339 * linklist.c (list_delete_node): Simplify the function.
2340 (listnode_lookup): Renamed from list_lookup_node.
2341
23422000-10-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2343
2344 * stream.h: Undef stream_read and stream_write without
2345 parenthesis.
2346
2347 * newlist.c: File removed.
2348
2349 * newlist.h: Likewise.
2350
2351 * linklist.c (list_new): Remove list_init(). To allocate new
2352 linked list, please use list_new().
2353 (listnode_add): Remove list_add_node(). To add new node to linked
2354 list, please use listnode_add().
2355 (list_delete_by_val): Revemove fucntion.
2356
23572000-10-16 Nobuaki Tanaka <nobby@po.ntts.co.jp>
2358
2359 * table.c (route_table_free): Reimplement route_table_free().
2360
23612000-10-11 Kunihiro Ishiguro <kunihiro@zebra.org>
2362
2363 * keychain.c (keychain_get): Register key_delete_func to key
2364 list's delete function. Use linklist.c instead of newlist.c.
2365
23662000-10-04 Akihiro Mizutani <mizutani@dml.com>
2367
2368 * filter.c (access_list_remark): Add access-list's remark command.
2369 (no_access_list): "no access-list 100 permit any" error message
2370 bug is fixed.
2371
23722000-10-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2373
2374 * memory.h (enum): Add MTYPE_SOCKUNION.
2375
23762000-10-02 Kunihiro Ishiguro <kunihiro@zebra.org>
2377
2378 * zebra-0.89 is released.
2379
23802000-10-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2381
2382 * linklist.c (list_add_node_head): Delete unused function.
2383 (list_add_node_tail): Likewise.
2384
23852000-09-26 Kunihiro Ishiguro <kunihiro@zebra.org>
2386
2387 * stream.c (stream_read_unblock): Add new function for unblocking
2388 read.
2389
23902000-09-26 Jochen Friedrich <jochen@nwe.de>
2391
2392 * smux.c (smux_register): Fix bug of can't register more than one
2393 MIB with SMUX.
2394
23952000-09-26 Makoto Otsuka <otsuka@inl.ntts.co.jp>
2396
2397 * vty.c (vty_close): Fix memory leak of sb_buffer.
2398 (vty_new): Likewise.
2399
24002000-09-21 steve@Watt.COM (Steve Watt)
2401
2402 * log.h: Do not declare zlog_priority[0] variable.
2403
24042000-09-12 Kunihiro Ishiguro <kunihiro@zebra.org>
2405
2406 * linklist.h (struct _list ): Add member cmp for compare function.
2407 (struct _list ): Member up is deleted
2408
24092000-09-12 David Lipovkov <dlipovkov@OpticalAccess.com>
2410
2411 * if.c: Include RIP_API header when RIP API is enabled.
2412
24132000-09-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2414
2415 * prefix.c (prefix_free): Siplify prefix_free().
2416
2417 * keychain.c (key_match_for_accept): strncmp check bug is fixed.
2418
24192000-09-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2420
2421 * zebra.h: Merge roken.h into zebra.h.
2422
24232000-09-05 Akihiro Mizutani <mizutani@dml.com>
2424
2425 * routemap.c (route_map_init_vty): Install route-map command to
2426 RMAP_NODE.
2427
24282000-08-22 Kunihiro Ishiguro <kunihiro@zebra.org>
2429
2430 * thread.c (thread_get_id): Remove pthread related garbage.
2431
2432 * command.h (struct host): Likewise.
2433
2434 * zebra.h: Likewise.
2435
24362000-08-20 Kunihiro Ishiguro <kunihiro@zebra.org>
2437
2438 * command.h (node_type ): Add AAA node for authentication.
2439
2440 * vty.c (vty_close): Do not close stdout.
2441
24422000-08-18 Kunihiro Ishiguro <kunihiro@zebra.org>
2443
2444 * vty.c (vty_init_vtysh): Added for vtysh.
2445
2446 * distribute.c (districute_list_prefix_all): Interface independent
2447 filter can be set.
2448 (distribute_list_all): Likewise.
2449 (config_show_distribute): Display current distribute-list status
2450 for "show ip protocols".
2451
24522000-08-18 Akihiro Mizutani <mizutani@dml.com>
2453
2454 * command.c (config_terminal_no_length): no terminal monitor ->
2455 terminal no monitor
2456 (cmd_init): Do not install service_terminal_length_cmd into
2457 ENABLE_NODE.
2458
2459 * vty.c (terminal_no_monitor): no terminal length -> terminal no
2460 length.
2461
24622000-08-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2463
2464 * zebra-0.88 is released.
2465
24662000-08-17 Magnus Ahltorp <ahltorp@nada.kth.se>
2467
2468 * vty.h (struct vty ): Add iac_sb_in_progress and sb_buffer for
2469 better IAC handling.
2470
2471 * vty.c (vty_telnet_option): Change telnet option handling.
2472
24732000-08-15 Gleb Natapov <gleb@nbase.co.il>
2474
2475 * zclient.c (zclient_redistribute_unset): New function added.
2476
24772000-08-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2478
2479 * zclient.c (zebra_interface_add_read): Change ifindex restore
2480 size from two octet to four.
2481 (zebra_interface_state_read): Likewise.
2482 (zebra_interface_address_add_read): Likewise.
2483
24842000-08-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2485
2486 * vty.c (vty_event): Use vector_set_index() instead of
2487 vector_set().
2488
24892000-08-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2490
2491 * zebra.h (ZEBRA_XXX_DISTANCE_DEFAULT): Define Default
2492 Administrative Distance of each protocol.
2493
24942000-08-07 Matthew Grant <grantma@anathoth.gen.nz>
2495
2496 * if.h (struct interface ): Add new member bandwidth to struct
2497 interface.
2498
2499 * zclient.c (zebra_interface_add_read): Fetch bandwidth value.
2500 (zebra_interface_state_read): Likewise.
2501
25022000-08-07 Gleb Natapov <gleb@nbase.co.il>
2503
2504 * routemap.c (route_map_event_hook): New hook route_map_event_hook
2505 is added. This hook is called when route-map is changed. The
2506 parameters passed to the hook are 'event' and 'route-map name'
2507
2508 * routemap.h: Add prototype for route_map_event_hook().
2509
25102000-08-06 Kunihiro Ishiguro <kunihiro@zebra.org>
2511
2512 * zclient.c (zebra_ipv4_route): zebra_ipv4_route(),
2513 zebra_ipv4_add(), zebra_ipv4_delete() are removed.
2514
2515 * routemap.c (route_map_empty): Add new function.
2516 (route_map_delete): Use route_map_index_delete() instead of
2517 route_map_index_free().
2518 (route_map_index_free): Function removed.
2519
25202000-08-06 Gleb Natapov <gleb@nbase.co.il>
2521
2522 * routemap.c (route_map_index_delete): Add check for route-map is
2523 empty or not.
2524
25252000-08-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2526
2527 * zclient.c (zebra_ipv4_add): Change socket arguemnt with struct
2528 zclient.
2529
25302000-08-02 Kunihiro Ishiguro <kunihiro@zebra.org>
2531
2532 * zclient.h (struct zebra): Add obuf for output buffer.
2533
2534 * if.c: Remove #ifdef NRL enclosing if_nametoindex() and
2535 if_indextoname().
2536
25372000-08-02 David Lipovkov <davidl@nbase.co.il>
2538
2539 * if.h (IF_PSEUDO_UNSET): IF_PSEUDO related macro added.
2540 (IF_UNKNOWN_SET): IF_UNKNOWN related macro deleted.
2541
2542 * if.c (interface_pseudo): Add "pseudo" command to interface node.
2543 (no_interface_pseudo): Add "no pseudo" command to interface node.
2544
2545 * zclient.c (zebra_interface_add_read): Set pseudo flag when it is
2546 send from zebra.
2547
25482000-08-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2549
2550 * zebra.h (ZEBRA_IPV4_NEXTHOP_LOOKUP): Add new message.
2551 (ZEBRA_IPV6_NEXTHOP_LOOKUP): Likewise.
2552
2553 * vty.c (vty_serv_un): Use AF_UNIX for backward compatibility.
2554
25552000-07-31 Kunihiro Ishiguro <kunihiro@zebra.org>
2556
2557 * vty.c: Use vector for VTY server thread listing instead of
2558 single value.
2559
25602000-07-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2561
2562 * keychain.c (no_key_chain): "no key chain WORD" command is added.
2563
25642000-07-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2565
2566 * command.c (config_from_file): If command fail in
2567 KEYCHAIN_KEY_NODE, down to KEYCHAIN_NODE.
2568
2569 * vty.h (struct vty ): Add index_sub member.
2570
25712000-07-27 Akihiro Mizutani <mizutani@dml.com>
2572
2573 * if.c: Help strings updates.
2574
25752000-07-11 Akihiro Mizutani <mizutani@dml.com>
2576
2577 * command.c (no_config_enable_password): Add "no enable password"
2578 command.
2579 (config_write_host): Display password string.
2580
2581 * routemap.c (route_map_delete_match): Add support for delete
2582 match without argument.
2583 (route_map_delete_set): Likewise.
2584
25852000-07-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2586
2587 * command.h (node_type ): Change KEYCHAIN_NODE and
2588 KEYCHAIN_KEY_NODE place just before INTERFACE_NODE.
2589
25902000-07-09 Jochen Friedrich <jochen@scram.de>
2591
2592 * smux.c (config_write_smux): Fixes the option to override OID and
2593 password for SMUX.
2594
25952000-07-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2596
2597 * command.h (node_type ): Add SMUX_NODE for SMUX configuration.
2598
25992000-07-09 Toshiaki Takada <takada@zebra.org>
2600
2601 * command.c: Sort descvec command's help.
2602
2603 * vty.c (vty_describe_command): Display '<cr>' at the end of
2604 descriptions.
2605
26062000-07-05 Toshiaki Takada <takada@zebra.org>
2607
2608 * command.c (cmd_ipv6_match), (cmd_ipv6_prefix_match): Fix bug
2609 treatment of double colon.
2610
26112000-07-04 Kunihiro Ishiguro <kunihiro@zebra.org>
2612
2613 * zclient.h: Add zclient_redistribute_default_{set,unset}().
2614
2615 * keychain.c: New file for authentication key management.
2616 * keychain.h: Likewise.
2617
2618 * tcpfilter.c: New file for TCP/UDP base filtering using ipfw or
2619 ipchains.
2620 * tcpfilter.h: Likewise.
2621
2622 * flap.h: New file for route flap dampening.
2623 * flap.c: Likewise.
2624
26252000-07-04 Toshiaki Takada <takada@zebra.org>
2626
2627 * filter.c (struct filter): Add exact flag.
2628 (access_list): Add exact-match command.
2629 (ipv6_access_list): Add exact-match command.
2630
26312000-07-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2632
2633 * zebra.h (ZEBRA_REDISTRIBUTE_DEFAULT_ADD): New message for
2634 request default route.
2635
26362000-07-01 Hideaki YOSHIFUJI ($B5HF#1QL@(B) <yoshfuji@ecei.tohoku.ac.jp>
2637
2638 * smux.c: Add IPv6 smux connection code.
2639
26402000-06-15 Kunihiro Ishiguro <kunihiro@zebra.org>
2641
2642 * vty.c (vty_complete_command): To cooperate readline library,
2643 returned string is newly allocated. So some match function case
2644 need, free of memory.
2645
26462000-06-12 Akihiro Mizutani <mizutani@dml.com>
2647
2648 * distribute.c: Fix help strings.
2649
26502000-06-11 Kunihiro Ishiguro <kunihiro@zebra.org>
2651
2652 * command.c (cmd_complete_command): Add check for vector_slot
2653 (vline, index) is not NULL when calculating lcd.
2654 (cmd_entry_function): First check variable arguemnt to prevent it
2655 from completion.
2656
26572000-06-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2658
2659 * vty.h (struct vty ): Add output_count member for displaying
2660 output route count. Remove arugment arg from output_func because
2661 the value is passed by vty argument. Change output to output_rn.
2662 Add output_clean function pointer member. Add output_type member.
2663
26642000-06-10 Toshiaki Takada <takada@zebra.org>
2665
2666 * command.c (show_startup_config): Add "show startup-config"
2667 command.
2668
26692000-06-06 Akihiro Mizutani <mizutani@dml.com>
2670
2671 * filter.c: Fix help strings.
2672
26732000-06-05 Kunihiro Ishiguro <kunihiro@zebra.org>
2674
2675 * prefix.h (struct prefix_rd): New prefix structure for routing
2676 distinguisher.
2677 (struct prefix): Add padding to every prefix structure.
2678
2679
2680 * routemap.c (route_map_add_match): When completely same match
2681 statement exists, don't duplicate it.
2682
26832000-06-05 Akihiro Mizutani <mizutani@dml.com>
2684
2685 * routemap.c: Change NAME to WORD.
2686
2687 * plist.c: Fix help strings.
2688
26892000-06-02 Akihiro Mizutani <mizutani@dml.com>
2690
2691 * routemap.c: Fix route-map help strings.
2692
26932000-06-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2694
2695 * command.c (cmd_filter_by_completion): Fix CMD_VARARG treatment
2696 to filter other non vararg commands.
2697
2698 * routemap.c (route_map_init_vty): Use install_default() for
2699 install common commands into route-map node..
2700
27012000-06-01 Akihiro Mizutani <mizutani@dml.com>
2702
2703 * command.h (OSPF_STR): Macro added.
2704
27052000-05-31 Kunihiro Ishiguro <kunihiro@zebra.org>
2706
2707 * command.c (cmd_complete_command): LCD completion must not modify
2708 installed command string.
2709
2710 * plist.c (ipv6_prefix_list): Fix wrong syntax definition. Change
2711 X:X::X:X to X:X::X:X/M.
2712
27132000-05-31 Toshiaki Takada <takada@zebra.org>
2714
2715 * vty.c (show_history): New defun added.
2716
27172000-05-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2718
2719 * command.h (CMD_COMPLETE_LIST_MATCH): New define for completion
2720 list. CMD_COMPLETE_MATCH is used for LCD completion.
2721
2722 * vty.c (vty_complete_command): Matched string's LCD is completed.
2723
2724 * command.c (cmd_lcd): New function for calculate LCD of matched
2725 strings.
2726
27272000-05-26 Kunihiro Ishiguro <kunihiro@zebra.org>
2728
2729 * command.c (install_default): config_write_terminal_cmd,
2730 config_write_file_cmd, config_write_memory_cmd are added to
2731 default node.
2732
2733 * memory.c (memory_init): Divide show memory command into each
2734 sort.
2735
2736 * command.c (cmd_init): config_write_terminal_cmd,
2737 config_write_file_cmd, config_write_memory_cmd are added to
2738 CONFIG_NODE.
2739
2740 * routemap.c (route_map_index_free): New function.
2741 (no_route_map_all): New DEFUN for "no route-map NAME".
2742
2743 * filter.c (no_access_list_all): New DEFUN for delete access-list
2744 with NAME.
2745 (no_ipv6_access_list_all): Likewise.
2746
27472000-05-23 Kunihiro Ishiguro <kunihiro@zebra.org>
2748
2749 * plist.c: Change IPV6_PREFIX to X:X::X:X. When "any" is
2750 specified, user can not use "ge" and "le" statement.
2751
27522000-05-22 Thomas Molkenbur <tmo@datus.datus.com>
2753
2754 * routemap.c (route_map_add_set): Fix bug of next pointer missing.
2755
2756 * table.c (route_table_free): Like wise.
2757
27582000-05-22 Toshiaki Takada <takada@zebra.org>
2759
2760 * vty.c (vty_stop_input): Set history pointer to the latest one.
2761
2762 * vty.c (vty_hist_add): Do not add command line history when input
2763 is as same as previous one.
2764
27652000-05-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2766
2767 * memory.h (enum): Add MTYPE_ECOMMUNITY and MTYPE_ECOMMUNITY_VAL.
2768
27692000-05-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2770
2771 * command.h (node_type ): Add BGP_VPNV4_NODE.
2772
27732000-05-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2774
2775 * vty.c (vtysh_accept): Add cast of struct sockaddr * to bind
2776 argument. Reported by: Vesselin Mladenov <mladenov@netbg.com>.
2777
2778 * filter.c (ipv6_access_list): Add IPv6 prefix example instead of
2779 IPv4 example. Reported by: Love <lha@s3.kth.se>.
2780
2781 * command.c (cmd_complete_command): Make it sure last element of
2782 matchvec is NULL. This fix problem which cause crush in
2783 vty_complete_command(). Reported by: JINMEI Tatuya
2784 <jinmei@isl.rdc.toshiba.co.jp>.
2785
27862000-04-28 Love <lha@s3.kth.se>
2787
2788 * prefix.h (struct prefix): Add padding.
2789
27902000-04-28 Kunihiro Ishiguro <kunihiro@zebra.org>
2791
2792 * command.c (show_version): Update copyright year.
2793
27942000-04-27 Kunihiro Ishiguro <kunihiro@zebra.org>
2795
2796 * routemap.c (route_map_apply): When map is NULL, return deny.
2797
27982000-04-26 Kunihiro Ishiguro <kunihiro@zebra.org>
2799
2800 * filter.c (access_list_apply): When access is NULL, return deny.
2801
2802 * plist.c (prefix_list_apply): When plist is NULL, return deny.
2803
28042000-04-23 Kunihiro Ishiguro <kunihiro@zebra.org>
2805
2806 * command.h (node_type ): Change RDISC_NODE to IRDP_NODE.
2807
28082000-04-18 Toshiaki Takada <takada@zebra.org>
2809
2810 * filter.[ch] (access_list_add_hook), (access_list_delete_hook):
2811 Add argument for hook function to give struct access_list *.
2812
28132000-04-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2814
2815 * plist.c (prefix_list_entry_match): In case of le nor ge is
2816 specified, exact match is performed.
2817 (prefix_list_entry_match): Add any entry matching check.
2818
28192000-04-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2820
2821 * vty.c (exec_timeout): Separate timeout setting to minutes and
2822 seconds.
2823 (no_exec_timeout): Add "no exec-timeout" command.
2824
2825 * vty.h (VTY_TIMEOUT_DEFAULT): Change default value from 300 to
2826 600.
2827
28282000-03-31 Jochen Friedrich <jochen@scram.de>
2829
2830 * smux.h (SMUX_CLOSE): The SMUX_CLOSE PDU is implicit integer, so
2831 it is a primitive encoding and not constructed.
2832
28332000-03-28 Toshiaki Takada <takada@zebra.org>
2834
2835 * memory.[ch] (enum): Add MTYPE_OSPF_EXTERNAL_INFO.
2836
28372000-03-26 Love <lha@s3.kth.se>
2838
2839 * zclient.c (zclient_read): Add nbytes size check for
2840 ZEBRA_HEADER_SIZE. Check return value of steam_read ().
2841
28422000-03-26 Rick Payne <rickp@rossfell.co.uk>
2843
2844 * routemap.c: Add flexible route-map commands such as on-match
2845 next, on-match goto N.
2846
2847 * routemap.h: Likewise
2848
28492000-03-23 Adrian Bool <aid@u.net.uk>
2850
2851 * command.c (config_log_trap): Add new command "log trap
2852 PRIORITY".
2853
28542000-03-14 Toshiaki Takada <takada@zebra.org>
2855
2856 * memory.c (struct memory_list): Add Link List and Link Node
2857 to view.
2858
2859 * memory.h (enum): Remove MTYPE_OSPF_EXTERNAL_ROUTE.
2860
28612000-01-20 Hideto Yamakawa <hideto.yamakawa@soliton.co.jp>
2862
2863 * str.c (snprintf): Fix bug of calling sprintf instead of
2864 vsprintf.
2865
28662000-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
2867
2868 * memory.h (enum): Add MTYPE_RIP_PEER.
2869
28702000-01-15 Toshiaki Takada <takada@zebra.org>
2871
2872 * memory.h (enum): Add MTYPE_OSPF_CRYPT_KEY.
2873
28742000-01-15 Kunihiro Ishiguro <kunihiro@zebra.org>
2875
2876 * command.h (node_type ): Add MASC_NODE for masc.
2877
28782000-01-09 Wang Jianliang <wangjl@soim.net>
2879
2880 * routemap.c (route_map_index_add): When route_map_index is not
2881 empty and insert new item at the head, it can cause core dump.
2882 Fix "if (index == map->head)" to "if (point == map->head).
2883 (route_map_add_set): If there is an old set command, override old
2884 set command with new one.
2885 (route_map_index_delete): Use while() instead of for for() for
2886 logical correctness.
2887
28881999-12-26 Kunihiro Ishiguro <kunihiro@zebra.org>
2889
2890 * memory.h (enum): Add MTYPE_BGP_STATIC.
2891
28921999-12-23 Alex Zinin <zinin@amt.ru>
2893 * zebra.h, zclient.*: dynamic int up/down message
2894 support
2895
28961999-12-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2897
2898 * thread.c (thread_cancel_event): Add a function for clean up
2899 events.
2900
29011999-12-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2902
2903 * dropline.c: Delete file.
2904 dropline.h: Linewise.
2905
29061999-12-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2907
2908 * filter.c (access_list_filter_delete): Wrong pointer
2909 access->master was pointed out after access is freed. I store
2910 master value at the beginning of the function.
2911
29121999-12-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2913
2914 * vty.c (exec_timeout): Change of VTY timeout affect to current
2915 VTY connection.
2916 (vty_accept): Instead of immediate exit() return -1.
2917
29181999-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2919
2920 * vty.c (vty_configure_lock): Configuration lock function added.
2921 Only one VTY can use CONFI_NODE at the same time.
2922
2923 * log.c: Delete zvlog_* functions. Now zlog_* does the same
2924 thing.
2925
2926 * log.c (log_init): Function removed.
2927 (log_close): Likewise.
2928 (log_flush): Likewise.
2929 (log_open): Likewise.
2930
2931 * vty.c (terminal_monitor): Add new command.
2932 (no_terminal_monitor): Likewise.
2933
2934 * log.c (old_log): Function removed.
2935 (old_log2): Likewise.
2936 (old_log_warn): Likewise.
2937
29381999-12-04 Toshiaki Takada <takada@zebra.org>
2939
2940 * command.c (cmd_ipv6_match): New function added.
2941 (cmd_ipv6_prefix_match): Likewise.
2942
29431999-12-04 Kunihiro Ishiguro <kunihiro@zebra.org>
2944
2945 * command.c (cmd_ipv6_match):
2946
2947 * table.c: Delete #ifdef HAVE_MBGPV4.
2948
2949 * prefix.h (struct prefix): Add safi member.
2950 (struct prefix_ipv4): Likewise.
2951 (struct prefix_ipv6): Likewise.
2952
29531999-12-04 Rumen Svobodnikov <rumen@linux.tu-varna.acad.bg>
2954
2955 * memory.c (struct mstat): Revert to support MEMORY_LOG.
2956
29571999-11-25 Kunihiro Ishiguro <kunihiro@zebra.org>
2958
2959 * version.h: Bump up to 0.81c for testing new kernel codes.
2960
29611999-11-21 Kunihiro Ishiguro <kunihiro@zebra.org>
2962
2963 * thread.h (struct thread): Pthread support is disabled all
2964 platform.
2965
29661999-11-21 Michael Handler <handler@sub-rosa.com>
2967
2968 * Include <limits.h> and <strings.h> under SUNOS_5.
2969
29701999-11-21 Kunihiro Ishiguro <kunihiro@zebra.org>
2971
2972 * sockunion.c (in6addr_cmp): Enclosed by #define HAVE_IPV6
29731999-11-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2974
2975 * command.h (node_type ): Add BGP_IPV4_NODE and BGP_IPV6_NODE.
2976
29771999-11-12 Kunihiro Ishiguro <kunihiro@zebra.org>
2978
2979 * command.c (disable): Add `disable' command.
2980
29811999-11-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2982
2983 * plist.c (vty_prefix_list_install): Add any check.
2984
29851999-11-04 Kunihiro Ishiguro <kunihiro@zebra.org>
2986
2987 * command.h (node_type ): Add DUMP_NODE.
2988
29891999-11-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2990
2991 * smux.c: Change default SMUX oid to compatible with gated.
2992
29931999-10-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2994
2995 * if_rmap.c: New file added.
2996
2997 * if_rmap.h: New file added.
2998
29991999-10-29 Alex Zinin <zinin@amt.ru>
3000
3001 * hash.c: add hash_free() function
3002
30031999-10-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3004
3005 * hash.c (hash_clean): Add clean function.
3006
3007 * plist.c (prefix_list_reset): Add reset function.
3008
3009 * filter.c (access_list_reset): Add reset function.
3010
30111999-10-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3012
3013 * client.c: Merged with zclient.c.
3014 * client.h: Merged with zclient.h.
3015
30161999-10-15 Jordan Mendelson <jordy@wserv.com>
3017
3018 * md5.c: Imported from GNU C Library.
3019 * md5-gnu.h: Likewise.
3020
30211999-10-15 Jochen Friedrich <jochen@scram.de>
3022
3023 * smux.c (smux_getresp_send): SMUX_GETRSP codes improvement.
3024
30251999-10-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3026
3027 * smux.h: New file added.
3028
3029 * snmp.c: Rename to smux.c.
3030
30311999-10-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3032
3033 * command.c (cmd_execute_command_strict): Filter ambious commands.
3034 (cmd_filter_by_string): Change to return enum match_type.
3035
30361999-10-01 Toshiaki Takada <takada@zebra.org>
3037
3038 * vty.c (vty_describe_fold): New function which does VTY
3039 description line fold.
3040 * vty.c (vty_describe_command): Set description column.
3041
30421999-09-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3043
3044 * plist.c (prefix_list_init_ipv4): VTY user interface is improved.
3045
30461999-09-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3047
3048 * command.c (cmd_filter_by_string): Fix bug of CMD_IPV4 and
3049 CMD_IPV4_PREFIX check. Both return type must be exact_match.
3050
30511999-09-24 Toshiaki Takada <takada@zebra.org>
3052
3053 * command.c (cmd_filter_by_completion),
3054 (is_cmd_ambiguous): Check IPv4 address, IPv4 prefix and range
3055 parameter matches range.
3056
30571999-09-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3058
3059 * routemap.c (route_map_apply): Returm RM_DENYMATCH when no match
3060 is performed.
3061
30621999-09-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3063
3064 * vty.c (vty_read): Control-C stop VTY_MORE mode.
3065
30661999-09-20 Kunihiro Ishiguro <kunihiro@zebra.org>
3067
3068 * command.h (node_type ): Add ACCESS_IPV6_NODE and
3069 PREFIX_IPV6_NODE.
3070
3071 * distribute.h: New file added.
3072
3073 * command.h (node_type ): Delete DISTRIBUTE_NODE.
3074
30751999-09-18 Kunihiro Ishiguro <kunihiro@zebra.org>
3076
3077 * vty.c (vty_terminate_all): New function added for reload
3078 support.
3079
30801999-09-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3081
3082 * memory.h (enum): Add new type MTYPE_OSPF_EXTERNAL_ROUTE.
3083
30841999-08-31 Janos Farkas <chexum@shadow.banki.hu>
3085
3086 * vty.c (vty_read): Handle also 0x7f (alt-backspace), just like
3087 esc-ctrl-h (delete word backwards).
3088
30891999-08-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3090
3091 * if.h: Add if_nametoindex for NRL.
3092
30931999-08-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3094
3095 * if.c (if_create): New function.
3096
30971999-08-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3098
3099 * snmp.c: New file.
3100
31011999-08-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3102
3103 * stream.c (stream_put): stream_memcpy () is changed to stream_put
3104 (). stream_get () is added.
3105
31061999-08-18 Toshiaki Takada <takada@zebra.org>
3107
3108 * memory.h (enum): Add MTYPE_OSPF_LSA_DATA.
3109
31101999-08-18 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3111
3112 * table.c (route_table_finish): add function frees table.
3113
31141999-08-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3115
3116 * memory.h (enum): Add MTYPE_RTADV_PREFIX.
3117
31181999-08-11 Kunihiro Ishiguro <kunihiro@zebra.org>
3119
3120 * if.h (struct interface ): hw_address, hw_address_len added.
3121
31221999-08-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3123
3124 * if.h (struct interface ): Change structure member if_data to
3125 info, index to ifindex.
3126
31271999-08-08 Rick Payne <rickp@rossfell.co.uk>
3128
3129 * routemap.c: Multi protocol route-map modification.
3130
3131 * routemap.c (route_map_apply): Route match process bug is fixed.
3132
31331999-08-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3134
3135 * thread.c (thread_fetch): When signal comes, goto retry point.
3136
31371999-08-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3138
3139 * Makefile.am: Add sockopt.c and sockopt.h
3140 * sockopt.c: New file.
3141 * sockopt.h: New file.
3142
31431999-08-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3144
3145 * version.h (ZEBRA_VERSION): Release zebra-0.75
3146
31471999-08-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3148
3149 * memory.h (enum): Add MTYPE_RIPNG_AGGREGATE.
3150
31511999-07-31 Kunihiro Ishiguro <kunihiro@zebra.org>
3152
3153 * sockunion.h: Add sockunion_getpeername ().
3154
31551999-07-27 Kunihiro Ishiguro <kunihiro@zebra.org>
3156
3157 * version.h: Release zebra-0.74
3158
31591999-07-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3160
3161 * command.h (struct host): Delete lines from struct host. Add
3162 lines to struct vty.
3163
3164 * command.c: Delete `lines LINES'. Terminal display line settings
3165 should be done by `terminal length' command.
3166
31671999-07-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3168
3169 * memory.h (enum): MTYPE_OSPF_PATH are added.
3170
31711999-07-22 Toshiaki Takada <takada@zebra.org>
3172
3173 * memory.h (enum): MTYPE_OSPF_NEXTHOP is added.
3174
31751999-07-21 Toshiaki Takada <takada@zebra.org>
3176
3177 * linklist.c (list_add_node_prev), (list_add_node_next),
3178 (list_add_list): New function added.
3179
3180 * table.c (route_table_free): New function added.
3181
31821999-07-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3183
3184 * plist.c (config_write_prefix): Set write flag when configuration
3185 is written.
3186
31871999-07-15 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3188
3189 * prefix.c : prefix_cmp() added. change apply_mask() to
3190 apply_mask_ipv4(), and new apply_mask() added.
3191
31921999-07-14 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3193
3194 * prefix.c (prefix2str): append prefixlen.
3195
31961999-07-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3197
3198 * command.c (config_terminal): Change "config terminal" to
3199 "configure terminal". Reported by Georg Hitsch
3200 <georg@atnet.at>.
3201 (config_terminal_length): `terminal length <0-512>' is added. At
3202 this moment this command is only usef for vty interface.
3203 Suggested by Georg Hitsch <georg@atnet.at>.
3204
32051999-07-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3206
3207 * routemap.c (rulecmp): Add wrapper function of strcmp.
3208
32091999-07-08 Rick Payne <rickp@rossfell.co.uk>
3210
3211 * sockunion.c (inet_aton): Fix bug of inet_aton.
3212
32131999-07-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3214
3215 * version.h (ZEBRA_VERSION): Start zebra-0.73
3216
32171999-07-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3218
3219 * version.h: Bump up to 0.72.
3220
32211999-07-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3222
3223 * command.c (install_default): New function for install default
3224 commands to the node.
3225
3226 * memory.h (enum): MTYPE_NEXTHOP is added.
3227
32281999-07-01 <kunihiro@zebra.org>
3229
3230 * command.c (no_banner_motd): `no banner motd' command added.
3231
32321999-06-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3233
3234 * regex.c: Update to glibc-2.1.1's posix/regex.c
3235
3236 * regex-gnu.h: Update to glibc-2.1.1's posix/regex.h
3237
3238 * prefix.h (IPV4_ADDR_SAME): Macro added.
3239 (IPV6_ADDR_SAME): Likewise.
3240
32411999-06-29 Kunihiro Ishiguro <kunihiro@zebra.org>
3242
3243 * memory.h (enum): Add MTYPE_OSPF_VERTEX
3244
3245 * version.h: Bump up to 0.71.
3246
3247 * vty.c (vty_serv_sock_addrinfo): Use addrinfo function to bind
3248 VTY socket when IPv6 is enabled.
3249
32501999-06-28 Kunihiro Ishiguro <kunihiro@zebra.org>
3251
3252 * vty.c (vty_serv_sock): Change vty_serv_sock determine which
3253 address family to bind.
3254
3255 * command.c: Add quit command.
3256
32571999-06-26 NOGUCHI kay <kay@dti.ad.jp>
3258
3259 * vty.c (vty_read_config): Fix bug of configuration file path
3260 detection.
3261
32621999-06-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3263
3264 * version.h: Bump up to 0.70.
3265
32661999-06-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3267
3268 * buffer.h (GETL): Remove GETL macro.
3269
3270 * version.h: Bump up to 0.69.
3271
32721999-06-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3273
3274 * if.c (connected_add): Commented out connected_log.
3275
32761999-06-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3277
3278 * command.h (struct cmd_element ): strvec and descvec is combined
3279 into newstrvec.
3280
3281 * command.c (desc_make): Function removed.
3282 (desc_next): Function removed.
3283
3284 * command.h (struct cmd_element ): docvec is removed from struct
3285 cmd_element.
3286
32871999-06-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3288
3289 * command.c (cmd_execute_command): Remove command NULL check.
3290
3291 * command.h (struct cmd_element ): Add newstrvec entry to struct
3292 cmd_element.
3293 (DEFUN2): DEFUN2 macro is removed. DEFUN is extended to support
3294 (a|b|c) statement.
3295 (DESC): DESC macro is removed.
3296
3297 * vty.c (vty_complete_command): When return value is
3298 CMD_ERR_NO_MATCH, don't display error message.
3299
33001999-06-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3301
3302 * table.c (route_next_until): New function.
3303
3304 * version.h: Bump up to 0.68.
3305
33061999-06-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3307
3308 * vty.c (vty_close): Free vty->buf when vty is closed.
3309
3310 * memory.h (enum): Add MTYPE_COMMUNITY_ENTRY and
3311 MTYPE_COMMUNITY_LIST.
3312
3313 * vty.h (struct vty ): Change buf from static length buffer to
3314 variable length buffer.
3315
3316 * vty.c (vty_ensure): New function added.
3317
33181999-06-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3319
3320 * command.h (node_type ): Add COMMUNITY_LIST_NODE.
3321
3322 * command.c (config_enable_password): Freeing host.enable bug is
3323 fixed.
3324 (config_enable_password): Add argc count check.
3325
33261999-05-31 Kunihiro Ishiguro <kunihiro@zebra.org>
3327
3328 * version.h: Bump up to 0.67.
3329
33301999-05-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3331
3332 * command.c (zencrypt): New function for encrypt password.
3333
3334 * command.h (struct host): Add password_encrypt and
3335 enable_encrypt.
3336
33371999-05-30 Jochen Friedrich <jochen@scram.de>
3338
3339 * command.h (struct host): New member encrypt is added for
3340 encrypted password.
3341
33421999-05-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3343
3344 * vty.c: Remove all_digit_check function. Instead use all_digit.
3345
3346 * prefix.c (all_digit): New function for checking string is made
3347 from digit character.
3348
33491999-05-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3350
3351 * Makefile.am (libzebra_a_SOURCES): Add zclient.c.
3352 (noinst_HEADERS): Add zclient.h
3353
3354 * zclient.[ch]: New file for zebra client routine.
3355
3356 * memory.h (enum): Add MTYPE_ZEBRA.
3357
33581999-05-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3359
3360 * version.h (ZEBRA_VERSION): Update to 0.66.
3361
33621999-05-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3363
3364 * buffer.h (GETC,GETW): Macro deleted.
3365
33661999-05-15 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
3367
3368 * prefix.h (IPV4_NET0, IPV4_NET127): Macro added.
3369
33701999-05-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3371
3372 * vty.c (service_advanced_vty): New command added.
3373 (no_service_advanced_vty): Likewise.
3374
33751999-05-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3376
3377 * vty.c (vty_auth): If advanced flag is set and enable password is
3378 not set, directly login to the ENABLE_NODE. This feature is
3379 originally designed and implemented by Stephen R. van den Berg
3380 <srb@cuci.nl>.
3381
3382 * command.h (host): Add advanced flag to struct host for advanced
3383 vty terminal interface.
3384
3385 * version.h (ZEBRA_VERSION): Update to 0.65 for next beta release.
3386
33871999-05-14 Stephen R. van den Berg <srb@cuci.nl>
3388
3389 * command.h (node_type ): Add TABLE_NODE.
3390
3391 * vty.c (vty_telnet_option): Check host.lines value.
3392
3393 * command.c (config_lines): DEFUN for 'lines LINES' command.
3394
3395 * zebra.h: Include <sys/utsname.h> for uname().
3396 (RT_TABLE_MAIN): Defined as 0 if OS does not support multiple
3397 routing table.
3398
3399 * vty.c (vty_auth): Directly login to the ENABLE_NODE when enable
3400 password is not set.
3401 (vty_prompt): Get machine's hostname when hostname is not set.
3402
34031999-05-11 James Willard <james@whispering.org>
3404
3405 * command.c (config_exit): Close connection when `exit' command is
3406 executed at ENABLE_NODE.
3407
34081999-05-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3409
3410 * vty.c (vty_stop_input): `C-c' key change node to ENABLE_NODE.
3411
3412 * command.c (cmd_execute_command_strict): Matched command size
3413 check added.
3414 (cmd_make_desc_line): New function for DEFUN2.
3415
3416 * command.h (struct cmd_element ): Add descsize.
3417
34181999-05-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3419
3420 * command.h (struct cmd_element ): Remame descvec to docvec.
3421 (struct cmd_element ): Add descvec for new description system.
3422
3423 * command.c (desc_make): Check cmd->descvec.
3424
34251999-05-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3426
3427 * memory.h (enum): Add MTYPE_CLUSTER, MTYPE_CLUSTER_VAL.
3428
34291999-05-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3430
3431 * version.h (ZEBRA_VERSION): Bump up to 0.64 for next beta
3432 release.
3433
34341999-05-04 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3435
3436 * linklist.c (list_delete_all_node): bug fix.
3437 previous code loses current position when node
3438 is deleted.
3439
34401999-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3441
3442 * command.h (DESC): Macro added.
3443 (struct cmd_element2): Delete struct cmd_element2.
3444
3445 * plist.c (prefix_list): Sequential number option check is added.
3446
34471999-05-02 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3448
3449 * log.c (zvlog_{debug,info,notice,warn,err}): have been
3450 added. now we can log both console and file, but still
3451 need some fix about config write.
3452
34531999-05-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3454
3455 * log.c (zvlog_debug): Fix yasu's change.
3456
34571999-05-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3458
3459 * plist.c (prefix_list): Fix typo.
3460
34611999-04-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3462
3463 * Set version to 0.63 for first beta package.
3464
34651999-04-27 Carlos Barcenilla <barce@frlp.utn.edu.ar>
3466
3467 * prefix.c (str2prefix_ipv4): Fix prefix length check.
3468 (str2prefix_ipv6): Likewise.
3469
34701999-04-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3471
3472 * memory.h (enum): Add MTPYE_PREFIX_LIST and
3473 MTYPE_PREFIX_LIST_ENTRY.
3474
3475 * command.h (node_type ): Add PREFIX_NODE.
3476
34771999-04-25 Carlos Barcenilla <barce@frlp.utn.edu.ar>
3478
3479 * command.c: ALIAS (config_write_memory_cmd) and ALIAS
3480 (copy_runningconfig_startupconfig_cmd) is added.
3481
3482 * table.c (route_node_lookup): Unused match variable deletion.
3483
34841999-04-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3485
3486 * Makefile.am (libzebra_a_SOURCES): plist.c added.
3487 (noinst_HEADERS): plist.h added.
3488
3489 * plist.c, plist.h: New file added.
3490
3491 * memory.h (enum): Rename MTYPE_AS_PASN to MTYPE_AS_STR.
3492 * memory.c: Likewise.
3493
34941999-04-19 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
3495
3496 * command.c (show_version): `show version' command added.
3497
34981999-04-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3499
3500 * prefix.c (str2prefix_ipv6): Prefix length overflow check.
3501
35021999-04-19 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
3503
3504 * prefix.c (str2prefix_ipv4): Prefix length overflow check.
3505
35061999-04-19 Alex Bligh <amb@gxn.net>
3507
3508 * prefix.c (sockunion2hostprefix): Function added.
3509 (sockunion2prefix): Address family was not set. Now it is set.
3510
3511 * vty.c: VTY access-class command is added.
3512
35131999-04-18 Kunihiro Ishiguro <kunihiro@zebra.org>
3514
3515 * memory.c: Change xmalloc to zmalloc. xcalloc, xrealloc, xfree,
3516 xstrdup are likewise.
3517
35181999-04-18 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3519
3520 * thread.c: Add thread_execute for other routing daemon.
3521 OSPF tasks need to be generated by "sheduled" and "executed".
3522
35231999-04-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3524
3525 * buffer.c: Rewrite buffer_write and buffer_flush related
3526 functions for fixing bugs. Reason of the problem and fix is
3527 suggested by Alex Bligh <amb@gxn.net>.
3528
35291999-04-12 Alex Bligh <amb@gxn.net>
3530
3531 * command.c (cmd_entry_function_descr): Added for variable
3532 argument help display.
3533
35341999-04-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3535
3536 * regex.c, regex-gnu.h: Imported from GNU sed-3.02 distribution.
3537
35381999-03-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3539
3540 * stream.c: stream_fifo_free bug is fixed.
3541
35421999-03-19 Toshiaki Takada <takada@zebra.org>
3543
3544 * stream.c (stream_strncpy): Added for getting any length bytes
3545 from stream.
3546
35471999-03-16 Kunihiro Ishiguro <kunihiro@zebra.org>
3548
3549 * version.h (ZEBRA_BUG_ADDRESS): New macro added.
3550
35511999-03-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3552
3553 * buffer.c (buffer_flush_window): If ep is same as buffer's size
3554 length and lp is overrun one octet.
3555
35561999-03-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3557
3558 * vty.h: add VTY's timeout function.
3559
35601999-03-05 <kunihiro@zebra.org>
3561
3562 * command.h (node_type ): Add OSPF6_node.
3563
35641999-03-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3565
3566 * zebra.h: Check HAVE_SYS_SELECT_H when include <sys/select.h>
3567
35681999-03-03 Jeroen Ruigrok/Asmodai <asmodai@wxs.nl>
3569
3570 * zebra.h: Include <net/if_var.h> if it exists.
3571
35721999-03-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3573
3574 * getopt.[ch],getopt1.c: Sync with glibc-2.1.
3575
3576 * log.c (zlog): Tempolary ZLOG_STDOUT feature added.
3577
3578 * command.h: Include vector.h and vty.h
3579
35801999-02-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3581
3582 * routemap.h (struct route_map_rule_cmd): Add prefix arguemnt.
3583
3584 * routemap.c (route_map_apply_index): Add prefix argument.
3585 (route_map_apply): Likewise.
3586
3587 * memory.h (enum): Add MTYPE_ROUTE_MAP_COMPILED.
3588
3589 * stream.c: Add stream_fifo related functions.
3590
35911999-02-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3592
3593 * daemon.c: Return integer value. File descriptor close is added.
3594
3595 * memory.h (enum): add MTYPE_OSPF_LSA.
3596
35971999-02-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3598
3599 * rsh.c: Remove empty file.
3600
36011999-02-22 <kunihiro@zebra.org>
3602
3603 * routemap.c: Add add/delete hook to route_map_master.
3604
36051999-02-19 Peter Galbavy <Peter.Galbavy@knowledge.com>
3606
3607 * str.[ch] added to supply wrappers for snprintf(), strlcat() and
3608 strlcpy on system without these.
3609
36101999-02-18 Peter Galbavy <Peter.Galbavy@knowledge.com>
3611
3612 * syslog support added
3613
36141999-02-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3615
3616 * filter.c (access_list_add_hook): added for hook function management.
3617 * filter.c (access_list_delete_hook): Likewise.
3618
36191999-01-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3620
3621 * stream.c: New file.
3622 * stream.h: New file.
3623 * Divide stream related fucntions from buffer.[ch] into stream.[ch].
3624
36251999-01-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3626
3627 * memory.h (enum): add MTYPE_STREAM, MTYPE_STREAM_DATA
3628
3629 * buffer.c (stream_new): Set MTYPE_STREAM to XMALLOC argument.
3630
36311998-12-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3632
3633 * routemap.c: route_map_index_delete() added.
3634
36351998-12-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3636
3637 * buffer.c (buffer_empty): check cp instead of sp.
3638
36391998-12-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3640
3641 * radix.[ch]: Deleted.
3642
36431998-12-15 Magnus Ahltorp <map@stacken.kth.se>
3644
3645 * buffer.c: Prototype fixes.
3646 * prefix.c: Likewise.
3647 * sockunion.c: Likewise.
3648 * sockunion.h: Likewise.
3649
36501998-12-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3651
3652 * vty.c (vty_read): DELETE key works as vty_delete_char.
3653
36541998-12-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3655
3656 * log.c (time_print): chane %y to %Y.
3657
36581998-12-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3659
3660 * distribute.c: new file.
3661
36621998-12-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3663
3664 * filter.c: Remove all of struct prefix_{ipv4,ipv6} and add
3665 complete support of IPv6 access list.
3666
3667 * command.c (config_write_element): function delete.
3668 (config_write_host): function add. password and enable password
3669 isn't printed to vty interface.
3670
36711998-12-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3672
3673 * filter.c: Change prefix_ipv4 to prefix and add support of
3674 prefix_ipv6 filtering.
3675
36761998-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3677
3678 * Makefile.am (INCLUDES): add @INCLUDES@ for Linux IPv6 inet6-apps
3679 header includes.
3680
36811998-12-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3682
3683 * log.c (log_flush): fix function name typo.
3684
36851998-12-04 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3686
3687 * memory.h: OSPF memory type is added.
3688
36891998-11-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3690
3691 * command.c (sort_node): add sort_node() for pretty printing of
3692 command on vty interface.
3693 (config_password): delete the restriction of charaster of password
3694 string.
3695
36961998-09-05 Kunihiro Ishiguro <kunihiro@debian.zebra.org>
3697
3698 * prefix.c (prefix_ipv4_any): add prefix_ipv4_any().
3699
37001998-08-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3701
3702 * network.h: New file.
3703
37041998-08-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3705
3706 * vty.c (vty_will_echo): function name change from vty_off_echo.
3707
37081998-08-18 Kunihiro Ishiguro <kunihiro@zebra.org>
3709
3710 * buffer.h: add PUTC,PUTW,PUTL macros.
3711
37121998-07-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3713
3714 * route.[ch]: renamed to prefix.[ch]
3715
37161998-06-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3717
3718 * prefix_in, prefix_in6 is replaced by prefix_ipv4, prefix_ipv6.
3719
3720 * Makefile.am: @INCLUDES@ is deleted from INCLUDES.
3721
37221998-06-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3723
3724 * host.[ch]: merged with command.[ch]
3725
37261998-05-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3727
3728 * Makefile.am (libzebra_a_SOURCES): add route.c to libzebra_a_SOURCES.
3729
37301998-05-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3731
3732 * route.c (str2prefix): str2prefix () is gone.
3733
37341998-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3735
3736 * vty.c (vty_read_config): change CONDIR to SYSCONFDIR.
3737
3738 * .cvsignore: add file.
3739
3740 * memory.c (xerror): add arguent `type' and `size'.
3741
3742 * socket.c: deleted.
3743
37441998-05-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3745
3746 * vector.c: malloc,free,realloc -> XMALLOC,XFREE,XREALLOC.
3747 * linklist.c: same as above.
3748
37491998-04-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3750
3751 * filter.[ch]: added.
3752
37531998-04-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3754
3755 * vty.c (config_who): return CMD_SUCCESS
3756
37571998-04-01 Jochen Friedrich <jochen@scram.de>
3758
3759 * table.c (route_dump_node): route_dump_node is IPv6 specific
3760 function so move #ifdef to the end of route_dump_node ().
3761
37621998-03-05 "Hannes R. Boehm" <hannes@boehm.org>
3763
3764 * if.c: DEFUN(interface_desc) added.
3765
37661998-03-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3767
3768 * if.c: separated from ripd/rip_interface.c
3769
37701998-03-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3771
3772 * thread.[ch] : added.
3773
37741998-02-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3775
3776 * vty.c (vty_delete_char): fix size bug.
3777 (vty_backward_pure_word): function added.
3778 (vty_read): ESC + 'f' perform vty_forward_word.
3779 (vty_read): ESC + 'b' perform vty_backward_word.
3780
37811998-02-11 Kunihiro Ishiguro <kunihiro@zebra.org>
3782
3783 * radix.c (radix_lookup_rt): add mask check.
3784 (radix_delete_duproute): add mask check.
3785
37861998-02-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3787
3788 * command.c (config_write_file): fix vty -> file_vty.
3789
37901998-02-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3791
3792 * command.c (cmd_filter_ambiguous): add complex type treatment.
3793
37941998-02-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3795
3796 * vty.c (vty_time_print): function added.
3797 (vty_complete_command): now [...] element isn't shown by completion.
3798
37991998-01-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3800
3801 * command.c : change from cmd_install_node() to install_node().
3802
38031998-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
3804
3805 * route.[ch]: struct rt{} is replaced by struct prefix{}.
3806
38071998-01-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3808
3809 * command.c (cmd_execute_command): check command length.
3810
3811 * timer.c (zebra_timer_set): add zebra_timer_set.
3812
38131998-01-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3814
3815 * command.h (node_type ): add ZEBRA_NODE.
3816
3817 * command.c (config_exit): add RIP_NODE.
3818 (config_write_file): add RIP_NODE.
3819
38201998-01-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3821
3822 * print_version.c (print_version): Now Copyright is 1996-1998.
3823
3824 * sockunion.c (sockunion_log): moved from ../zebra/route.c
3825
38261997-12-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3827
3828 * host.c (config_logfile): change 'log PATH' to 'logfile PATH'.
3829
3830 * sockunion.c (sockunion_sameprefix): add same prefix for
3831 sockunion.
3832
38331997-12-29 Kunihiro Ishiguro <kunihiro@zebra.org>
3834
3835 * radix.[ch] : are moved from ../zebra directroy.
3836
3837 * command.c (config_from_file): if command execution failed down
3838 level to CONFIG_NODE.
3839
3840 * host.c: config_log function which enable 'log FILENAME' command.
3841
38421997-12-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3843
3844 * vty.c: add vty_transpose_chars (). Now you can use '^T' to
3845 transpose character.
3846
3847 * command.c: cmd_cmdsize add, this is useful to check incomplete
3848 command.
3849
38501997-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3851
3852 * fd.h: add family for address family
3853
38541997-12-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3855
3856 * command.o
3857 * vty.o
3858 * host.o is moved from ../zebra
3859
38601997-08-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3861
3862 * make library directory.
3863