]> git.proxmox.com Git - mirror_frr.git/blame - lib/ChangeLog
[zebra] trivial: fix spelling mistake
[mirror_frr.git] / lib / ChangeLog
CommitLineData
0df7c91f
PJ
12008-07-21 Paul Jakma <paul.jakma@sun.com>
2
3 * sockunion.c: ifdef out various places that converted
4 v4mapped sockets to pure v4. Doesn't seem necessary at all,
5 presumably a workaround for now historical inet_ntop bugs (?)
6
72008-07-21 Michael H. Warfield <mhw@wittsend.com>
8 YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
9
10 * sockopt.{c,h}: (sockopt_tcp_signature) Add TCP-MD5SIG support.
11
3d52bb80
PJ
122008-06-07 Paul Jakma <paul@jakma.org>
13
14 * stream.{c,h}: (stream_{put,write}) add const qualifier to source
15 argument. Change u_char to void *.
16
e96f9203
DO
172008-06-02 Denis Ovsienko
18
19 * workqueue.[ch]: completely drop WQ_AIM_HEAD flag and
20 work_queue_aim_head() function, they aren't needed any more
21 with the new meta queue structure; (work_queue_run) don't
22 increment the counter on work item requeueing
23
11486b52
PJ
242008-02-28 Paul Jakma <paul.jakma@sun.com>
25
26 * log.c: (mes_lookup) Sowmini Varadhan diagnosed a problem where
27 this function can cause a NULL dereference, on lookups for unknown
28 indices, or messages with NULL strings. Can occur, e.g., debug
29 logging code when processing received messages. Fixed to accept a
30 pointer to a default string to be used if there is no match.
31 * log.h: LOOKUP adjusted to match
32
5f568084
PJ
332008-02-28 Paul Jakma <paul.jakma@sun.com>
34
35 * linklist.c: This implementation expects that the data pointer not
36 be null, e.g. listgetdata() asserts this. The list add methods
37 don't apply the same sanity check.
38
39 Noted by Jim Carlson in bug #437.
40
55edb0d4
AS
412008-01-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
42
43 * zebra.h: Revert previous change, no need to include <net/if_media.h>
44 here.
45
c543a173
AS
462008-01-10 Ingo Flaschberger <if@xip.at>
47
48 * zebra.h: If HAVE_BSD_LINK_DETECT is defined, include <net/if_media.h>.
49
912df1e8
PJ
502008-01-08 Pavol Rusnak <prusnak@suse.cz>
51
52 * memory.c: (mtype_memstr) Fix accidental shift past width of type,
53 constant should have been forced to UL, rather than being left to
54 default to int.
55
6ce80bdb
DO
562007-11-12 Denis Ovsienko
57
58 * linklist.c: (listnode_add_after) Don't forget to increment list
59 items counter.
60 * workqueue.h: Changed working queue flags from enum into integer
61 and introduced WQ_AIM_HEAD flag to indicate our will to insert
62 new data before the list head.
63 * workqueue.[ch]: (work_queue_schedule, show_work_queues,
64 work_queue_plug, work_queue_unplug) Adjust to the new flags style.
65 * workqueue.[ch]: (work_queue_aim_head) new function to control the
66 WQ_AIM_HEAD flag
67 * workqueue.[ch]: (work_queue_new) Explicitly set both WQ flags
68 during new WQ initialization.
69 * workqueue.[ch]: (work_queue_add) If WQ_AIM_HEAD indicates a need
70 to place the new data into list head, do it.
71
a56ef883
PJ
722007-10-22 Lorenzo Colitti <lorenzo@colitti.com>
73
74 * smux.c: (smux_stop) Avoid cancelling a defunct thread pointer
75 (smux_start) Stop smux before trying to start it, possibly again.
76
7593fddf
DO
772007-10-04 Denis Ovsienko
78
79 * pid_output.c: (pid_output) stop using LOGFILE_MASK
80 (0600 by default), introduce and use PIDFILE_MASK (0644)
81 instead.
82
6b148faa
PJ
832007-09-18 Paul Jakma <paul.jakma@sun.com>
84
85 * privs.c: definition of ZCAP_NET_ADMIN on Solaris should
86 be PRIV_SYS_IP_CONFIG, when that's available. Thus allowing
87 Quagga to work with in Solaris zones with exclusive IP
88 instances.
89
b7fe4141
DO
902007-08-21 Denis Ovsienko
91
92 * sockopt.[ch]: (setsockopt_so_sendbuf, getsockopt_so_sendbuf):
93 new functions to adjust ospfd working socket.
94
dc95824a
DO
952007-08-13 Denis Ovsienko
96
97 * zebra.h: introduce ZEBRA_ERR_KERNEL and ZEBRA_ERR_NOERROR
98
7591d8b8
PJ
992007-07-06 Atis Elsts <atis@mikrotik.com>
100
101 * pqueue.{c,h}: Export trickle_up
102
6d58272b
PJ
1032007-07-26 Paul Jakma <paul.jakma@sun.com>
104
105 * log.c: (mes_lookup) warning about code not being in same-number
106 array slot should be debug, not warning. E.g. BGP has several
107 discontigious number spaces, allocating from different parts of a
108 space is not uncommon (e.g. IANA assigned versus vendor-assigned
109 code points in some number space).
110
97cabcf7
AS
1112007-07-06 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
112
113 * sockopt.{c,h}: (setsockopt_multicast_ipv4) Add some comments about
114 the arguments.
115
0dc0b708
AS
1162007-06-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
117
118 * zebra.h: On linux, we seem to need to include <linux/types.h> before
119 <sys/sysctl.h>, otherwise we get isisd compilation errors about
120 __be16 not being defined.
121
d46d2a24
PJ
1222007-05-10 Paul Jakma <paul.jakma@sun.com>
123
124 * zebra.h: Don't try define _GNU_SOURCE, autoconf should do it.
125
fb982c25
PJ
1262007-05-03 Paul Jakma <paul.jakma@sun.com>
127
128 * memtypes.c: Add MTYPE_ATTR_EXTRA and MTYPE_BGP_ROUTE_EXTRA
129
7514fb77
PJ
1302007-05-01 David L Stevens <dlstevens@us.ibm.com>
131
132 * (general) These changes collectively add route-map and
133 prefix-list support to zebra and fix a bug in "show
134 route-map" (with no argument).
135 * command.h: added PROTOCOL_NODE type
136 * log.c: (proto_name2num) new function, protocol name to
137 number translation.
138 * routemap.c: (vty_show_route_map) fixed "show route-map"
139 without route-map name
140 * routemap.h: added RMAP_ZEBRA type
141 * zebra.h: added proto_name2num() prototype
142
bcdda30b
AS
1432007-04-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
144
145 * log.c: (quagga_timestamp) Optimize the subsecond timestamp generation.
146
1ed72e0b
AS
1472007-04-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
148
149 * command.c: (config_write_host) Save "log timestamp precision"
150 if not default value.
151 (show_logging) Show configured timestamp precision.
152 (config_log_timestamp_precision) Enable configuration of timestamp
153 precision.
154 (no_config_log_timestamp_precision) Restore default timestamp
155 precision.
156 (cmd_init) Install new timestamp precision commands.
157 * log.h: (struct zlog) New timestamp_precision field.
158 (quagga_timestamp) New function to generate a timestamp with the
159 desired precision.
160 (struct timestamp_control) Declare a structure for use in avoiding
161 repeated duplicate calls to quagga_timestamp.
162 * log.c: (quagga_timestamp) New function to generate a timestamp
163 of the desired precision.
164 (time_print) Call quagga_timestamp if the time hasn't already been
165 calculated.
166 (vzlog) Initialize a timestamp_control structure and pass it to
167 time_print and vty_log.
168 (zlog_backtrace) Fix 64-bit problem: cannot print size_t with %u.
169 * vty.h: Must now include "log.h".
170 (vty_log) Takes an additional struct timestamp_control argument.
171 * vty.c: (vty_log_out) Use new struct timestamp_control and new
172 quagga_timestamp function to print timestamps of the desired
173 precision.
174 (vty_time_print) Use new quagga_timestamp function.
175 (vty_log) Accept new struct timestamp_control argument and pass it
176 down to vty_log_out.
177
eda9ba74
AS
1782007-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
179
180 * smux.c: (smux_trap) Fix printf format to work with 64-bit size_t.
181
6dc686a2
PJ
1822007-04-07 Paul Jakma <paul.jakma@sun.com>
183
184 * prefix.h: Add define to match IPv4 Link-Local addresses
185
afb88a66
AS
1862007-03-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
187
188 * log.c: (mes_lookup) Make the function more robust: check for
189 cases where the index does not match the key value at that position.
190 If so, give a warning and fall back to a linear search.
191 And improve the error message in cases where even that fails.
192
e4529636
AS
1932006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
194
195 * if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating
196 whether a peer address has been configured. Comment now shows
197 the new interpretation of the destination addr: if ZEBRA_IFA_PEER
198 is set, then it must contain the destination address, otherwise
199 it may contain the broadcast address or be NULL.
200 (CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete
201 macros that were specific to IPv4 and not fully general.
202 (CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag.
203 (CONNECTED_PREFIX) New macro giving the prefix to insert into
204 the RIB: if CONNECTED_PEER, then use the destination (peer) address,
205 else use the address field.
206 (CONNECTED_ID) New macro to come up with an identifying address
207 for the struct connected.
208 * if.c: (if_lookup_address, connected_lookup_address) Streamline
209 logic with new CONNECTED_PREFIX macro.
210 * prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros
211 for better performance than the general prefix_copy function.
212 * zclient.c: (zebra_interface_address_read) For non-null destination
213 addresses, set prefixlen to equal the address prefixlen. This
214 is needed to get the new CONNECTED_PREFIX macro to work properly.
215
98954844
PJ
2162006-10-14 Paul Jakma <paul.jakma@sun.com>
217
218 * if.c: (general) Handle upgrades from SUNWzebra, which tried
219 to track each logical interface as a seperate struct
220 interface, to Quagga, which assigns only one struct interface
221 per ifindex.
222 (if_sunwzebra_get) Try decompose a logical interface name
223 (fooX:Y) to the 'primary' name (fooX), for Solaris.
224 (interface_cmd) Use if_sunwzebra_get on Solaris.
225
965b83f9
AS
2262006-09-26 Pierre-Yves Ritschard <pierre-yves@spootnik.org>
227
228 * smux.c: (smux_open,smux_trap,smux_register) Fix various
229 asn_build_* calls to pass the proper length in the final
230 argument: use sizeof(<variable>) instead of sizeof(<type>),
231 since there were several inconsistencies between the actual
232 variable type and the size that was passed. This should
233 fix some problems on 64-bit architectures where sizeof(int)
234 != sizeof(long).
235
db9c0df9
PJ
2362006-08-25 Paul Jakma <paul.jakma@sun.com>
237
238 * thread.c: (general) Add support for monotonic clock, it may still
239 jump forward by huge amounts, but should be immune to going
240 backwards. Fixes bug #134.
241 (quagga_gettimeofday_relative_adjust) helper, does what name
242 says - adjusts gettimeofday based relative timer.
243 (quagga_gettimeofday) helper to keep recent_time up to date.
244 (quagga_get_relative) helper, update and getch the relative
245 timer using gettimeofday(). POSIX CLOCK_MONOTONIC is also
246 supported, but the code is not enabled yet nor tested.
247 (quagga_real_stabilised) helper, retrieve absolute time but
248 stabilised so as to never decrease.
249 (quagga_gettime) Exported interface, analogous to POSIX
250 clock_gettime() in interface, supporting several clocks.
251 (quagga_time) Exported interface, analogous to traditional
252 time(), will never decrease.
253 (recent_relative_time) Convenience function to retrieve
254 relative_time timeval, similar to existing recent_time absolute
255 timeval, for when an approximately recent value will do.
256 (remainder) Update to use above helpers.
257 (thread_getrusage) Previously was a macro, but needs to be
258 a function to twiddle with thread.c private stuff.
259 * thread.c: Point the GETRUSAGE macro at previous function.
260 Export quagga_gettime, quagga_time and recent_relative_time for
261 general use.
262
cc8b13a0
PJ
2632006-07-25 Paul Jakma <paul.jakma@sun.com>
264
265 * thread.h: (struct thread) Add a cache pointer to the struct
266 cpu_thread_history, if it is known - saving hash lookup on
267 each thread_call.
268 * thread.c: (thread_call) Cache the pointer to the
269 cpu_thread_history, so that future thread_calls of same
270 thread can avoid the hash_lookup.
271
9d0a3260
AS
2722006-07-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
273
274 * vty.c: (vty_log_out) Do not call vty_close, because this could
275 result in a parent function's accessing the freed memory.
276 Instead, set status VTY_CLOSE and call shutdown(vty->fd, SHUT_RDWR).
277 And add a comment on vty_close.
278
74542d73
AS
2792006-07-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
280
281 * vty.c: (vty_log_out, vty_read, vty_flush, vtysh_flush, vtysh_read)
282 After an I/O error, must set vty->monitor to 0 before calling
283 zlog_warn, otherwise an infinite recursion could occur
284 (since zlog_warn triggers a message to be written to the vty,
285 and that in turn triggers another error message when it fails, etc.).
286
08942da5
AS
2872006-07-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
288
289 * vty.c: (vty_log_out) Debug messages to terminal vty sessions
290 should include timestamps.
291
74176d22
PJ
2922006-06-28 Paul Jakma <paul.jakma@sun.com>
293
294 * memory.c: Fix typo in cpp conditional around malloc.h, from
295 comment in bug #269.
296
95509e64
PJ
2972006-06-27 Paul Jakma <paul.jakma@sun.com>
298
299 * route_types.awk: Remove setting the 'bare' numeric route type
300 in redist strings.
301
e5cd706c
PJ
3022006-06-15 Paul Jakma <paul.jakma@sun.com>
303
304 * command.c: (cmd_describe_command_real) Fix leak, CID #38.
8ce5cfd1
PJ
305 * memory.h: Experimental, have XFREE macro NULL out the freed
306 pointer.
c024fd0c
PJ
307 * linklist.c: (list_delete) call list_delete_all_node, don't
308 duplicate it.
630c97ce
PJ
309 * if.c: (if_flag_dump) remove the whitespace indentation, callers
310 should provide.
e5cd706c 311
35cfc90c
PJ
3122006-05-28 Paul Jakma <paul.jakma@sun.com>
313
314 * zebra.h: Include inttypes.h rather than stdint.h, best practice
315 according to the autoconf manual.
316 Add UINT*_MAX defines for older platforms lacking these (FBSD 4)
d09552d0
PJ
317 * memory.c: malloc.h is deprecated in favour of stdlib.h, however
318 we still need it on GNU Libc for mallinfo().
a4b30303
PJ
319 * vty.c: (vty_log/vty_log_fixed) dont crash if called when vty
320 hasn't been initiliased.
fb66b29c
PJ
321 * log.c: (general) Add support for Sun libc printstack().
322 (hex_append) make the cpp conditional on general HAVE_STACK_TRACE
323 define.
324 (zlog_backtrace_sigsafe) Ditto. Add printstack() version of the
325 the DUMP macro in this function.
35cfc90c 326
9c42a6eb
PJ
3272006-05-23 Paul Jakma <paul.jakma@sun.com>
328
329 * route_types.txt: New file, table of ZEBRA_ROUTE definitions.
330 * route_types.awk: New script, to parse previous and generate
331 (for now) redistribute string defines.
332 * Makefile.am: build route_types.h using previous two, ala
333 memtypes.h, include the script and table file in EXTRA_DIST.
334 * command.h: pull in route_types.h, add a REDIST_STR define.
335
adf62214
PJ
3362006-05-21 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
337
338 * if.h: (struct connected) Document the meaning of the
339 ZEBRA_IFC_REAL and ZEBRA_IFC_CONFIGURED flags.
340
d6d672aa
PJ
3412006-05-15 Paul Jakma <paul.jakma@sun.com>
342
343 * log.c: (general) Generalise struct zebra_route_desc into
344 struct zebra_desc_table and, similar to route_types, add a
345 command_types table to describe Zserv protocol commands.
346 (route_types[]) use a macro to use designated initialisers
347 while avoiding tedious duplication.
348 (zserv_command_string) lookup string from zebra_desc_table,
349 similar to zebra_route_string
350 * zebra.h: Add declaration for zserv_command_string, adjust the
351 comments to reflect zebra_desc_table.
352
d16e0433
PJ
3532006-05-13 Paul Jakma <paul.jakma@sun.com>
354
355 * vty.c: (vty_describe_command) CID #39 fix was too hasty, just
356 cause it /can/ leak doesn't mean it always will have, check
357 first.
358
9376c342
PJ
3592006-05-12 Paul Jakma <paul.jakma@sun.com>
360
361 * plist.c: (vty_prefix_list_uninstall) Fix potential NULL deref
362 of prefix and typestr strings, Coverity CID #3.
d2519962
PJ
363 * command.c: (cmd_complete_command_real) Fix leak of cmd_vector
364 in error case, Coverity CID #37.
5fc60519
PJ
365 (cmd_describe_command_real) Fix return of freed pointer when
366 no-match, CID #55.
2fe8aba3
PJ
367 * vty.c: (vty_describe_command) fix leak of describe vector in
368 error path, CID #39.
9376c342 369
6cf0cf0c
PJ
3702006-03-30 Paul Jakma <paul.jakma@sun.com>
371
372 * command.h: (DEFUN_CMD_FUNC_TEXT) Annotate arguments as
373 potentially being unused.
213d8dad 374 * workqueue.c: (work_queue_run) fix line length of comment
6cf0cf0c 375
d4ce4f68
PJ
3762006-03-27 Paul Jakma <paul.jakma@sun.com>
377
378 * memtypes.awk: Fix gensub call, g should be a string..
379
68784535
PJ
3802006-03-25 Paul Jakma <paul.jakma@sun.com>
381
382 * workqueue.h: (struct work_queue) Remove status field and
383 state flag, no longer used.
384
b51f126e
PJ
3852006-03-19 Paul Jakma <paul.jakma@sun.com>
386
387 * memtypes.c: Add MTYPE_BGP_SYNCHRONISE.
388
cec0c4fb
PJ
3892006-03-16 Paul Jakma <paul.jakma@sun.com>
390
391 * Makefile.am: Fix -version-info argument.
392
41be32bf
PJ
3932006-03-15 Paul Jakma <paul.jakma@sun.com>
394
395 * memory.c: (mtype_memstr) new helper function to
396 return human friendly string for a byte count.
397 (mtype_stats_alloc) new function, for users to retrieve
398 number of objects allocated.
399 (show_memory_mallinfo) New function, show mallinfo statistics
400 if available.
401 (show_memory_all_cmd) Call show_memory_mallinfo, if mallinfo
402 is available.
403 * memory.h: Export mtype_memstr and mtype_stats_alloc.
404 Provide a define for a reasonable buffer size for
405 mtype_memstr.
406
924f9d32
PJ
4072006-03-14 Paul Jakma <paul.jakma@sun.com>
408
409 * privs.c: (zprivs_caps_init) Change user IDs before lowering
410 privileges, while this seems to work on Linux, on Solaris
411 it rightfully refuses due to PRIV_PROC_SETID having been
412 dropped.
86228fde 413 * command.h: Add the struct host global exported from command.c
924f9d32 414
478ccfd6
PJ
4152006-03-06 Paul Jakma <paul.jakma@sun.com>
416
417 * if.h: export show_address_cmd, for anyone who wishes to use
418 it.
419
5a54df97
PJ
4202006-02-21 Paul Jakma <paul.jakma@sun.com>
421
422 * sockunion.c: (sockunion_{su2str,log}) Use XSTRDUP.
423 Particularly with _su2str, as that string gets XFREEd,
424 which can be annoying if run debug code in memory.c.
425
306d8890 4262006-02-02 Paul Jakma <paul.jakma@sun.com>
427
428 * workqueue.h: (struct work_queue) Remove the delay field.
429 It served no purpose and just introduced bad behaviour.
430 Should be excised before its allowed to escape into 1.0.
431 This removes need for the 'flood' and runs_since_clear
432 fields.
433 * workqueue.c: (general) excise delay factor between queue
434 runs, hence the 'flood' crap too.. See above.
435
581a02a9 4362006-01-19 Paul Jakma <paul.jakma@sun.com>
437
438 * stream.c: (stream_getq_from) should use POSIX uint64_t
439 not u_int64_t. Latter is neither a traditional BSD type, nor
440 a POSIX type.
441
eac314c7 4422006-01-17 Vincent Jardin <vincent.jardin@6wind.com>
443
444 * md5.c: Don't forget to keep const.
445 * regex.c: Cleanup code and remove warnings.
446
7d0b0c4b 4472006-01-17 Paul Jakma <paul.jakma@sun.com>
448
449 * md5.{c,h}: (md5_loop) Is better off taking a void * and doing
450 cast to byte wise type internally, avoids needs for casts
451 in users.
789f78ac 452 * vty.c: (no_terminal_monitor_cmd) New ALIAS for
453 terminal_no_monitor, in the more normal negating format,
454 to be kind to my fingers.
455 (vty_init) install new ALIAS.
d211086a 456 * zclient.{c,h}: (zclient_create_header) export this, seems others
457 could use it (in lieu of more complete zserv helpers).
7d0b0c4b 458
c1b9800a 4592006-01-16 Paul Jakma <paul.jakma@sun.com>
460
461 * zclient.h: Update the Zserv protocol header with a version
462 field. Define the old command field to be a 'marker', to
463 allow old Zserv and updated Zserv to be differentiated.
464 Future updates will bump the version field obviously. New
465 command field is made wider. Try to stop using the
466 'zebra_size_t' typedef in the callbacks.
467 * zclient.c: Update to read/write new format header.
468
c77d4546 4692006-01-11 Paul Jakma <paul.jakma@sun.com>
470
471 * if.h: (struct interface) expand flags to 8 bytes.
472 * zclient.c: (zebra_interface_{add,state}_read) stream read of
473 interface flags now need to use stream_getq.
474 (zebra_interface_if_set_value) ditto
475
4b201d46 4762006-01-10 Paul Jakma <paul.jakma@sun.com>
477
478 * stream.c: (stream_new) Allocate stream data as seperate object.
479 (stream_free) free the data.
480 (stream_resize) new function, resize stream to new size.
481 (stream_{get,put}q*) new functions to get/put quad word size
482 types.
483 * stream.h: (struct stream) make data seperate from the stream.
484 Export new stream_resize and quad-word get/put functions.
485
f80a016f 4862005-12-29 Greg Troxel <gdt@fnord.ir.bbn.com>
487
488 * vty.c (vty_hello): add cast to quiet lint (from David Young)
489
00c290e0 4902005-11-26 Paul Jakma <paul.jakma@sun.com>
491
492 * buffer.c: (struct buffer_data) change gcc zero array
493 declaration to C99 incomplete array.
494 * stream.h: (struct stream) same
495
6e0f1b94 4962005-11-24 Paul Jakma <paul.jakma@sun.com>
497
498 * privs.c: (zcaps2sys/solaris) remove unused variable.
499 (zprivs_state_caps/solaris) Format string missing a
500 specifier.
b6026073 501 * zebra.h: s/u_int/unsigned int/, u_int is a BSD type, defining
502 __USE_BSD on Linux pulls in further things from netinet/ip.h
503 which dont preprocess for some reason. There is no C99
504 shorthand type directly equivalent to u_int afaict, so don't
505 use it.
6e0f1b94 506
889e9311 5072005-11-14 Paul Jakma <paul.jakma@sun.com>
508
509 * (general) pass struct work-queue to callback functions.
510 * workqueue.h: (struct work_queue) move the state flag
511 variables to end.
512 Add an opaque pointer to spec, for user-data global to the
513 queue.
514 Pass reference to work_queue to all callbacks.
515 * workqueue.c: (work_queue_item_remove) pass ref to workqueue
516 to user callbacks.
517 (work_queue_run) ditto.
518
190880dc 5192005-11-14 Paul Jakma <paul.jakma@sun.com>
520
521 * (general) Add state to detect queue floods. There's no sense
522 trying to be sparing of CPU resources, if the queue is
523 flooding and using ever more memory resources. we should just
524 get on with clearing the queue.
525 The sense of delay and hold were wrong way around, fix.
526 * workqueue.h: (struct work_queue) Add status bitfield. Add
527 'flood' integer to workqueue spec. Add runs_since_clear
528 counter to workqueue.
529 * workqueue.c: (work_queue_new) set defaults for delay, hold
530 and flood.
531 (work_queue_add) initial schedule should use delay, not hold.
532 (show_work_queues) Print flood field, conserve whitespace.
533 (work_queue_unplug) use delay, not hold.
534 (work_queue_run) consecutive runs should be seperated by hold
535 time, not delay.
536 Keep track of number of consecutive runs, go into 'overdrive'
537 if queue is being flooded, we can't avoid making heavy use of
538 resources, better to use CPU than ever more RAM.
76367ea9 539 * zebra.h: [bug #231] include stdint, if its there.
190880dc 540
5412005-11-05 Paul Jakma <paul.jakma@sun.com>
db29ae5f 542
543 * routemap.c: (vty_show_route_map_entry) call action is
544 seperate from exit action, latter should still be printed
545 regardless of whether a call is specified.
546
34204aac 5472005-11-03 Paul Jakma <paul.jakma@sun.com>
548
549 * zebra.h: BSD BYTE_ORDER define isn't available everywhere,
550 define if needs be.
551 * checksum.h: new file. checksum.c exports in_cksum, provide
552 a header for it.
553 * checksum.c: (in_cksum) callers shouldn't have to know it uses
554 a u_short internally, change to void *.
555 * Makefile.am: Add checksum.h
556 * command.h: remove bogus trailling slash.
557 * md5.c: (general) Update it for the twentieth century. ANSI
558 declarations are widely supported now.. Don't include system
559 headers, only include zebra.h. Use POSIX types (the
560 alternative is to define u_int64_t in a portable way - rest
561 of Quagga needs same cleanup).
562 Make endian-conditional code be compiler conditional rather
563 than preprocessor conditional, so that breakage gets noticed
564 quicker.
565 * md5.h: POSIX types. Get rid of the odd __P() non-ANSI capable
566 compiler compatibility hack.
9c4f1c6f 567 * if.c: (connected_free) use MTYPE for connected label.
a49ad236 568 * memtypes.c: Add MTYPE_CONNECTED_LABEL
569 * memtypes.h: Update auto-built file.
34204aac 570
0241684e 5712005-10-26 Paul Jakma <paul.jakma@sun.com>
572
573 * (general) Cleanup a some calls to XFREE,strdup, etc. to use
574 the memory.h macros.
575 * memtypes.c: Add MTYPE_IF_RMAP_NAME, MTYPE_PQUEUE,
576 MTYPE_PQUEUE_DATA and MTYPE_HOST.
577 * memtypes.h: update auto-built file.
578 * if_rmap.c: Use MTYPE_IF_RMAP_NAME.
579 * pqueue.c: Use the two MTYPE_PQUEUE mtypes for allocations.
05865c90 580 * command.c: Use MTYPE_HOST, MTYPE_STRVEC. Some other fixups,
581 including fixing some likely leaks in config_write_file.
582 * vty.c: memory macro usage fixes.
583 (vty_read_config) fix leak where relative config file is
584 specified.
0241684e 585
c188c37c 5862005-10-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
587
588 * sockopt.c: (setsockopt_multicast_ipv4) If IP_ADD_MEMBERSHIP
589 fails with errno equal to EADDRINUSE, then issue an info
590 message and try IP_DROP_MEMBERSHIP followed by IP_ADD_MEMBERSHIP.
591
24065a3d 5922005-10-20 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
593
594 * memory.c: (show_memory_vty) Omit zero statistics. Print separators
595 only if some non-zero stats have been printed in between.
596 (show_separator) New function to print a separator.
597 (show_memory_all) Keep track of whether a separator is needed
598 between the different memory statistics groups.
599
5012322d 6002005-10-18 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
601
602 * memtypes.h: Add MTYPE_OSPF_VERTEX_PARENT (to match memtypes.c).
603
eb3da6df 6042005-10-18 Paul Jakma <paul.jakma@sun.com>
605
606 * memtypes.c: (memory_list_ospf) Add MTYPE_OSPF_VERTEX_PARENT.
607
f52d13cb 6082005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
609
610 * zebra.h: Declare new functions zebra_route_string() and
611 zebra_route_char().
612 * log.c: (zroute_lookup,zebra_route_string,zebra_route_char) New
613 functions to map zebra route numbers to strings.
614
5e4914c3 6152005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
616
617 * smux.[ch]: allow to retreive global OID (identified by <0
618 namelen).
619
ceacedba 6202005-09-29 Paul Jakma <paul.jakma@sun.com>
621
622 * zebra.h: Solaris capabilities requires priv.h to be included.
623 * privs.{c,h}: Add support for Solaris Least-Privileges.
624 privs.h: Reduce some of the abstract capabilities, which do
625 not have rough equivalents on both systems. Rename the net
626 related caps to _NET, as they should have been in first
627 place.
628 (zprivs_terminate) should take the zebra_privs_t as argument so
629 that it can update change pointer.
630 Add an additional privilege state, ZPRIVS_UNKNOWN.
631 * privs.c: (various capability functions) Add
632 Solaris privileges variants.
633 (zprivs_state) Use privs.c specific generic types to
634 represent various capability/privilege related types, so that
635 each can be typedef'd as appropriate on each platform.
636 (zprivs_null_state) static added, to hold the state the null
637 method should report (should be raised by default, and
638 LOWERED if zprivs_terminate has been called)
639 (zprivs_state_null) Report back the zprivs_null_state.
640 (cap_map) Make it able to map abstract capability to multiple
641 system capabilities.
642 (zcaps2sys) Map to abstract capabilities to multiple system
643 privileges/capabilities.
644 (zprivs_init) move capability related init to seperate
645 function, zprivs_caps_init.
646 (zprivs_terminate) ditto, moved to zprivs_caps_terminate.
647 Set the change_state callback to the NULL state, so the
648 user can continue to run and use the callbacks.
649
fbf5d033 6502005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
651
652 * filer.c: show protocol name in filter_show()
653 * plist.c: show protocol name in vty_show_prefix_entry()
654 * routemap.c: show protocol name in vty_show_route_map_entry()
655 * vty.c: in vty_command(), show protocol name if command unknown
656
c1a03d47 6572005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
658
659 * md5-gnu.h: removed
660 * md5.h: replaces md5-gnu.h
661 * Makefile.am: use correct md5.h
662 * md5.c: import from WIDE
663
75b2dd02 6642005-09-21 Paul Jakma <paul.jakma@sun.com>
665
666 * memtypes.{c,h}: Add MTYPE_AS_SEG_DATA.
667
e6a4feb7 6682005-09-19 Hasso Tepper <hasso at quagga.net>
669
670 * str.[ch]: Add strndup() from glibc.
671
eb820afe 6722005-09-05 Paul Jakma <paul.jakma@sun.com>
673
674 * command.c: (install_element) be more robust. Eg, cmd_init
675 need not have been called, some applications may use other
676 library subsystems, which call install_element, without the
677 application wanting commands and hence not calling cmd_init.
678
1e836590 6792005-08-22 Hugo Santos <hsantos@av.it.pt>
680
681 * command.h: (enum node_type) Add BGP_IPV6M_NODE
682 * command.c: (node_parent) Handle BGP_IPV6M_NODE node
683 (config_exit, config_end) ditto
684 * vty.c: (vty_end_config) Handle BGP_IPV6M_NODE node
685
0312f0cd 6862005-08-10 Greg Troxel <gdt@fnord.ir.bbn.com>
687
688 * getopt.h: Don't declare getopt (rather than getopt_long), since
689 quagga doesn't need it.
690 * getopt.c (getopt): Don't define getopt.
691
7907c6c9 6922005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
693 * prefix.c: (prefix_ipv4_new, prefix_ipv6_new): Call prefix_new
694 to allocate the memory to make sure that all struct prefix pointers
695 point to objects of the same length (avoids memory overruns
696 on struct prefix assignments).
697 (prefix_ipv4_free, prefix_ipv6_free): Simply call prefix_free.
698 It is interesting to note that these functions are never actually
699 called anywhere in the code. Instead prefix_free was already
700 being called directly, despite the previous MTYPE incompatibility.
701
330009f7 7022005-07-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
703
704 * prefix.c: (ip_masklen) While loop should test that 'pnt' pointer is
705 in range before dereferencing it.
706
510e209d 7072005-06-24 Pawel Worach <pawel.worach@gmail.com>
708
709 * getopt.h: add further tests for full getopt declaration on
710 various systems.
711
354f3b66 7122005-06-18 Paul Jakma <paul.jakma@sun.com>
713
714 * memtypes.h: update autobuilt file to match memtypes.c changes
715
200df115 7162005-06-01 Paul Jakma <paul.jakma@sun.com>
717
718 * memtypes.c: Add MTYPE_BGP_PROCESS_QUEUE and
719 MTYPE_BGP_CLEAR_NODE_QUEUE
720
8176c19f 7212005-05-24 Paul Jakma <paul@dishone.st>
722
723 * memtypes.h: update this auto-built file. (maybe we should just
724 remove it, is GNU awk a terrible dependency to have?)
725
d5c92539 7262005-05-23 Paul Jakma <paul@dishone.st>
727
728 * memtypes.awk: use character classes, which work correctly in
729 all LC_COLLATE environments, unlike A-Z, which doesnt work in
730 eg estonian collate order. Reported by Hasso.
d4f0960c 731 * routemap.c: (rmap_onmatch_goto) fix crash if 'continue' command
732 is used, which does not supply an argv[0].
733 this is a backport candidate /iff/ the trailing ; is removed
734 from VTY_GET_INTEGER_RANGE
735 * vty.h: fix the VTY_GET macros, do {..} while(0) so they have
736 correct function like syntax in usage.
269d74fd 737 * workqueue.h: Add a WQ_QUEUE_BLOCKED item_status return code,
738 to allow a queue function to indicate the queue is not
739 ready/blocked - rather than any problem with the item at hand.
740 Add a notion of being able to 'plug' and 'unplug' a queue.
741 Add helpers to plug/unplug a queue.
742 Add a completion callback, to be called when a queue is emptied.
743 * workqueue.c: (work_queue_new) remove useless list_free.
744 (work_queue_schedule) new internal helper function to schedule
745 queue, if appropriate.
746 (work_queue_add) use work_queue_schedule
747 (show_work_queues) Print 'P' if queue is plugged.
748 (work_queue_plug) new API function, plug a queue - ie prevent it
749 from 'drained' / processed / scheduled.
750 (work_queue_unplug) unplug a queue, allowing it to be drained
751 / scheduled / processed again.
752 (work_queue_run) Add support for WQ_QUEUE_BLOCKED.
753 Add comment for RETRY_NOW case.
754 Make hysteris more aggresive in ramping up granularity, improves
755 performance significantly.
756 Add support for calling completion callback when queue is emptied,
757 possibly useful for knowing when to unplug a queue.
d5c92539 758
dc81807a 7592005-05-19 Paul Jakma <paul@dishone.st>
760
761 * thread.c: (thread_cancel_event) the number of pending events
762 cancelled is potentially useful information, dont throw it away,
763 pass it back to the caller.
2ba9a37a 764 * sockunion.c: (sockunion_getsockname) use MTYPE_SOCKUNION, not TMP
765 (sockunion_getpeername) ditto
e387e665 766 * memtypes.c: (memory_list_bgp) add MTYPE_BGP_PEER_HOST
dc81807a 767
024a7f06 7682005-05-15 Paul Jakma <paul@dishone.st>
769
770 * getopt.h: It's not just __GNU_LIBRARY__ which defines
771 getopt, eg __EXTENSIONS__ does too on SunOS. It still seems
772 awfully fragile though.
773 * getopt.c: include zebra.h after config.h, before including
774 getopt.h so that things at least are consistent..
775 * getopt1.c: ditto
776
42c98199 7772005-05-07 Yar Tikhiy <yar@comp.chem.msu.su>
778
779 * sockopt.c: Add support for BSD style ifindex in ip_mreq.
780
8cc4198f 7812005-05-06 Paul Jakma <paul@dishone.st>
782
783 * (general) extern and static'ification of functions in code and
784 header.
785 Cleanup any definitions with unspecified arguments.
786 Add casts for callback assignments where the callback is defined,
787 typically, as passing void *, but the function being assigned has
788 some other pointer type defined as its argument, as gcc complains
789 about casts from void * to X* via function arguments.
790 Fix some old K&R style function argument definitions.
791 Add noreturn gcc attribute to some functions, as appropriate.
792 Add unused gcc attribute to some functions (eg ones meant to help
793 while debugging)
794 Add guard defines to headers which were missing them.
795 * command.c: (install_node) add const qualifier, still doesnt shut
796 up the warning though, because of the double pointer.
797 (cmp_node) ditto
798 * keychain.c: (key_str2time) Add GET_LONG_RANGE() macro, derived
799 fromn vty.h ones to fix some of the (long) < 0 warnings.
800 * thread.c: (various) use thread_empty
801 (cpu_record_hash_key) should cast to uintptr_t, a stdint.h type
802 * vty.h: Add VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX so they
803 removed from ospfd/ospf_vty.h
804 * zebra.h: Move definition of ZEBRA_PORT to here, to remove
805 dependence of lib on zebra/zserv.h
806
e7fe8c88 8072005-05-06 Hasso Tepper <hasso at quagga.net>
808
809 * sockunion.c: Fix warning message.
810
0dab9303 8112005-05-03 Paul Jakma <paul@dishone.st>
812
813 * stream.h: Add comment about the special zero-ing ability of
814 stream_put.
815 (stream_recvmsg, stream_write) should return ssize_t and size_t
816 respectively. Should both be extern linkage.
817 (stream_recvfrom) Stream aware wrapper around recvfrom, in style
818 of stream_read_try.
819 * stream.c: (stream_recvfrom) new function, wrapper around recvfrom.
820 (stream_recvmsg, stream_write) ssize_t and size_t return values
821
8b70d0b0 8222005-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
823
824 Add wall-clock timing statistics to 'show thread cpu' output.
825 * thread.h: Define struct rusage_t to contain wall-clock time
826 and cpu time. Change GETRUSAGE macro to collect both pieces
827 of data. Make appropriate changes to struct cpu_thread_history
828 to track CPU time and real time. Change proto for
829 thread_consumed_time to return real and cpu time elapsed.
830 And declare a new global variable 'struct timeval recent_time'.
831 * thread.c (struct timeval recent_time): New global timestamp variable.
832 (timeval_adjust): If timeout is negative, set to 0 (not 10
833 microseconds). And remove upper bound of 1,000,000 seconds, since
834 this does not seem to make any sense (and it breaks
835 funcname_thread_add_timer_timeval).
836 (timeval_cmp): Should return long, not int.
837 (vty_out_cpu_thread_history): Show CPU time and real time.
838 (cpu_record_hash_print): Calculate totals for CPU and real time.
839 (cpu_record_print): Change 'show thread cpu' title to show CPU and
840 real time.
841 (thread_timer_remain_second): Put current time in global recent_time.
842 (funcname_thread_add_timer_timeval): Fix assert. Replace 2-case
843 switch assignment with a ternary expression. Use global recent_time
844 variable. Fix use of timeval_adjust (previously, the value was not
845 actually being adjusted).
846 (thread_cancel): Add missing "break" statement in case
847 THREAD_BACKGROUND.
848 (thread_timer_wait): Use global recent_time value instead of calling
849 gettimeofday. And there's no need to check for negative timeouts,
850 since timeval_subtract already sets these to zero.
851 (thread_timer_process): Timers are sorted, so bail out once we
852 encounter a timer that has not yet popped. And remove some
853 extraneous asserts.
854 (thread_fetch): Do not process foreground timers before calling
855 select. Instead, add them to the ready list just after the select.
856 Also, no need to maintain a count of the number of ready threads,
857 since we don't care how many there are, just whether there's
858 one at the head of the ready list (which is easily checked).
859 Stick current time in global variable recent_time to reduce
860 the number of calls to gettimeofday. Tighten logic for
861 calculating the select timeout.
862 (thread_consumed_time): Now returns real time and puts the elapsed
863 cpu time in an additional argument.
864 (thread_should_yield): Use real (wall-clock) time to decide whether
865 to yield.
866 (thread_call): Maintain CPU and real time statistics.
867 * vty.c (vty_command): For slow commands, show real and cpu time.
868
3df53782 8692005-04-27 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
870
871 * workqueue.c (show_work_queues): Remove unused gettimeofday call.
872
84369684 8732005-04-27 Paul Jakma <paul.jakma@sun.com>
874
875 * workqueue.h: (struct work_queue_item) change retry_count to ran,
876 its a count of number item has been run.
877 * workqueue.c: (show_work_queues) Fix formating of slightly
878 bugfix: fix SIGFPE if wq->runs is 0.
879 (work_queue_run) retry logic was slightly wrong.
880 cycles.best is 0 initialy, granularity is 1, so update best
881 if cycles >= granularity, not just >.
a7bca0f5 882 * memory.h: memtypes is built source, default includes points to
883 top_builddir, so we should refer to lib/memtypes.h
884
07334da0 8852005-04-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
886
887 * buffer.c (buffer_write): Comment out call to buffer_flush_available.
888 This should speed up buffering at the expense of a possible increase
889 in latency in flushing the data if inside a long-running thread.
890
ab59ae35 8912005-04-25 Paul Jakma <paul.jakma@sun.com>
892
147aff0f 893 * workqueue.{c,h}: Helper API for setting up and running queues via
894 background threads.
895 * command.c: install the 'show workqueues' command
896 * memtypes.c: Add work queue mtypes, and a rib-queue type for
897 a zebra rib work queue.
898 * memtypes.h: Updated to match memtypes.c
ab59ae35 899 * Makefile.am: Refer to source files via srcdir variable, fix
900 out-of-tree build breakage.
147aff0f 901 Add new workqueue files to build.
2c1de2a8 902 * memory.c: Make the string field much wider
903 * memtypes.c: Correct the prefix list str/entry strings
907873a0 904 * thread.c: Kill unused TIMER_NO_SORT bits
ab59ae35 905
fb9e46bb 9062005-04-22 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
907
908 * thread.h: Fix type for struct thread_master add_type: should be
909 unsigned char. Also, add some documentation of thread_add_background
910 args. And remove extraneous declaration of
911 show_thread_work_queues_cmd.
912
a48b4e6d 9132005-04-22 Paul Jakma <paul.jakma@sun.com>
914
e1e53ed5 915 * memory.h: Move include of memtypes.h to after the definition of
916 struct memory_list, gcc 4.0 doesn't like arrays of incomplete
917 types.
a48b4e6d 918 * thread.h: Add background thread type and thread_add_background
919 macro and accompanying funcname_... function.
920 export thread_should_yield, background threads can use it.
921 Lower thread yield time to 10ms, 100ms is noticeable lag and
922 a thread would only be /starting/ to finish sometime afterward.
923 * thread.c: (general) Add background thread type and schedule
924 nearly all thread types through the ready list for fairness.
925 (timeval_adjust) static qualifier missing
926 (vty_out_cpu_thread_history) add support for printout of
927 background threads
928 (show_thread_cpu) ditto.
929 (thread_master_debug) add debug of background list
930 (thread_master_create) fixup long line
931 (thread_add_unuse) add asserts for required state.
932 (thread_master_free) free background thread list
933 (funcname_thread_add_timer_timeval) make generic, able to
934 support arbitrary timer-like thread types.
935 (funcname_thread_add_timer) pass thread type to .._add_timer_timeval
936 (funcname_thread_add_timer_msec) ditto
937 (funcname_thread_add_background) Add a background thread, with an
938 optional millisecond delay factor, using .._add_timer_timeval.
939 (thread_cancel) Add background thread type.
940 Move the thread_list_delete common to all cases to bottom of
941 function, after the switch statement..
942 (thread_cancel_event) indent
943 (thread_timer_wait) Static qualifier, and make it able to cope
944 with arbitrary timer-like thread lists, so its of use to
945 background threads too.
946 (thread_process_fd) static qualifier. Again, make it take a list
947 reference rather than thread_master. Fix indentation.
948 (thread_timer_process) Check for ready timer-like threads in the
949 given list and move them on to the ready list - code originally
950 embedded in thread_fetch.
951 (thread_fetch) Schedule all threads, other than events, through
952 the ready list, to ensure fairness. Timer readying code moved to
953 thread_timer_process so it can be reused for background threads.
954 Remove the unneeded quagga_sigevent_process, as pointed out by
955 John Lin <john.ch.lin@gmail.com>.
956 (thread_should_yield) make this available.
957
924b9229 9582005-04-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
959
960 * thread.h (thread_consumed_time): Declare new function to calculate
961 elapsed microseconds.
962 * thread.c (thread_consumed_time): Must be global not static so we
963 can call it from lib/vty.c:vty_command.
964 (thread_should_yield): Surround with `#if 0' to make clear that this
965 function is not currently being used anywhere.
966 (thread_call): If CONSUMED_TIME_CHECK is defined, print a CPU HOG
967 warning message if the thread takes more than CONSUMED_TIME_CHECK
968 microseconds.
969 * vty.c (vty_command): If CONSUMED_TIME_CHECK is defined, print a CPU
970 HOG warning message if the command takes more than CONSUMED_TIME_CHECK
971 microseconds.
972
dc830cbf 9732005-04-16 Paul Jakma <paul@dishone.st>
974
975 * memtypes.c: the comment about use of comments in the comments
976 headers was causing comment within comment warnings from compiler
977 * memtypes.awk: Add extensive comments on the file format for
978 memtypes.c.
979 tighten the pattern for the MTYPE matching action (suggestion from
980 Andrew) and tighten which field we try the match on.
981
2fd2fd5d 9822005-04-15 Paul Jakma <paul@dishone.st>
983
984 * memtypes.c: The new, unified location for memory type definitions.
985 The memtype enum and declarations for memory_lists are built from
986 this automatically and put into memtypes.h.
987 * memtypes.awk: New script to generate memtypes.h from memtypes.c
988 * memory.h: Finally, the enum can banished!
989 * memory.c: Finally, the seperate mtype memory_list definitions can
990 be banished!
991 (log_memstats) Increase width of fields
992 (show_memory_zebra_cmd) display zebra specific memory types.
993 Increase width of fields.
994 * Makefile.am: Add memtypes.{c,h}, add BUILT_SOURCES for memtypes.h
995 Add a rule to build memtypes.h using memtypes.awk.
996 Add memtypes.awk to EXTRA_DIST.
d45f1f1c 997 memtypes.awk is gawk dependent, use the GAWK automake var.
998 * memtypes.h: New file, auto-generated, checked in for convenience.
2fd2fd5d 999
634f9ea2 10002005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1001
1002 * zclient.h (struct zclient): Add two fields to support non-blocking
1003 I/O: struct buffer *wb, and struct thread *t_write.
1004 (zclient_free): Remove function.
1005 (zebra_redistribute_send): Change 2nd arg from socket fd to
1006 struct zclient * (needed to support non-blocking I/O and buffering).
1007 (zclient_send_message): New function to send an arbitrary
1008 message with non-blocking I/O.
1009 * zclient.c (zclient_new): Create write buffer.
1010 (zclient_free): Remove unused function.
1011 (zclient_stop): Must cancel new t_write thread. Also, reset
1012 all buffers: ibuf, obuf, and wb.
1013 (zclient_failed): New helper function for typical error handling.
1014 (zclient_flush_data): New thread to flush queued data.
1015 (zclient_send_message): New function to send the message in
1016 zclient->obuf to zebra using non-blocking I/O and buffering.
1017 (zebra_message_send, zapi_ipv4_route, zapi_ipv6_route): Use
1018 new zclient_send_message function instead of calling writen.
1019 (zclient_start): Set socket non-blocking. Also, change 2nd arg
1020 to zebra_redistribute_send from zclient->sock to zclient.
1021 (zebra_redistribute_send): Change 2nd arg to struct zclient *.
1022 Can now use zclient->obuf to assemble the message instead of
1023 allocating a temporary stream. And call zclient_send_message to
1024 send the message instead of writen.
1025 (zclient_read): Convert to support non-blocking I/O by using
1026 stream_read_try instead of deprecated stream_read.
1027 (zclient_redistribute): Change 2nd arg to zebra_redistribute_send
1028 from zclient->sock to zclient.
1029
5bb4c198 10302005-04-09 Jeroen Simonetti <jeroens@office.netland.nl>
1031
1032 * routemap.c: Show description in "show route-map" output.
1033
67bf16c0 10342005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1035
1036 * sigevent.c: On GNU_LINUX, check whether __USE_GNU is already defined.
1037
926fe8f1 10382005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1039
1040 * vty.c: (vty_log_fixed) Use casts to (void *) to try to eliminate
1041 compiler warnings when assigning a (const char *) value to
1042 struct iovec iov_base.
1043
d66a7b56 10442005-04-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1045
1046 * zebra.h: If GNU_LINUX is defined, then define _GNU_SOURCE. This
1047 fixes a problem where we were not getting the declaration of strnlen
1048 in <string.h>.
1049
4a8164e5 10502005-04-08 Hasso Tepper <hasso at quagga.net>
1051
1052 * routemap.[ch]: Added "description ..." command.
1053
3a2ce6a1 10542005-04-08 Hasso Tepper <hasso at quagga.net>
1055
1056 * prefix.[hc]: Pass argument to the inet6_ntoa by value making it more
1057 inet_ntoa alike.
1058
1eb8ef25 10592005-04-07 Paul Jakma <paul.jakma@sun.com>
1060
1061 * linklist.h: Add usage comments.
1062 Rename getdata macro to listgetdata.
1063 Rename nextnode to listnextnode and fix its odd behaviour to be
1064 less dangerous.
1065 Make listgetdata macro assert node is not null, NULL list entries
1066 should be bug condition.
1067 ALL_LIST_ELEMENTS, new macro, forward-referencing macro for use
1068 with for loop, Suggested by Jim Carlson of Sun.
1069 Add ALL_LIST_ELEMENTS_RO for cases which obviously do not need the
1070 "safety" of previous macro.
1071 LISTNODE_ADD and DELETE macros renamed to ATTACH, DETACH, to
1072 distinguish from the similarly named functions, and reflect their
1073 effect better.
1074 Add a QUAGGA_NO_DEPRECATED_INTERFACES define guarded section
1075 with the old defines which were modified above,
1076 for backwards compatibility - guarded to prevent Quagga using it..
1077 * linklist.c: fix up for linklist.h changes.
1078 * *.c: fix up for new list loop macro, try audit other loop
1079 usage at same time, to some degree.
1080
5920990f 10812004-04-05 Hasso Tepper <hasso at quagga.net>
1082
1083 * lib/prefix.[hc]: inet6_ntoa utility function copied from
1084 ripngd/ripngd.c (inet6_ntop).
1085
3d1dc857 10862004-04-05 Paul Jakma <paul@dishone.st>
1087
1088 * vty.c: Improve logging of failures to open vty socket(s).
1089 See bugid #163.
1090
08dbfb69 10912005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1092
1093 * if.h: Fix comments to reflect that if_lookup_by_name and
1094 if_get_by_name now require the argument strings to be NUL-terminated.
1095 * if.c: (if_lookup_by_name) Compare using strcmp.
1096 (if_get_by_name) Pass strlen(ifname) as 2nd arg to if_create.
1097
018546e9 10982005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1099
1100 * if.c: (if_nametoindex) The man page is rather vague, but it seems
1101 like the argument to if_nametoindex has an implicit maximum length
1102 of IFNAMSIZ characters.
1103
a349198f 11042005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1105
1106 * if.h: (if_lookup_by_name_len, if_get_by_name_len) New functions.
1107 * if.c: (if_lookup_by_name_len, if_get_by_name_len) New functions.
1108 (if_get_by_name) Tighten up code.
1109 (interface) Use new function if_get_by_name_len.
1110 * zclient.c: (zebra_interface_add_read) Use new if_get_by_name_len
1111 function.
1112 (zebra_interface_state_read) Use new if_lookup_by_name_len function.
1113
851adbd9 11142005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1115
1116 * str.c: Replace strlcpy and strlcat with actual working versions
1117 copied from rsync-2.6.2/lib/compat.c.
1118
d2fc8896 11192005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1120
1121 * if.h: Remove define for IFINDEX_INTERNBASE and add define
1122 IFINDEX_INTERNAL 0, since all internal (i.e. non-kernel) pseudo-
1123 interfaces should have ifindex set to 0.
1124 (if_new) Remove function.
1125 (if_delete_retain) New function to delete an interface without
1126 removing from iflist and freeing the structure.
1127 (ifname2ifindex) New function.
1128 * if.c: (if_new) Remove function (absorb into if_create).
1129 (if_create) Replace function if_new with call to calloc.
1130 Set ifp->ifindex to IFINDEX_INTERNAL. Fix off-by-one error
1131 in assert to check length of interface name. Add error message
1132 if interface with this name already exists.
1133 (if_delete_retain) New function to delete an interface without
1134 removing from iflist and freeing the structure.
1135 (if_delete) Implement with help of if_delete_retain.
1136 (ifindex2ifname) Reimplement using if_lookup_by_index.
1137 (ifname2ifindex) New function to complement ifindex2ifname.
1138 (interface) The interface command should check the name length
1139 and fail with a warning message if it is too long.
1140 (no_interface) Fix spelling in warning message.
1141 (if_nametoindex) Reimplement using if_lookup_by_name.
1142 (if_indextoname, ifaddr_ipv4_lookup) Reimplement using
1143 if_lookup_by_index.
1144
3cb98dee 11452005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1146
1147 * zebra.h: Should include str.h to pick up missing functions.
1148 * str.h: Declare strnlen if needed.
1149 * str.c: Do not include str.h since zebra.h now includes it.
1150 (strnlen) New function.
1151
db8eaac6 11522005-03-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1153
1154 * zebra.h: Must check whether __attribute__ should be defined before
1155 including zassert.h.
1156
b8961476 11572005-03-14 Paul Jakma <paul.jakma@sun.com>
1158
1159 * command.c: (sort_node) use vector_max instead of referencing
1160 (struct vector *)->max directly. Test that vector_max is > 0
1161 before using it to calculate an index.
1162 Fixup vector loop to make main body conditional on vector slot
1163 not being empty.
1164 (cmd_cmdsize) Fixup vector loop to make main body conditional on
1165 vector slot not being empty.
1166 (cmd_filter_by_completion) ditto
1167 (cmd_filter_by_string) ditto
1168 (is_cmd_ambiguous) ditto
1169 (cmd_describe_command_real) Change index integers to unsigned.
1170 Test that vector_max is > 0 before using it to calculate an index.
1171 Return immediately with CMD_ERR_NO_MATCH if vline has no
1172 active slots.
1173 Fixup vector loop to make main body conditional on vector slot
1174 not being empty.
1175 (cmd_complete_command_real) ditto.
1176 (cmd_execute_command_strict) Fixup vector loop to be conditional
1177 on non-null slot.
909a2155 1178 (various) Fix indentation and other whitespace.
55468c86 1179 vector.h: Rename to (struct vector).max to slightly less confusing
1180 active, for the number of active slots, distinct from allocated
1181 or active-and-not-empty. Rename vector_max to vector_active
1182 for same reason.
b8961476 1183
9e92eeab 11842005-03-09 Paul Jakma <paul.jakma@sun.com>
1185
1186 * command.c: Undo commit of sign warning fix and hidden command
1187 in list_cmd. Sign warning is more subtle. list_cmd on its own
1188 will be committed after.
4275b1de 1189 * command.c: (config_list_cmd) Don't list hidden or deprecated
1190 commands, hiding these from tab completion is still to be done.
9e92eeab 1191
b45da6f0 11922005-03-08 Paul Jakma <paul.jakma@sun.com>
1193
9c5d8562 1194 * command.c: (banner_motd_file_cmd) use XSTRDUP/XFREE.
22085181 1195 (no_banner_motd_cmd) use XFREE.
9c5d8562 1196 (cmd_describe_command_real) sign compile warning fix
1197 (cmd_complete_command_real) ditto.
1198 (config_list_cmd) Don't list hidden or deprecated commands,
1199 hiding these from tab completion is still to be done.
1200 * command.h: cmd attr enum should start at 1.
b45da6f0 1201 * vty.c: (vty_hello) suggestions from Andrew, read by line and
1202 stub out trailling non-printable characters on each line thus
1203 allowing us to specify VTY_NEWLINE to vty_out.
1204
3b0c5d9a 12052005-03-08 Jeroen Massar <jeroen@unfix.org>
1206
1207 * vty.c: (vty_hello) display motd file, if set
1208 * command.h: add char *motdfile to struct host
1209 * command.c: (config_write_host) write out motdfile config
1210 (banner_motd_file_cmd) new command, allow motd to be read from
1211 file.
1212 (no_banner_motd_cmd) free motdfile string, if needs be.
1213 (cmd_init) init (struct host).motdfile. Add new motd file
1214 commands.
1215
12f6ea23 12162005-03-07 Michael Sandee <voidptr@voidptr.sboost.org>
1217
1218 * command.c: host.name might be NULL.
1219 * vty.c: Fix fd leak.
1220
81fb3240 12212005-02-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1222
1223 * stream.c: (stream_read_try) Log a warning message if a fatal
1224 I/O error occurs.
1225 (stream_fifo_new) Fix prototype.
1226 * stream.h: Fix prototype for stream_fifo_new (need void arg).
1227
cdb6ee94 12282005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1229
1230 * {vty.h,vty.c}: Remove vty_finish (duplicate of vty_reset).
1231
9fc7ebf1 12322005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1233
1234 * buffer.h: Make the struct buffer and struct buffer_data structures
1235 private by moving them inside buffer.c. Add comments for all
1236 functions. Rename buffer_write as buffer_put (to be more consistent
1237 with the buffer_putc and buffer_putstr functions). Declare a new
1238 buffer_write function that is used to write data to a file descriptor
1239 and/or add it to the buffer queue. Remove unused function
1240 buffer_flush_vty_all. Create a new enum typedef buffer_status_t
1241 to be used as the return code for all buffer_flush* functions
1242 and buffer_write.
1243 * buffer.c: The struct buffer and struct buffer_data declarations
1244 are now private to this file. In conjunction with that, remove
1245 some unnecessary fields: struct buffer (alloc, unused_head,
1246 unused_tail, length), struct buffer_data (prev).
1247 (buffer_data_new) Removed: functionality incorporated into buffer_add.
1248 (buffer_data_free) Removed: use a macro BUFFER_DATA_FREE instead.
1249 (buffer_new) Use calloc instead of malloc + memset(zero).
1250 Supply an appropriate default size if the specified size is 0.
1251 (buffer_free) Eliminate code duplication by calling buffer_reset to
1252 free the contents of the buffer (and remove unused code related
1253 to unused_head).
1254 (buffer_empty,buffer_putc,buffer_putstr) Aesthetic change (make more
1255 compact).
1256 (buffer_reset) Use macro BUFFER_DATA_FREE. No need to set
1257 alloc and length to 0 (these fields have been removed).
1258 (buffer_add) Fix scope to be static. Call XMALLOC directly instead
1259 of calling removed buffer_data_new function. Simplify the logic
1260 (since it's now a singly-linked list instead of doubly-linked).
1261 (buffer_write) Renamed to buffer_put. Change to void, since return
1262 code of 1 was meaningless. No need to adjust length field, since
1263 it has been removed.
1264 (buffer_putw,buffer_flush,buffer_flush_vty_all,buffer_flush_vty)
1265 Remove unused functions.
1266 (buffer_flush_all) Rewrite using buffer_flush_available to eliminate
1267 a possible failure mode if IOV_MAX is less than the number of buffers
1268 on the queue.
1269 (buffer_flush_window) Incorporate logic from buffer_flush_vty.
1270 Log an error message if there is a writev error.
1271 (buffer_flush_available) Be more paranoid: check for case where
1272 buffer is already empty. Use new ERRNO_IO_RETRY macro, and use
1273 new enum for return codes. Simplify deletion logic (since it's
1274 now a singly-linked list).
1275 (buffer_write) New function for use with non-blocking I/O.
1276 * vty.h: Replace the struct vty sb_buffer field with a fixed-size
1277 (5-character) sb_buf field and an sb_len field, since using
1278 a struct buffer was inappropriate for this task. Add some useful
1279 comments about telnet window size negotiation.
1280 * vty.c: Include <arpa/telnet.h> (no longer included by zebra.h).
1281 Remove VTY_OBUF_SIZE (instead use buffer_new default size).
1282 Make telnet_backward_char and telnet_space_char static const.
1283 (vty_out) Replace buffer_write with buffer_put.
1284 (vty_log_out) Check for I/O errors. If fatal, close the vty session.
1285 Consolidate 3 separate writes into a single write call.
1286 (vty_will_echo,vty_command,vty_next_line,vty_previous_line,
1287 vty_end_config,vty_describe_fold,vty_clear_buf,vty_serv_sock_addrinfo,
1288 vty_serv_sock_family,vty_serv_un,vty_use_backup_config,exec_timeout,
1289 vty_config_write,vty_save_cwd) Fix scope to static.
1290 (vty_new) Let buffer_new use its default buffer size.
1291 (vty_write) Fix signature: 2nd arg should be const char *.
1292 Replaced buffer_write with buffer_put.
1293 (vty_telnet_option) Fix minor bug (window height or width greater than
1294 255 was broken). Use sb_buf and sb_len instead of removed sb_buffer
1295 (which was being used improperly).
1296 (vty_read) On error, use ERRNO_IO_RETRY to decide whether it's fatal.
1297 If the error is fatal, call buffer_reset so vty_close does not attempt
1298 to flush the data. Use new sb_buf and sb_len instead of sb_buffer
1299 to store the SB negotiation string.
1300 (vty_flush) When vty->lines is 0, call buffer_flush_available instead
1301 of buffer_flush_window. Look at the return code from buffer_flush
1302 to detect I/O errors (and in that case, log an error message and
1303 close the vty).
1304 (vty_create) Fix scope to static. Initialize sb_len to 0 instead
1305 of creating sb_buffer.
1306 (vty_accept) Set socket nonblocking.
1307 (vtysh_accept) Use new set_nonblocking function instead of calling
1308 fcntl directly.
1309 (vtysh_flush) New function called from vtysh_read (after command
1310 execution) and from vtysh_write. This flushes the buffer
1311 and reacts appropriately to the return code (by closing the vty
1312 or scheduling further flushes).
1313 (vtysh_read) Check whether error is fatal using ERRNO_IO_RETRY.
1314 If not, just try again later. Otherwise, call buffer_reset before
1315 calling vty_close (to avoid trying to flush the buffer in vty_close).
1316 Fix logic to allow case where a command does not arrive atomically
1317 in a single read call by checking for the terminating NUL char.
1318 (vtysh_write) Use new vtysh_flush helper function.
1319 (vty_close) No need to call buffer_empty, just call buffer_flush_all
1320 in any case (it will check whether the buffer is empty).
1321 Do not free sb_buffer (since it has been removed).
1322 (vty_log_fixed) Use writev instead of write.
1323 * zebra.h: Do not include <arpa/telnet.h>, since this is used only
1324 by lib/vty.c.
1325
c3c07f28 13262005-02-21 Vincenzo Eramo <eramo at infocom.ing.uniroma1.it>
1327
1328 * pqueue.[ch]: Introduce "update" function to meet ospf spf needs. It
1329 will allow to update node when:
1330 i) a node is inserted into the priority queue;
1331 ii) a node position is modified in the priority queue;
1332 * pqueue.h: Export trickle_down() function.
1333
109ac96f 13342005-02-19 Paul Jakma <paul.jakma@sun.com>
1335
1336 * stream.c: (stream_new) fix dumb mistake.
1337
53270116 13382005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1339
1340 * stream.c: (stream_read_try) Use new ERRNO_IO_RETRY macro.
1341
d7e2a818 13422005-02-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1343
1344 * network.h: Define a new ERRNO_IO_RETRY macro to test whether an I/O
1345 operation should be retried. This eliminates the need to duplicate
1346 the same logic testing for EAGAIN or EINTR in multiple places.
1347
262feb1a 13482005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1349
1350 * stream.h: Declare new function stream_read_try suitable for use
1351 with non-blocking file descriptors. Indicate that stream_read
1352 and stream_read_unblock are deprecated.
1353 * stream.c: (stream_read_try) New function for use with non-blocking
1354 I/O.
1355 (stream_recvmsg) Should return -1 if the stream is too small to
1356 contain the data.
1357
42218e71 13582005-02-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1359
1360 * network.c: (set_nonblocking) Should check return code from
1361 fcntl(F_GETFL).
1362
a269d613 13632005-02-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1364
1365 * network.h: Declare new function set_nonblocking. Indicate that
1366 readn and writen are deprecated.
1367 * network.c: (set_nonblocking) New function to make a file descriptor
1368 non-blocking, since it seems silly to have fcntl calls sprinkled
1369 throughout the code.
1370
1dd13d41 13712005-02-14 Paul Jakma <paul.jakma@sun.com>
f2e6c429 1372
1373 * stream.h: Unsigned long updated to size_t
1374 * stream.c: ditto
050c013a 1375 * stream.h: Add stream_copy, stream_dup, stream_recvmsg.
1376 Add comment describing struct stream abstraction, and various
1377 other comments.
1378 Deprecate several unsafe/ambigious macros.
1379 Add STREAM_WRITEABLE and STREAM_READABLE.
1380 Add (stream_getl_from) for symmetry.
1381 Update stream_forward_{endp,getp} to use size_t offset.
1382 Make stream data a 0 length array, rather than a seperate malloc.
1383 * stream.c: Add consistency checks. Update to follow stream.h
1384 changes.
1385 (stream_new) Alloc stream+data in one go.
1386 (stream_copy) new function, copy a stream.
1387 (stream_dup) new function, dup a stream.
1388 (stream_recvmsg) new function, recvmsg data into a stream.
1389 (stream_empty) no need to check getp == 0.
f2e6c429 1390
9985f83c 13912005-02-09 Paul Jakma <paul.jakma@sun.com>
1392
1393 * stream.h: Remove putp. Update reference to putp with endp.
1394 Add stream_forward_endp, which daemons were doing manually.
1395 Rename stream_forward to stream_forward_getp.
1396 stream.c: Remove/update references to putp.
1397 introduce stream_forward_endp.
1398
548e6f7d 13992005-02-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1400
1401 * zebra.h: Change macro definitions SET_FLAG and UNSET_FLAG
1402 to use compound assignment operators (aesthetic change).
1403
c4c7d0c4 14042005-02-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1405
1406 * log.c: (zlog_signal,zlog_backtrace_sigsafe) Eliminate use of fileno()
1407 since it is not async-signal-safe.
1408 (_zlog_assert_failed) Rewrite crashlog logic more compactly.
1409 (zlog_set_file,zlog_reset_file,zlog_rotate) Update logfile_fd
1410 for use in signal handler.
1411
1e221354 14122005-02-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1413
1414 * log.c: (syslog_sigsafe) Reduce scope of syslog_fd: it is accessed
1415 inside this function only.
1416 (open_crashlog) New function to open /var/tmp/quagga.<daemon>.crashlog
1417 with flags O_WRONLY|O_CREAT|O_EXCL to save some crash info.
1418 (zlog_signal,_zlog_assert_failed) Increase logging priority from
1419 LOG_ERR to LOG_CRIT. If no file logging is configured, try to use
1420 open_crashlog to create a crash logfile.
1421 (zlog_backtrace_sigsafe) If a crashlog file descriptor is open,
1422 dump a backtrace to that file.
1423
847947f2 14242005-02-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1425
1426 * if.h: Declare if_flag_dump.
1427
6a52d0d1 14282005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1429
1430 * daemon.c: (daemon) Replace perror with zlog_err.
1431 * vty.c: (vty_serv_un) Replace perror with zlog_err.
1432
3b8b1855 14332005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1434
1435 * buffer.h: Fix comment on buffer_getstr to reflect that it now
1436 uses XMALLOC.
1437 * buffer.c: (buffer_getstr) Use XMALLOC(MTYPE_TMP) instead of malloc.
1438 * filter.c: (access_list_remark,ipv6_access_list_remark) Use
1439 argv_concat instead of buffer_getstr.
1440 * if.c: (interface_desc) Use argv_concat instead of buffer_getstr.
1441 * plist.c: (ip_prefix_list_description,ipv6_prefix_list_description)
1442 Use argv_concat instead of buffer_getstr.
1443
afb8b605 14442005-01-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1445
1446 * lib/buffer.h: Document behavior of buffer_getstr function.
1447 * lib/buffer.c: (buffer_getstr) Fix bug: must handle case where
1448 the string extends beyond the head struct buffer_data.
1449
f6834d4c 14502005-01-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1451
1452 * lib/command.h: Document behavior of argv_concat function.
1453 * lib/command.c: (argv_concat) Calculate total string length first so
1454 we can call malloc just once (instead of realloc'ing to add each
1455 string element).
1456 (do_echo,config_logmsg) Allow for possible NULL return value from
1457 argv_concat.
1458
13bfca7a 14592005-01-23 Hasso Tepper <hasso at quagga.net>
1460
1461 * lib/command.[ch]: Make node_parent() function nonstatic. vtyh.c will
1462 use it as well.
1463
31364274 14642005-01-18 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1465
1466 * log.h: Test for SA_SIGINFO to see whether zlog_signal takes final
1467 two args (siginfo and program_counter).
1468 * log.c: (hex_append) Include this function only if SA_SIGINFO or
1469 HAVE_GLIBC_BACKTRACE is defined.
1470 (zlog_signal) Final two args (siginfo and program_counter) now
1471 depend on whether SA_SIGINFO is defined on this platform.
1472 * sigevent.c: (program_counter) Do not include this function if
1473 SA_SIGINFO is not defined on this platform.
1474 (exit_handler,core_handler) Test for SA_SIGINFO to decide whether
1475 2nd & 3rd arguments are present and to decide how to invoke
1476 zlog_signal.
1477 (trap_default_signals) Test for SA_SIGINFO and invoke sigaction
1478 appropriately.
1479
239c26fd 14802005-01-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1481
1482 * log.h: Change prototype for zlog_backtrace_sigsafe to take additional
1483 program_counter argument.
1484 * log.c: (zlog_backtrace_sigsafe) Add additional program_counter
1485 argument. If it is non-NULL, use backtrace_symbols_fd to resolve
1486 the address.
1487 (zlog_signal) Call zlog_backtrace_sigsafe with additional
1488 program_counter argument.
1489
87d683b0 14902005-01-17 Hasso Tepper <hasso at quagga.net>
1491
1492 * command.[ch], vty.c: cmd_execute_command() function must not attempt
1493 to walk up in the node tree if called from vtysh. Different daemons
1494 might have commands with same syntax in different nodes (for example
1495 "router-id x.x.x.x" commands in zebra/ospfd/ospf6d daemons).
1496
cb585b65 14972005-01-14 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1498
1499 * command.c (print_version): Do not bother even to examine host.name,
1500 since it is always NULL when this function is called from main.
1501
f867d32c 15022005-01-14 Greg Troxel <gdt@fnord.ir.bbn.com>
1503
1504 * command.c (print_version): Don't print host.name if it is NULL.
1505 Fixes segfault on Solaris reported by Goetz von Escher <goetz@open.ch>
1506
40abf239 15072005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1508
1509 * sigevent.c: (trap_default_signals) Use the SA_SIGINFO flag to
1510 pass additional siginfo_t and ucontext_t arguments to core_handler
1511 and exit_handler.
1512 (core_handler,exit_handler) Now invoked with 3 arguments (using
1513 SA_SIGINFO). Pass additional info to zlog_signal.
1514 (program_counter) New function to find program counter in ucontext_t,
1515 needs to be enhanced to support more platforms (currently works only
1516 on Linux/x86).
1517 * log.h: Change the zlog_signal prototype to add new arguments
1518 siginfo_t * and program_counter.
1519 * log.c: (zlog_signal) Add new arguments siginfo and program_counter.
1520 Include si_addr and program counter (if non-NULL) in message.
1521 And remove #ifdef HAVE_GLIBC_BACKTRACE around hex_append, since
1522 that is now used to render the si_addr and PC pointers.
1523
e22f5516 15242005-01-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1525
1526 * zebra.h: If not C99 and no va_copy macro available, fall back to
1527 memcpy (solves a build problem on FreeBSD 4.x).
1528
b99760ab 15292005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1530
1531 * zebra.h: Define ZCMSG_FIRSTHDR appropriately based on whether
1532 config.h indicates HAVE_BROKEN_CMSG_FIRSTHDR (as determined
1533 by the configure test program).
1534 * sockopt.c: (getsockopt_cmsg_data) Use ZCMSG_FIRSTHDR instead
1535 of CMSG_FIRSTHDR.
1536
cba8a606 15372005-01-02 Hasso Tepper <hasso at quagga.net>
1538
1539 * command.c: Revert int -> unsigned int fixes in
1540 cmd_describe_command_real() and cmd_complete_command_real(). index can
1541 be actually negative and it caused crash with "do<TAB>" in vty.
1542
1d69fdf6 15432004-12-29 Greg Troxel <gdt@poblano.ir.bbn.com>
1544
d44debed 1545 * sockopt.c (getsockopt_ipv4_ifindex): Document calling
1546 convention. Beef up comments. Handle the case where the cmsghdr
1547 has a zero controllen, or more specifically when the wanted option
1548 is not present. This is needed for Solaris 8, and in general for
1549 any platform for which configure finds a method and it can fail.
1550 Mark some changes with XXX to be cleaned up post 0.98.
1551
1d75c8c3 15522004-12-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1553
1554 * sockopt.c: (setsockopt_ipv4_ifindex) Improve error message.
1555 When neither IP_PKTINFO nor IP_RECVIF is defined, make return value
1556 deterministic (-1).
1557
af04bd7c 15582004-12-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1559
1560 * thread.c: (funcname_thread_add_timer_msec) Reduce overflow risk.
1561
4ba9b924 15622004-12-21 Paul Jakma <paul.jakma@sun.com>
1563
1564 * if.h: Add more 'non-generic' IFF_ flags.
1565 * if.c: IFF_NOXMIT/IFF_VIRTUAL interfaces are 'loopback like'
0e43a2bc 1566 * stream.c: Dont allocate streams with 0 sized data buffers
4ba9b924 1567
2885f72d 15682004-12-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1569
1570 * command.c: (do_echo) Added new "echo" command, useful for
1571 watchdog pinging to make sure the daemon is responsive.
1572
202d08ca 15732004-12-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1574
1575 * pid_output.c: (pid_output_lock) Eliminate static function, and just
1576 use the #ifdef to decide which version of the function to include.
1577 This eliminates a compilation problem with gcc4. And fix the
1578 non-fcntl version so that it actually compiles. Exit with
1579 status 1 instead of -1 on error.
1580
81fc57ca 15812004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1582
1583 * sigevent.c: (trap_default_signals) Ignore SIGPIPE instead of exiting.
1584
3378d209 15852004-12-10 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1586
1587 * log.c: (zlog_signal,_zlog_assert_failed) Change logging level back to
1588 LOG_ERR instead of LOG_EMERG.
1589
c3324c63 15902004-12-09 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1591
1592 * log.c: (hex_append) No need to include this function if
1593 HAVE_GLIBC_BACKTRACE is not defined.
1594
b9e7028f 15952004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1596
1597 * prefix.c: (prefix_copy) Error message before abort should
1598 have severity LOG_ERR, not LOG_INFO.
1599 * memory.c: (mtype_log) Log level should be LOG_DEBUG, not LOG_INFO.
1600
8ddca704 16012004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1602
1603 * {smux.c,zclient.c}: Change level of debug messages to LOG_DEBUG.
1604
82146b88 16052004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1606
1607 * command.c: (config_write_host) Note that "log trap" is deprecated
1608 when writing out the config.
1609
274a4a44 16102004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1611
1612 * log.h: Replace struct zlog flags and maskpri fields with maxlvl
1613 array to support individual logging levels for each destination.
1614 Remove the 2nd argument to openzlog since the default logging config
1615 should be standardized inside the library. Replaced the
1616 zlog_set_flag and zlog_reset_flag functions with zlog_set_level.
1617 And zlog_set_file now requires an additional log_level argument.
1618 Declare zlog_proto_names for use inside command.c in the
1619 "show logging" command. Added defines useful for command
1620 construction.
1621 * log.c: (vzlog) Decide where to send the message based on the
1622 individual logging levels configured for each destination.
1623 Remove support for ZLOG_STDERR since it was never actually used.
1624 Support record-priority for terminal monitors.
1625 (zlog_signal,zlog_backtrace_sigsafe) Support destination-specific
1626 logging levels. Remove stderr support (was never used). Added
1627 support for terminal monitor logging.
1628 (_zlog_assert_failed) Increase message severity to LOG_EMERG.
1629 (openzlog) Remove 2nd argument since default config should be
1630 standardized in library. By default, terminal monitoring
1631 is set to debug, and all other logging is disabled.
1632 (zlog_set_flag,zlog_reset_flag) Removed.
1633 (zlog_set_level) New function to replace zlog_set_flag and
1634 zlog_reset_flag. Supports destination-specific logging levels.
1635 (zlog_set_file,zlog_reset_file) Support file-specific logging level.
1636 (zlog_rotate) Log an error message if fopen fails, and support
1637 new file-specific logging level.
1638 * command.h: Change DEFUN_CMD_FUNC_DECL and DEFUN_CMD_FUNC_TEXT so that
1639 command functions will be static instead of global. Remove
1640 declarations for config_exit and config_help. Define new macros
1641 DEFUNSH_ATTR, DEFUNSH_HIDDEN, and DEFUNSH_DEPRECATED so we can
1642 have deprecated commands in vtysh. Similarly, for completeness,
1643 define macros ALIAS_SH, ALIAS_SH_HIDDEN, and ALIAS_SH_DEPRECATED.
1644 Also, fix bug in ALIAS_ATTR macro (didn't matter because it
1645 was never used).
1646 * command.c: Make many functions static instead of global.
1647 (facility_name,facility_match,level_match) New functions
1648 to support enhanced destination-specific logging levels.
1649 (config_write_host) Support new destination-specific logging levels.
1650 (config_logmsg) Added new "logmsg" command to help test logging
1651 system.
1652 (show_logging) Added "show logging" command to show the current
1653 configuration of the logging system.
1654 (config_log_stdout_level) Support explicit stdout logging level.
1655 (no_config_log_stdout) Now takes optional LEVEL arg.
1656 (config_log_monitor,config_log_monitor_level,no_config_log_monitor)
1657 New commands creating new "log monitor" commands to set terminal
1658 monitoring log level.
1659 (config_log_file_level) Support explicit file logging level.
1660 (config_log_syslog_level) Support explicit syslog logging level.
1661 (config_log_facility,no_config_log_facility) Implement new
1662 "log facility" command.
1663 (cmd_init) Add hooks for new commands: "show logging", "logmsg",
1664 "log stdout <level>", "log monitor", "log monitor <level>",
1665 "no log monitor", "log file <filename> <level>",
1666 "no log file <filename> <level>", "log syslog <level>",
1667 "log facility", and "no log facility".
1668 * vty.h: Added a "level" argument to vty_log so it can support
1669 "log record-priority". Declare new function vty_log_fixed for
1670 use in signal handlers.
1671 * vty.c: (vty_log,vty_log_out) Added a "level" argument to support
1672 "log record-priority" for vty terminal monitors.
1673 (vty_down_level) Use config_exit_cmd.func instead of calling
1674 config_exit directly (since command functions will now be static
1675 instead of global).
1676 (vty_log_fixed) New function to send terminal monitor messages
1677 from inside a signal handler.
1678
5e764774 16792004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1680
1681 * log.h: Document appropriate use of syslog logging priorities
1682 inside quagga.
1683
56f2069a 16842004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1685
1686 * command.h: Remove fields log_stdout and log_syslog from struct host,
1687 since they are just trying to duplicate information in the
1688 zlog_default structure. Note that this fixes a bug since those
1689 fields were not registering any logging that was established
1690 in the initial call to openzlog (this affects only the zebra and
1691 ospf6d daemons). It is probably a bug to turn on any logging by
1692 default in the call to openzlog.
1693 * command.c: (config_write_host) Get logging info from zlog_default
1694 instead of now-removed fields host.log_stdout and host.log_syslog.
1695 (config_log_stdout,no_config_log_stdout) Do not set now-removed field
1696 host.log_stdout, since this info is recorded in zlog_default.
1697 (config_log_file) Use XSTRDUP (instead of strdup) to set host.logfile.
1698 (config_log_syslog,config_log_syslog_facility,no_config_log_syslog)
1699 Do not set now-removed field host.log_syslog, since this info is
1700 recorded in zlog_default.
1701
887c44a4 17022004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1703
1704 * version.h.in: Remove declaration for pid_output_lock, this function
1705 is now static, not global.
1706 * pid_output.c: (pid_output_lock) This function should be static, not
1707 global. And remove "old umask" error message, since it was really
1708 an unimportant debug message, not an error.
1709 (pid_output) Need to declare static function pid_output_lock.
1710
7d149b8e 17112004-11-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1712
1713 * log.h: Remove several unused fields from struct zlog. Add comments
1714 for other fields, and add one new field syslog_options that is
1715 used in the new syslog_sigsafe implementation.
1716 * log.c: (syslog_sigsafe) New function to send syslog messages in
1717 an async-signal safe way that can be used inside a signal handler.
1718 (syslog_connect) New function to connect to syslog daemon inside a
1719 signal handler. This function supports only systems where /dev/log
1720 is a unix datagram socket (e.g. not Solaris).
1721 (zlog_signal) Call syslog_sigsafe if syslog logging is enabled.
1722 (zlog_backtrace_sigsafe) Call syslog_sigsafe if syslog logging is
1723 enabled.
1724 (openzlog) Save syslog_options for use in syslog_sigsafe.
1725 (num_append) Fix bug: handle 0 properly.
1726 (hex_append) New function to print a u_long in hex format.
1727
2557aed1 17282004-11-28 Hasso Tepper <hasso at quagga.net>
1729
1730 * command.h: DEFUN_DEPRECATED passes attribute to DEFUN as well.
1731
48d6c69b 17322004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1733
1734 * log.c, log.h, memory.c: Change function name from zlog_backtrace_safe
1735 to the more self-explanatory zlog_backtrace_sigsafe.
1736
5b85facc 17372004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1738
1739 * debug.[ch]: Remove unused files.
1740 * Makefile.am: Remove references to debug.c and debug.h
1741
063ee52a 17422004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1743
1744 * log.c: (zlog_backtrace) New function to log a backtrace.
1745 (zlog_backtrace_safe) Log a backtrace in an async-signal-safe way.
1746 Unfortunately, this function does not support syslog logging yet.
1747 (zlog_signal) Move backtrace code into separate function
1748 zlog_backtrace_safe.
1749 (_zlog_assert_failed) Call zlog_backtrace before aborting.
1750 * log.h: Declare new functions zlog_backtrace and zlog_backtrace_safe.
1751 * memory.c: (zerror) Call zlog_backtrace before aborting.
1752
d1c51d7c 17532004-11-26 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1754
1755 * Makefile.am: Need to add zassert.h to pkginclude_HEADERS.
1756
4cf0d0df 17572004-11-25 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1758
1759 * zebra.h: If not C99 and there's no va_copy macro and there is
1760 a __va_copy macro, define va_copy as __va_copy.
1761
e5879ca1 17622004-11-25 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1763
1764 * pid_output.c: (pid_output_lock) Fix 2 bugs: when locking, should
1765 set l_whence to SEEK_SET, not SEEK_END. And after writing new
1766 pid to file, must ftruncate to eliminate any extraneous bytes left
1767 over from the last time a pid was written.
1768
cee3df1e 17692004-11-24 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1770
1771 * zassert.h: New header file to declare a quagga-specific assert macro.
1772 * log.c: (_zlog_assert_failed) New function called when assert fails
1773 to log the error and abort.
1774 * zebra.h: Include "zassert.h" instead of <assert.h>.
1775 * regex.c: Include "zassert.h" instead of <assert.h>.
1776
59a06a91 17772004-11-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1778
1779 * sigevent.c: (signal_init) Set up some default signal handlers
1780 so that processes will issue an error message before terminating
1781 or dumping core.
1782 (trap_default_signals) New function to set up signal handlers
1783 for various signals that may kill the process.
1784 (exit_handler) Call zlog_signal, then _exit.
1785 (core_handler) Call zlog_signal, then abort.
1786 * log.h: Declare new function zlog_signal.
1787 * log.c: (zlog_signal) New function to log information about
1788 a received signal before the process dies. Try to log a
1789 backtrace also.
1790 (quagga_signal_handler,signal_set) Should be static.
1791
d246bd96 17922004-11-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1793
1794 * log.c: (vzlog) Take a single va_list argument and use va_copy
1795 as necessary for multiple traversals.
1796 (zlog) Pass only one va_list to vzlog.
1797 (zlog_*,plog_*) Use a macro for boilerplate code; pass only one
1798 va_list to vzlog.
1799 (zlog_set_file) Remove unused 2nd argument (flags).
1800 (zlog_save_cwd,zlog_get_cwd,zlog_free_cwd) Remove unused functions.
1801 * log.h: Remove ZLOG_*_INDEX defines (no longer used).
1802 Remove unused 2nd argument from zlog_set_file prototype.
1803 Fix prototype for zlog_rotate.
1804 * command.c: (config_log_file) Remove unused 2nd arg to zlog_set_file.
1805 * vty.c: (vty_out) Fix stdarg usage to perform multiple traversals
1806 properly.
1807 (vty_log) Must use va_copy for multiple traversals of va_list arg.
1808
ca359769 18092004-11-19 David Young <dyoung@pobox.com>
1810
1811 * log.c: (safe_strerror) New function: safe wrapper for strerror.
1812
ff29bb31 18132004-11-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1814
1815 * sockopt.c: (setsockopt_so_recvbuf) Stop error message from being
1816 printed every time.
1817
f858e49b 18182004-11-16 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1819
1820 * memory.h: Fix prototype for memory_init().
1821 * memory.c: Declare many functions and data structures static instead
1822 of global. Fix prototype for memory_init().
1823
69e1325f 18242004-11-15 Greg Troxel <gdt@fnord.ir.bbn.com>
1825
1826 * sockopt.h: Avoid CMSG_ALIGN, and declare that sizes are without
1827 alignment (users should use CMSG_SPACE).
1828
1829 * zebra.h: Rationalize CMSG_SPACE compatibility defines. Warn if
1830 asumming 4-byte alignment, since this isn't safe.
1831
7fa25ff6 18322004-11-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1833
1834 * memory.c: (zerror) Use zlog_err instead of fprintf to stderr.
1835 Instead of exiting, log currenty memory usage and then abort.
1836 (log_memstats) New function to log memory statistics, called by
1837 zerror.
1838 (show_memory_all) Loop over new mlists array instead of calling
1839 show_memory_vty separately for each memory_list.
1840
b86718ea 18412004-11-08 Paul Jakma <paul@dishone.st>
b35e5b4e 1842
2265d20c 1843 * buffer.c: Add missing include of log.h.
1844 (buffer_flush_available) written is compared against
1845 mostly against unsigned types, only for the writev do we need
1846 signed compare, so declare it as size_t and cast it to ssize_t
1847 just for the error compare when we've called writev.
1848 * buffer.h: Add comment that buffer data sizes really should be
1849 size_t.
1850
18512004-11-07 Paul Jakma <paul@dishone.st>
1852
1853 * version.h.in: add autoconf configure_input output var
b35e5b4e 1854
5a646650 18552004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1856
1857 * vty.h: Remove fields in struct vty that were related to VTY_CONTINUE
1858 capabilities (that were used only in bgpd/bgp_route.c and are now
1859 removed). Also remove some other fields that were not being
1860 used at all.
1861 * vty.c: (vty_execute) Do not test for obsolete status values VTY_START
1862 and VTY_CONTINUE.
1863 (vty_read) Remove calls to vty->output_func since that was part
1864 of the VTY_CONTINUE infrastructure that has been removed.
1865 (vty_flush) Remove code to support VTY_START and VTY_CONTINUE.
1866 (vty_close) Remove code to cancel vty->t_output thread, since that
1867 thread was never actually used.
1868
49ff6d9d 18692004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1870
1871 * vty.c: Vtysh connections to daemons should use buffering.
1872 (vty_out) Remove exception for vty_shell_serv, just use buffer_write.
1873 (vty_new) Increase output buffer size to 4096 rounded up to a
1874 multiple of pagesize.
1875 (vtysh_read) After command has been executed and all output buffered,
1876 call buffer_flush_available and schedule further writes if the
1877 buffers are not yet empty.
1878 (vtysh_write) New function to flush output to vtysh when the socket
1879 is writeable.
1880 (vty_event) Added new VTYSH_WRITE event for flushing buffers to vtysh
1881 clients. Also, should save read thread in vty->t_read so the
1882 thread can be cancelled in vty_close.
1883 * buffer.h: In struct buffer_data, remove unused "parent" field.
1884 Convert "unsigned char *data" to "unsigned char data[0]" to save
1885 a malloc. Declare new function buffer_flush_available that works
1886 with non-blocking sockets.
1887 * buffer.c: (buffer_data_new) Use a single malloc now that data is
1888 a variable-size array at end of structure.
1889 (buffer_data_free) Just a single free now that data is part of the
1890 structure.
1891 (buffer_write) Simplify the logic to make behavior more transparent.
1892 (buffer_flush) Decrease b->length as data is written out.
1893 (buffer_flush_vty_all) Decrease b->length as buffers are freed.
1894 (buffer_flush_vty) Decrease b->length as data is written out.
1895 (buffer_flush_available) New function to flush non-blocking sockets.
1896
e064d6d9 18972004-11-01 Paul Jakma <paul@dishone.st>
1898
1899 * sockopt.c: (setsockopt_pktinfo) remove, its unused.
1900
75e15fe4 19012004-10-31 Paul Jakma <paul@dishone.st>
1902
1903 * vty.c: As per Andrew's suggestions..
1904 (vty_serv_un) remove flags.
1905 (vtysh_accept) close socket if we cant set NONBLOCK. Add flags.
66cbbceb 1906 * keychain.c: Convert some more strtoul users to VTY_GET_INTEGER.
9d11a19e 1907 * memory.h: Add MTYPE_THREAD_FUNCNAME and MTYPE_THREAD_STATS
1908 * thread.c: Update stats and funcname alloc/free to use previous
039b9577 1909 specific memory type defines. Use XCALLOC and sizeof the type,
1910 not the pointer.
70e149e0 1911 * smux.c: fix int to size_t compile warnings
75e15fe4 1912
dccfb190 19132004-10-29 Paul Jakma <paul@dishone.st>
1914
1915 * vty.c: Move setting of sock to O_NONBLOCK from vty_serv_un
1916 to vtysh_accept, where sock is the actual fd we wanted to set to
1917 O_NONBLOCK, ie the /connected/ vtysh unix socket.
1918
508ec910 19192004-10-23 Hasso Tepper <hasso at quagga.net>
1920
1921 * zclient.c: Unbreak reading interface update message. Might fix
1922 blocker bugzilla #109.
1923
23b9c61e 19242004-10-22 Paul Jakma <paul@dishone.st>
7d9c6e51 1925
1926 * sockopt.c: (getsockopt_ipv4_ifindex) no ifindex should be 0, not
23b9c61e 1927 -1.
1928 (setsockopt_pktinfo) unexported
1929 * sockopt.h: Cleanup SOCKOPT_CMSG defines a bit. Add a throwaway
1930 define for SOPT_SIZE_CMSG_IFINDEX_IPV4 for systems which have
4ccb2c46 1931 neither IP_RECVIF nor IP_PKTINFO (eg openbsd), thanks to Rivo
1932 Nurges for highlighting problem and fix.
4927cf0b 1933 Fix elif that should be an else.
406d6716 1934 * command.h: Cleanup the defines a bit, add helper defines and
1935 collapse all defines to use those. Add an attribute field to
1936 cmd_element to support, eg hidden or deprecated commands, add
1937 defun defines for such. All that's left to do is add logic
1938 to command.c to check these attributes... ;)
af0d97eb 1939 * zebra.h: reserve ZEBRA_ROUTE_HSLS
7d9c6e51 1940
6590f2c3 19412004-10-19 Hasso Tepper <hasso at quagga.net>
1942
1943 * version.h.in: Define copyright string QUAGGA_COPYRIGHT.
1944 * print_version.c: Remove. print_version () function moved to
1945 command.[c|h].
1946 * command.c: Use QUAGGA_COPYRIGHT.
1947 * Makefile.am: Remove useless version.c and print_version.c files.
1948
3fb9cd6e 19492004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
1950
1951 * zclient.c: (zebra_interface_address_read) If the destination address
1952 is encoded as all zeroes, load it as a NULL pointer.
1953 * if.h: Add comment describing struct connected destination field
1954 and indicating that it may be NULL. Define macros
1955 CONNECTED_DEST_HOST and CONNECTED_POINTOPOINT_HOST to help
1956 with PtP logic (distinguish between host and subnet addressing).
1957 * if.c: (if_lookup_address) Fix PtP logic to handle subnet addressing
1958 properly,
1959 (connected_lookup_address) ditto.
1960 (connected_add_by_prefix) Handle case where destination is NULL,
1961 * prefix.[c|h]: New functions ipv4_network_addr and
1962 ipv4_broadcast_addr.
1963
ddd85ed1 19642004-10-13 Hasso Tepper <hasso at quagga.net>
1965
1966 * command.c: Make CMD_ERR_NOTHING_TODO nonfatal if reading
1967 configuration from file. Fixes critical bugzilla #113.
c75105ab 1968 * smux.c, smux.h: Remove all defaults to initialize smux connection to
1969 snmpd by default even if not configured to do so. "smux peer OID
1970 <password>" initializes now connection and "no smux peer" terminates
1971 it.
ddd85ed1 1972
42d49865 19732004-10-13 Paul Jakma <paul@dishone.st>
1974
1975 * (global) more const'ification.
1976 * sockunion.c: (sockunion_su2str) buffer should be sized
1977 SU_ADDRSTRLEN.
1978 (sockunion_log) do not return stack variables, strdup buf before
1979 return.
1980 * vty.h: Fix up the VTY_GET_INTEGER macros. Testing caller supplied
1981 values against ULONG_MAX is daft, when caller probably has passed
1982 a type that can not hold ULONG_MAX. use a temporary long instead.
1983 Add VTY_GET_LONG, make VTY_GET_INTEGER_RANGE use it, make
1984 VTY_GET_INTEGER a define for VTY_GET_INTEGER_RANGE.
1985
a149411b 19862004-10-11 Hasso Tepper <hasso at quagga.net>
1987
1988 * command.h: Sync DEFUNSH with other macros.
1989 * sockunion.c, sockunion.h: More const strings.
1990
9076fbd3 19912004-10-11 Paul Jakma <paul@dishone.st>
1992
1993 * thread.c: (funcname_thread_add_timer)
1994 (funcname_thread_add_timer_msec) Fix mistakes from last change.
1995 Pointed out by Liu Xin in [quagga-dev 1609].
c9eca01b 1996 * if.h: mtu's should be unsigned.
1997 * routemap.{c,h}: const char updates
1998 * smux.{c,h}: ditto
9076fbd3 1999
9035efaa 20002004-10-10 Paul Jakma <paul@dishone.st>
47ca2953 2001
2002 * version.h.in: (pid_output*) add const qualifier.
9035efaa 2003 * command.h: Change DEFUN func to take const char *[] rather
2004 than char **, to begin process of fixing compile warnings in lib/.
2005 Nearly all other changes in this commit follow from this change.
2006 * buffer.{c,h}: (buffer_write) pointer-arithmetic is gccism, take
2007 const void * and cast an automatic const char *p to it.
2008 (buffer_putstr) add const
2009 * command.c: (zencrypt) const qualifier
2010 (cmd_execute_command_real) ditto
2011 (cmd_execute_command_strict) ditto
2012 (config_log_file) ditto.
2013 Fix leak of getcwd() returned string.
2014 * memory.{c,h}: Add MTYPE_DISTRIBUTE_IFNAME for struct dist ifname.
2015 * distribute.{c,h}: Update with const qualifier.
2016 (distribute_free) use MTYPE_DISTRIBUTE_IFNAME
2017 (distribute_lookup) Cast to char *, note that it's ok.
2018 (distribute_hash_alloc) use MTYPE_DISTRIBUTE_IFNAME.
2019 (distribute_get) Cast to char *, note that it's ok.
2020 * filter.c: Update with const qualifier.
2021 * if.{c,h}: ditto.
2022 * if_rmap.{c,h}: ditto.
2023 (if_rmap_lookup) Cast to char *, note that it's ok.
2024 (if_rmap_get) ditto.
2025 * log.{c,h}: Update with const qualifier.
2026 * plist.{c,h}: ditto.
2027 * routemap.{c,h}: ditto.
2028 * smux.{c,h}: ditto. Fix some signed/unsigned comparisons.
2029 * sockopt.c: (getsockopt_cmsg_data) add return for error case.
2030 * vty.c: Update with const qualifier.
2031
27a43a81 20322004-10-08 Hasso Tepper <hasso at quagga.net>
2033
2034 * routemap.c, routemap.h: Make some string arguments const.
2035
5973ee73 20362004-10-05 Paul Jakma <paul@dishone.st>
2037
2038 * version.h.in: print_version declaration is here, not in automake
2039 generated version.h.
2040
ea8e9d97 20412004-10-08 Hasso Tepper <hasso at quagga.net>
2042
2043 * command.c, command.h: Make argument of cmd_make_strvec function
2044 const.
2045 * command.c: Make hostname commands usable in vtysh again.
2046
6ad96ea1 20472004-10-07 Hasso Tepper <hasso at quagga.net>
2048
2049 * command.c, pid_output.c, print_version.c, vty.c, vty.h: Make more
2050 strings const.
2051
8c328f11 20522004-10-05 Hasso Tepper <hasso at quagga.net>
2053
2054 * *.[c|h]: Make many strings cons and a lot of int -> unsigned int
2055 changes to fix warnings.
2056
96e27c99 20572004-10-05 Paul Jakma <paul@dishone.st>
2058
2059 * sockopt.{c,h}: add sockopt_iphdrincl_swab_{htosys,systoh},
2060 functions to change byte order between system IP_HDRINCL order
2061 and host order.
98c91ac6 2062 * thread.c: (funcname_thread_add_timer_timeval) new function, add
2063 timer at specified timeval.
2064 (funcname_thread_add_timer) use funcname_thread_add_timer_timeval.
2065 (funcname_thread_add_timer_msec) ditto
96e27c99 2066
b04c699e 20672004-10-04 Hasso Tepper <hasso at quagga.net>
2068
2069 * memory.c, memory.h: Make char * argument of strdup functions const.
2070 * prefix.c, prefix.h: Make many arguments const. Reorder stuff in
2071 header.
2072 * log.h: Make log message const in struct message.
2073 * log.c: Fix some indenting.
2074 * network.c, network.h: Make second argument of writen() const.
2075
e7168df4 20762004-10-03 Hasso Tepper <hasso at quagga.net>
2077
2078 * command.h: Introduce SERVICE_NODE for "service <...>" commands.
2079 * command.c: Don't initialize commands that don't make sense if vtysh
2080 is used.
2081 * vty.c: Make VTY_NODE appear in vtysh.
2082
18a6dce6 20832004-10-03 James R. Leu <jleu at mindspring.com>
2084
2085 * zclient.c, zclient.h: zclient functions for router id handling.
2086 * zebra.h: New message types for router id handling.
2087
9172ee0e 20882004-09-27 Paul Jakma <paul@dishone.st>
2089
2090 * zebra.h: Add WANT_OSPF_WRITE_FRAGMENT for ospfd
2091 to try to fragment oversized packets. Enabled only for Linux.
2092 Add HAVE_IP_HDRINCL_BSD_ORDER to define struct ip byte order,
2093 to consolidate various ad-hoc platform defines for same thing.
2094
e473b032 20952004-09-26 Hasso Tepper <hasso at quagga.net>
2096
2097 * vty.c, sockopt.c: Fix compiler warnings.
2098
52dc7ee6 20992004-09-23 Hasso Tepper <hasso at quagga.net>
2100
2101 * linklist.h: Remove list and listnode typedefs.
2102 * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
2103
b89e60c7 21042004-09-17 Paul Jakma <paul@dishone.st>
2105
2106 * sockopt.c: Add missing bracket
2107
0b3acf4f 21082004-09-17 Paul Jakma <paul@dishone.st>
2109
2110 * sockopt.{c,h}: Add setsockopt_so_recvbuf, for ripd and ripngd.
2111
33394766 21122004-09-13 Paul Jakma <paul@dishone.st>
2113
2114 * command.c: Update the copyright string in the default motd.
2115
630e4807 21162004-08-31 David Wiggins <dwiggins@bbn.com>
2117
2118 * hash.c (hash_iterate): Save next pointer before calling
2119 procedure, so that iteration works even if the called procedure
2120 deletes the hash backet.
2121
2122 * linklist.h (listtail): new macro, not yet used.
2123
34553cc3 21242004-08-27 Hasso Tepper <hasso at quagga.net>
2125
2126 * command.c: Install "terminal length" commands only if vty is used.
2127 Vtysh will handle it itself.
2128
afa43b23 21292004-08-26 Greg Troxel <gdt@fnord.ir.bbn.com>
2130
2131 * sockopt.h: Define method-independent macro for callers of
2132 get_ifindex to use for cmsg length.
2133
efba6ce9 21342004-08-19 Paul Jakma <paul@dishone.st>
2135
2136 * zebra.h: add MAX and MIN defines (eg for ospf6d)
2137
e6822768 21382004-08-19 Paul Jakma <paul@dishone.st>
2139
2140 * sockopt.c: include sockopt.h
2141 rename some of the _pktinfo_ functions to _ifindex, where that is
2142 their purpose.
2143 (getsockopt_ipv6_pktinfo_ifindex) renamed to
2144 getsockopt_ipv6_ifindex.
2145 (setsockopt_ipv4_pktinfo) renamed to setsockopt_ipv4_ifindex
2146 (setsockopt_pktinfo) update with previous and add comment re
2147 AF_INET portability.
2148 (setsockopt_ifindex) generic ifindex function ala
2149 setsockopt_pktinfo.
2150 (getsockopt_ipv4_pktinfo_ifindex) renamed to
2151 getsockopt_ipv4_ifindex.
2152 (getsockopt_ipv4_ifindex) rejiggling to reduce repeated
2153 ifdef/elses. pktinfo case forgot to set ifindex.
2154 (getsockopt_pktinfo_ifindex) renamed to
2155 getsockopt_ifindex. update some calls to renamed functions.
2156 * sockopt.h: Update renamed exported functions
2157 Rename the CMSG_SIZE macros to IFINDEX.
2158 Guard IPv4 PKTINFO in a conditional define.
2159
c0618de6 21602004-08-18 Paul Jakma <paul@dishone.st>
2161
2162 * vty.c: (vty_serv_un) set unix vty socket to nonblocking
2163 to prevent inadvertent blocking of daemons by use of
2164 vtysh. TODO: disentangle manual paging from the buffer_write
2165 path so that unix vty can use this path too and be reliable.
2166
33f92320 21672004-07-23 Greg Troxel <gdt@poblano.ir.bbn.com>
2168
2169 * sockopt.c (getsockopt_ipv4_pktinfo_ifindex): Make this compile
2170 on NetBSD, and add comments to make it less confusing. Change the
2171 sense of the SUNOS_5 test to make parallel structure between the
2172 variables and the code.
2173
4f7baa0e 21742004-07-23 Paul Jakma <paul@dishone.st>
2175
2176 * sockopt.h: Add SOPT_SIZE_CMSG_PKTINFO{_IPV{4,6}} define, for
2177 sizeof pktinfo as appropriate, to be used when allocating msg
2178 buffers. export setsockopt_pktinfo() and
2179 getsockopt_pktinfo_ifindex()
2180 * sockopt.c: (setsockopt_pktinfo_ifindex) new function to portably
2181 set received ifindex sock option.
2182 (getsockopt_pktinfo_ifindex) portably retrieve ifindex.
2183 (getsockopt_cmsg_data) retrieve indicated control info from
2184 message header.
2185 (getsockopt_ipv6_pktinfo_ifindex) ipv6 version of above.
2186 (setsockopt_ipv4_pktinfo) v4 version
2187 (setsockopt_pktinfo) the exported version
2188 (getsockopt_ipv4_pktinfo_ifindex) v4 specific version
2189 (getsockopt_pktinfo_ifindex) the exported version
2190
05c447dd 21912004-07-14 Paul Jakma <paul@dishone.st>
2192
2193 * sigevent.c: (quagga_signal_handler) add a global caught flag, set
2194 the flags to a constant rather increment to be kinder.
2195 (quagga_sigevent_process) new function, to do core of what
2196 quagga_signal_timer did. dont block signals at all as sig->caught
2197 is volatile sig_atomic_t and should be safe to access from signal
2198 and normal contexts. The signal blocking is unneeded paranoia, but
2199 is left intact under an ifdef, should some platform require it.
2200 Check global caught flag before iterating through array.
2201 (quagga_signal_timer) nearly everything moved to
2202 quagga_sigevent_process. Left in under ifdef, in case some
2203 platform could use a regular timer check for signals.
2204 * sigevent.h: quagga_sigevent_process declaration.
2205 * thread.c: (thread_fetch) check for signals at beginning of
2206 scheduler loop, check for signals if select returns EINTR.
2207
b7797131 22082004-07-13 Greg Troxel <gdt@poblano.ir.bbn.com>
2209
2210 * sigevent.c: Don't block SIGTRAP and SIGKILL. Blocking SIGTRAP
2211 confuses gdb, at least on NetBSD 2.0_BETA, where the block
2212 succeeds.
2213
5510e83b 22142004-07-09 Paul Jakma <paul@dishone.st>
2215
2216 * Merge Kunihiro's 'show route-map' change and add
2217 compatibility aliases for route-map continue
b9790b34 2218 * jhash.{c,h}: New files. Bob Jenkins' public domain hashing
2219 function, as implemented in linux kernel by David Miller.
5510e83b 2220
b06c14f2 22212004-07-09 Juris Kalnins <juris@mt.lv>
2222
2223 * if.c: (if_cmp_func) fix for interface names where name is same,
2224 but one has no number, eg "devtyp" and "devtyp0".
2225
87efd646 22262004-06-30 Greg Troxel <gdt@poblano.ir.bbn.com>
2227
2228 * Makefile.am: Make libzebra shared.
2229
138ce75f 22302004-06-21 Paul Jakma <paul@dishone.st>
2231
2232 * ChangeLog: fix my last update config.h -> zebra.h ;)
2233 * zebra.h: Fix gcc check.
2234
02ff83c5 22352004-06-11 Sowmini Varadhan <sowmini.varadhan@sun.com>
2236
2237 * filter.c: (access_list_remark_cmd) buffer_putstr doesnt need cast
2238 to u_char. (ipv6_access_list_remark_cmd) ditto.
2239 if.c: ditto
2240 * network.c: (readn/writen) pointer arg should be type u_char.
2241 * plist.c: needs to include stream.h, not declare stream functions
2242 internally.
2243 (various) Add static qualifier to internal functions.
2244 (prefix_list_type_str) extraneous breaks in switch statement.
2245 (ip_prefix_list_description_cmd) buffer_putstr doesnt need cast
2246 * stream.h: depends on plist.h and export stream_put_prefix
2247 * vty.c: (vty_<telnet option build functions>) should use
2248 unsigned char, telnet options are 0 -> 255.
2249 * zclient.c: various u_char<->char type cleanups.
2250 * zebra.h: Having to define CMSG_* can apply to more than just
2251 BSDI_NRL.
2252
51a8798e 22532004-06-09 Paul Jakma <paul@dishone.st>
2254
138ce75f 2255 * zebra.h: __attribute__ is a gcc'ism
51a8798e 2256
5228ad27 22572004-06-04 Paul Jakma <paul@dishone.st>
2258
2259 * type mismatch fixes
2260
6708fa3c 22612004-05-18 Hasso Tepper <hasso@estpak.ee>
2262
2263 * pqueue.[c|h]: Added as part of ospf6d merge from Zebra repository.
2264
0a589359 22652004-05-08 Paul Jakma <paul@dishone.st>
2266
2267 * zclient.c (zapi_ipv4_route) Follow Sowmini's lead and describe
2268 message format.
2269
22702004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
2271
2272 * zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route
2273 (zapi_ipv4_delete) ditto.
2274 (zapi_ipv4_route) add/delete a route by way of cmd arg.
2275 (zapi_ipv6_add) collapsed into zapi_ipv6_route.
2276 (zapi_ipv6_delete) ditto.
2277 (zapi_ipv6_route) add/delete a route by way of cmd arg.
2278 (zebra_interface_address_delete_read) collapsed into
2279 zebra_interface_address_read.
2280 (zebra_interface_address_delete_read) ditto.
2281 (zebra_interface_address_read) read address add/delete messages
2282 by way of type argument. Describe command message format.
2283 (zebra_interface_add_read) Unconditionally read new ifmtu6 field.
2284 Describe command message format.
2285 (zebra_interface_state_read) Unconditionally read new ifmtu6 field.
2286 (zclient_redistribute_set) Collapsed into zclient_redistribute
2287 (zclient_redistribute_unset) ditto
2288 (zclient_redistribute) set/unset redistribution.
2289 (zclient_redistribute_default_set) Collapsed into
2290 zclient_redistribute_default.
2291 (zclient_redistribute_default_unset) ditto.
2292 (zclient_redistribute_default) Redistribute default set/unset.
2293 * zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add
2294 zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add
2295 zclient_redistribute. Ditto for
2296 zclient_redistribute_default_{set/unset}.
2297
4a7aac1b 22982004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
2299
2300 * if.h: Add mtu6 field to struct interface, IPv6 MTU may differ
2301 from IPv4, and Solaris treats the MTU's differently.
2302 Add connected_add_by_prefix, for use by later patch.
2303 * if.c: (connected_add_by_prefix) Add prefix to connected list.
2304 (if_flag_dump) Solaris: Dump IFF_IPv4/6 flag
2305 (if_dump) Dump mtu6 flag, for HAVE_IPV6.
22528299 2306 * command.c: (sockunion_getsockname) use socklen_t for len.
2307 (sockunion_getpeername) ditto.
0a589359 2308
31fcdd3f 23092004-04-21 Boris Kovalenko <boris@tagnet.ru>
2310
2311 * daemon.c: (daemon) fix check for error return from setsid
2312
c49b3069 23132004-01-19 Paul Jakma <paul@dishone.st>
2314
2315 * sigevent.{c,h}: New files, implement event handled signals.
2316 see signal_init() in sigevent.h.
2317
c32e1b57 23182003-12-23 Vincent Jardin <jardin@6wind.com>
2319
2320 * {command.c, memory.c, vty.c, zebra.h}: Add isisd support
2321
3dbf9969 23222003-12-22 Greg Troxel <gdt@fnord.ir.bbn.com>
2323
2324 * vty.c (vty_use_backup_config): Don't free filenames before using
2325 them for unlink.
2326
54aba54c 23272003-08-20 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
2328
2329 * command.c: Fix <cr> display problem for command line
2330 description
2331
e9af5c78 23322003-05-24 Anil Madhavapeddy
2333
2334 * (sockunion.c): Incorrect bounds specified in sockunion_log()
2335
445f1435 23362003-05-08 Sergiy Vyshnevetskiy <serg @ vostok.net>
2337
2338 * vty.c: -A option
2339
23402003-04-19 Hasso Tepper <hasso@estpak.ee>
2341
2342 * rip_routemap.c: sync daemon's route-map commands to have same
2343 syntax
2344
718e3744 23452002-09-28 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
2346
2347 * vty.c (vty_flush): One line more on vty.
2348
23492002-09-27 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
2350
2351 * vector.c (vector_lookup): Add new function.
2352
23532002-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
2354
2355 * thread.c (timeval_adjust): Fix unconditional crush due to
2356 FreeBSD's select() system call timeval value check.
2357
23582002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
2359
2360 * zebra-0.93 released.
2361
23622002-06-21 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
2363
2364 * if.c (ifc_pointopoint): Add ifc_pointopoint() accoding to Frank
2365 van Maarseveen's suggestion.
2366
23672002-06-18 Kunihiro Ishiguro <kunihiro@zebra.org>
2368
2369 * command.c: Change bcopy() to memcpy().
2370
23712001-12-12 Kunihiro Ishiguro <kunihiro@zebra.org>
2372
2373 * command.c (config_password): Fix host.password clear bug.
2374 Reported by Wang Jian <lark@linux.net.cn>.
2375
23762001-08-29 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
2377
2378 * thread.c (thread_should_yield): New function to check thread
2379 should yeild it's execution to other thread. Suggested by: Rick
2380 Payne <rickp@ayrnetworks.com>
2381
23822001-08-20 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
2383
2384 * thread.c (thread_timer_cmp): Rewrite function.
2385
2386 * hash.c: Add hash_get(). Change hash_pull() to hash_release().
2387
23882001-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
2389
2390 * zebra-0.92a released.
2391
23922001-08-15 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
2393
2394 * zebra-0.92 released.
2395
23962001-08-12 Akihiro Mizutani <mizutani@dml.com>
2397
2398 * prefix.c (netmask_str2prefix_str): Convert "1.1.0.0 255.255.0.0"
2399 string to "1.1.0.0/16".
2400
24012001-08-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2402
2403 * filter.c (access_list_lookup): access_list_lookup's first
2404 argument is changed from address family to AFI.
2405
2406 * plist.c: (prefix_list_lookup): Likewise.
2407
24082001-07-27 Akihiro Mizutani <mizutani@dml.com>
2409
2410 * plist.c: ge and le display order is changed. Old compatible
2411 rule (len <= ge-value <= le-value) is removed.
2412
24132001-07-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2414
2415 * prefix.h: Temporary fix for alignment of prefix problem.
2416
24172001-06-21 Kunihiro Ishiguro <kunihiro@zebra.org>
2418
2419 * prefix.h (struct prefix): Remove safi and padding field.
2420 (struct prefix_ipv4): Likewise.
2421 (struct prefix_ipv6): Likewise.
2422 (struct prefix_ls): Likewise.
2423 (struct prefix_rd): Likewise.
2424
2425 * command.h (enum node_type): Preparation for BGP new config.
2426
2427 * vty.c (vty_end_config): Likewise.
2428
24292001-06-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2430
2431 * routemap.c (route_map_rule_delete): Call func_free when
2432 route-map rule is deleted.
2433
24342001-06-14 "Akihiro Mizutani" <mizutani@dml.com>
2435
2436 * routemap.c (route_map_index_lookup): Prevent to use deny and
2437 permit for same route-map sequence.
2438
24392001-04-12 Kunihiro Ishiguro <kunihiro@zebra.org>
2440
2441 * vty.c (vty_read_config): Fix warning.
2442
24432001-03-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2444
2445 * command.c (IPV6_PREFIX_STR): Add '.' and '%' for IPv6 address
2446 strings.
2447
24482001-03-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2449
2450 * zebra.h (_XPG4_2): Define _XPG4_2 and __EXTENSIONS__ for
2451 CMSG_FIRSTHDR.
2452
24532001-03-07 Michael Rozhavsky <mrozhavsky@opticalaccess.com>
2454
2455 * zebra.h (struct in_pktinfo): structure in_pktinfo declaration.
2456
24572001-02-19 Kunihiro Ishiguro <kunihiro@zebra.org>
2458
2459 * memory.c (memory_list_lib): Add MTYPE_NEXTHOP for "show memory
2460 lib" member.
2461
24622001-02-13 Matthew Grant <grantma@anathoth.gen.nz>
2463
2464 * vty.c (vty_read_config): Revert check of integrate_default when
2465 VTYSH is defined.
2466
24672001-02-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2468
2469 * vty.c (vty_read_config): Do not check integrate_default. That
2470 should be used only by vtysh.
2471
24722001-02-08 Matthew Grant <grantma@anathoth.gen.nz>
2473
2474 * vty.c (vty_serv_un): Set umask 0077.
2475 (vty_read_config): Stat for vtysh Zebra.conf, if found startup and
2476 wait for boot configuration.
2477
2478 * if.c (if_lookup_address): Make it smart implementation.
2479
2480 * sockopt.c (setsockopt_multicast_ipv4): Set up a multicast socket
2481 options for IPv4 This is here so that people only have to do their
2482 OS multicast mess in one place rather than all through zebra,
2483 ospfd, and ripd .
2484
24852001-02-04 Akihiro Mizutani <mizutani@dml.com>
2486
2487 * plist.c (vty_prefix_list_install): Even when argument is
2488 invalid, new memory is allocated. Now memory allocation is done
2489 after argument check.
2490
24912001-02-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2492
2493 * zebra-0.91 is released.
2494
24952001-01-31 Akihiro Mizutani <mizutani@dml.com>
2496
2497 * vty.c (vty_login): Add vty login command.
2498
24992001-01-31 Kunihiro Ishiguro <kunihiro@zebra.org>
2500
2501 * vty.c (vty_reset): Close accept socket.
2502
25032001-01-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2504
2505 * memory.h (enum): MTYPE_ATTR_TRANSIT is added for unknown transit
2506 attribute.
2507
25082001-01-22 Kunihiro Ishiguro <kunihiro@zebra.org>
2509
2510 * zclient.c (zebra_interface_address_add_read): Fetch interface
2511 address flag.
2512 (zebra_interface_address_delete_read): Likewise.
2513
25142001-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
2515
2516 * table.c (route_node_match_ipv4): Utility function for IPv4
2517 address lookup.
2518 (route_node_match_ipv6): Utility function for IPv4 address lookup.
2519
25202001-01-15 Kunihiro Ishiguro <kunihiro@zebra.org>
2521
2522 * if.c: Delete RIP_API part until new implementation comes out.
2523
25242001-01-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2525
2526 * hash.h (struct Hash): Rename alloc to count. Change type to
2527 unsigned long.
2528
2529 * stream.c (stream_getc_from): New function.
2530 (stream_getw_from): Likewise.
2531
2532 * zebra.h (ZEBRA_FLAG_STATIC): Add new flag for persistent route.
2533
25342001-01-11 Kunihiro Ishiguro <kunihiro@zebra.org>
2535
2536 * flap.c: File is removed.
2537
2538 * flap.c: Likewise.
2539
2540 * roken.h: Likewise.
2541
2542 * buffer.c (buffer_new): Remove type option to buffer_new().
2543
25442001-01-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2545
2546 * zclient.c (zapi_ipv4_delete): Remove OLD_RIB part.
2547
25482001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2549
2550 * zebra-0.90 is released.
2551
2552 * command.c: Update Copyright year.
2553
25542001-01-09 Matthew Grant <grantma@anathoth.gen.nz>
2555
2556 * if.c (if_create): Register connected_free() function for
2557 deletion.
2558 (if_delete): Free connected information when the interface is
2559 deleted.
2560 (if_lookup_by_index): Fix argument type from int to unsigned int.
2561 (connected_add): Keep list in order if old info found, essential
2562 for repeatable operation in some daemons.
2563
25642001-01-09 endo@suri.co.jp (Masahiko Endo)
2565
2566 * vty.c (vty_flush): When vty->statis is VTY_CLOSE do not add vty
2567 read thread.
2568
25692001-01-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2570
2571 * filter.c (access_list_delete): Access-list name is not freed.
2572
2573 * plist.c (prefix_list_delete): Prefix-list name is not freed.
2574
25752000-12-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2576
2577 * zclient.c (zclient_start): Change to use UNIX domain
2578 socket for zebra communication.
2579
2580 * vector.c (vector_init): vector_alloc and vector_data_alloc is
2581 removed. All memory allocation count should be maintained by
2582 XMALLOC and XFREE macros.
2583
25842000-12-28 Kunihiro Ishiguro <kunihiro@zebra.org>
2585
2586 * zebra.h (ZEBRA_NEXTHOP_IFINDEX): Define ZEBRA_NEXTHOP_* values.
2587
25882000-12-27 Kunihiro Ishiguro <kunihiro@zebra.org>
2589
2590 * zebra.h (ZEBRA_ERR_RTEXIST): Make zebra error code to negative
2591 value.
2592
25932000-12-25 "Wataru Uno" <wataru@po.ntts.co.jp>
2594
2595 * vty.c (vtysh_read): Don't allocate new buffer because buffer is
2596 allocated in vty_new ().
2597
25982000-12-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2599
2600 * memory.h (enum): Add MTYPE_AS_FILTER_STR.
2601
2602 * command.c (config_write_terminal): Display "end" at the end of
2603 configuration.
2604
2605 * plist.c (vty_prefix_list_install): Use AF_INET to determine
2606 lenum length.
2607
26082000-12-13 "Wataru Uno" <wataru@po.ntts.co.jp>
2609
2610 * buffer.c (buffer_flush_vty): If IOV_MAX defined in the System,
2611 then all lines write by IOV_MAX.
2612
26132000-12-12 Michael Rozhavsky <mrozhavsky@opticalaccess.com>
2614
2615 * command.c (config_write_file): Robust method for writing
2616 configuration file and recover from backing up config file.
2617
26182000-11-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2619
2620 * smux.c (smux_connect): More fail check.
2621 (smux_trap): When SMUX connection is not established, do nothing.
2622
26232000-11-28 Gleb Natapov <gleb@nbase.co.il>
2624
2625 * thread.c (thread_fetch): Execut event list first. Old event
2626 list is renamed to ready list. With this change, event thread is
2627 executed before any other thread.
2628
2629 * thread.h (struct thread_master): Add ready list.
2630
26312000-11-28 Kunihiro Ishiguro <kunihiro@zebra.org>
2632
2633 * linklist.c (listnode_add_after): Add node right after the
2634 listnode pointer.
2635
26362000-11-27 Kunihiro Ishiguro <kunihiro@zebra.org>
2637
2638 * smux.h: Pass struct variable to WriteMethod.
2639
26402000-11-25 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
2641
2642 * if.c (if_lookup_address): When looking up interface with IP
2643 address, Sometimes multiple interfaces will match. Now PtP
2644 interfaces prevail in such a case which seem the right thing to
2645 do: There will probably also be host routes which usually prevail
2646 over network routes.
2647
26482000-11-25 Kunihiro Ishiguro <kunihiro@zebra.org>
2649
2650 * smux.c (smux_trap): SMUX trap implementation.
2651
26522000-11-19 Akihiro Mizutani <mizutani@dml.com>
2653
2654 * plist.c: Add automatic conversion function of an old rule.
2655 ex.) 10.0.0.0/8 ge 8 -> 10.0.0.0/8 le 32
2656
26572000-11-16 Yon Uriarte <ukl2@rz.uni-karlsruhe.de>
2658
2659 * zclient.c (zebra_interface_add_read): Read hardware address when
2660 hw_addr_len is greater than 0.
2661
26622000-11-15 Akihiro Mizutani <mizutani@dml.com>
2663
2664 * plist.c: The rule of "len <= ge-value <= le-value"
2665 was changed to "len < ge-value <= le-value".
2666
26672000-11-09 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
2668
2669 * memory.[ch]: Added #define and functions for ospf6d.
2670
2671 * log.[ch]: some platform says that the data of used va_list
2672 is undefined. Changed to hold list of va_list for each
2673 vsnprintf.
2674
26752000-11-07 Rick Payne <rickp@rossfell.co.uk>
2676
2677 * memory.h (enum): Add MTYPE_COMMUNITY_REGEXP.
2678
26792000-11-06 Kunihiro Ishiguro <kunihiro@zebra.org>
2680
2681 * command.c (config_exit): Fix bug of missing break after case
2682 BGP_VPNV4_NODE.
2683
26842000-10-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2685
2686 * vector.c (vector_unset): Check i is not nevative.
2687
26882000-10-24 Arkadiusz Miskiewicz <misiek@pld.org.pl>
2689
2690 * smux.c (smux_sock): Set terminating '\0'. Check address family.
2691
2692 * vty.c (vty_serv_sock_addrinfo): Set terminating '\0'. Use
2693 gai_strerror. Check address family.
2694
26952000-10-23 Jochen Friedrich <jochen@scram.de>
2696
2697 * smux.c: Use linklist rather than vector.
2698 (smux_getnext): A SMUX subagent has to behave as if it manages the
2699 whole SNMP MIB tree itself. It's the duty of the master agent to
2700 collect the best answer and return it to the manager. See RFC 1227
2701 chapter 3.1.6 for the glory details :-). ucd-snmp really behaves
2702 bad here as it actually might ask multiple times for the same
2703 GETNEXT request as it throws away the answer when it expects it in
2704 a different subtree and might come back later with the very same
2705 request.
2706
27072000-10-23 Kunihiro Ishiguro <kunihiro@zebra.org>
2708
2709 * command.c (cmd_init): Log related command are only installed for
2710 terminal mode.
2711
27122000-10-21 Kunihiro Ishiguro <kunihiro@zebra.org>
2713
2714 * Makefile.am (libzebra_a_SOURCES): Remove duplicated buffer.c.
2715
2716 * zebra.h: Remove #warn directive.
2717
27182000-10-20 Kunihiro Ishiguro <kunihiro@zebra.org>
2719
2720 * keychain.c (keychain_init): Register "key chain" command to
2721 KEYCHAIN_NODE and KEYCHAIN_KEY_NODE.
2722
2723 * vty.c (vty_end_config): Fix missing vty_cinfig_unlock for other
2724 CONFIG_NODE.
2725
2726 * command.c (config_end): Likewise.
2727
2728 * keychain.c (keychain_get): Key is sorted by it's identifier
2729 value.
2730
27312000-10-19 Kunihiro Ishiguro <kunihiro@zebra.org>
2732
2733 * linklist.c (list_delete_all_node): Call delete function if it is
2734 defined.
2735
2736 * command.c (cmd_execute_command_strict): Add modification for
2737 vtysh.
2738 (cmd_execute_command_strict): Remove first argument cmdvec because
2739 it is global varibale in command.c.
2740
27412000-10-18 Kunihiro Ishiguro <kunihiro@zebra.org>
2742
2743 * command.c (cmd_init): Install
2744 copy_runningconfig_startupconfig_cmd only in terminal mode.
2745
2746 * linklist.c (list_delete_node): Simplify the function.
2747 (listnode_lookup): Renamed from list_lookup_node.
2748
27492000-10-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2750
2751 * stream.h: Undef stream_read and stream_write without
2752 parenthesis.
2753
2754 * newlist.c: File removed.
2755
2756 * newlist.h: Likewise.
2757
2758 * linklist.c (list_new): Remove list_init(). To allocate new
2759 linked list, please use list_new().
2760 (listnode_add): Remove list_add_node(). To add new node to linked
2761 list, please use listnode_add().
2762 (list_delete_by_val): Revemove fucntion.
2763
27642000-10-16 Nobuaki Tanaka <nobby@po.ntts.co.jp>
2765
2766 * table.c (route_table_free): Reimplement route_table_free().
2767
27682000-10-11 Kunihiro Ishiguro <kunihiro@zebra.org>
2769
2770 * keychain.c (keychain_get): Register key_delete_func to key
2771 list's delete function. Use linklist.c instead of newlist.c.
2772
27732000-10-04 Akihiro Mizutani <mizutani@dml.com>
2774
2775 * filter.c (access_list_remark): Add access-list's remark command.
2776 (no_access_list): "no access-list 100 permit any" error message
2777 bug is fixed.
2778
27792000-10-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2780
2781 * memory.h (enum): Add MTYPE_SOCKUNION.
2782
27832000-10-02 Kunihiro Ishiguro <kunihiro@zebra.org>
2784
2785 * zebra-0.89 is released.
2786
27872000-10-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2788
2789 * linklist.c (list_add_node_head): Delete unused function.
2790 (list_add_node_tail): Likewise.
2791
27922000-09-26 Kunihiro Ishiguro <kunihiro@zebra.org>
2793
2794 * stream.c (stream_read_unblock): Add new function for unblocking
2795 read.
2796
27972000-09-26 Jochen Friedrich <jochen@nwe.de>
2798
2799 * smux.c (smux_register): Fix bug of can't register more than one
2800 MIB with SMUX.
2801
28022000-09-26 Makoto Otsuka <otsuka@inl.ntts.co.jp>
2803
2804 * vty.c (vty_close): Fix memory leak of sb_buffer.
2805 (vty_new): Likewise.
2806
28072000-09-21 steve@Watt.COM (Steve Watt)
2808
2809 * log.h: Do not declare zlog_priority[0] variable.
2810
28112000-09-12 Kunihiro Ishiguro <kunihiro@zebra.org>
2812
2813 * linklist.h (struct _list ): Add member cmp for compare function.
2814 (struct _list ): Member up is deleted
2815
28162000-09-12 David Lipovkov <dlipovkov@OpticalAccess.com>
2817
2818 * if.c: Include RIP_API header when RIP API is enabled.
2819
28202000-09-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2821
2822 * prefix.c (prefix_free): Siplify prefix_free().
2823
2824 * keychain.c (key_match_for_accept): strncmp check bug is fixed.
2825
28262000-09-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2827
2828 * zebra.h: Merge roken.h into zebra.h.
2829
28302000-09-05 Akihiro Mizutani <mizutani@dml.com>
2831
2832 * routemap.c (route_map_init_vty): Install route-map command to
2833 RMAP_NODE.
2834
28352000-08-22 Kunihiro Ishiguro <kunihiro@zebra.org>
2836
2837 * thread.c (thread_get_id): Remove pthread related garbage.
2838
2839 * command.h (struct host): Likewise.
2840
2841 * zebra.h: Likewise.
2842
28432000-08-20 Kunihiro Ishiguro <kunihiro@zebra.org>
2844
2845 * command.h (node_type ): Add AAA node for authentication.
2846
2847 * vty.c (vty_close): Do not close stdout.
2848
28492000-08-18 Kunihiro Ishiguro <kunihiro@zebra.org>
2850
2851 * vty.c (vty_init_vtysh): Added for vtysh.
2852
2853 * distribute.c (districute_list_prefix_all): Interface independent
2854 filter can be set.
2855 (distribute_list_all): Likewise.
2856 (config_show_distribute): Display current distribute-list status
2857 for "show ip protocols".
2858
28592000-08-18 Akihiro Mizutani <mizutani@dml.com>
2860
2861 * command.c (config_terminal_no_length): no terminal monitor ->
2862 terminal no monitor
2863 (cmd_init): Do not install service_terminal_length_cmd into
2864 ENABLE_NODE.
2865
2866 * vty.c (terminal_no_monitor): no terminal length -> terminal no
2867 length.
2868
28692000-08-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2870
2871 * zebra-0.88 is released.
2872
28732000-08-17 Magnus Ahltorp <ahltorp@nada.kth.se>
2874
2875 * vty.h (struct vty ): Add iac_sb_in_progress and sb_buffer for
2876 better IAC handling.
2877
2878 * vty.c (vty_telnet_option): Change telnet option handling.
2879
28802000-08-15 Gleb Natapov <gleb@nbase.co.il>
2881
2882 * zclient.c (zclient_redistribute_unset): New function added.
2883
28842000-08-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2885
2886 * zclient.c (zebra_interface_add_read): Change ifindex restore
2887 size from two octet to four.
2888 (zebra_interface_state_read): Likewise.
2889 (zebra_interface_address_add_read): Likewise.
2890
28912000-08-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2892
2893 * vty.c (vty_event): Use vector_set_index() instead of
2894 vector_set().
2895
28962000-08-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2897
2898 * zebra.h (ZEBRA_XXX_DISTANCE_DEFAULT): Define Default
2899 Administrative Distance of each protocol.
2900
29012000-08-07 Matthew Grant <grantma@anathoth.gen.nz>
2902
2903 * if.h (struct interface ): Add new member bandwidth to struct
2904 interface.
2905
2906 * zclient.c (zebra_interface_add_read): Fetch bandwidth value.
2907 (zebra_interface_state_read): Likewise.
2908
29092000-08-07 Gleb Natapov <gleb@nbase.co.il>
2910
2911 * routemap.c (route_map_event_hook): New hook route_map_event_hook
2912 is added. This hook is called when route-map is changed. The
2913 parameters passed to the hook are 'event' and 'route-map name'
2914
2915 * routemap.h: Add prototype for route_map_event_hook().
2916
29172000-08-06 Kunihiro Ishiguro <kunihiro@zebra.org>
2918
2919 * zclient.c (zebra_ipv4_route): zebra_ipv4_route(),
2920 zebra_ipv4_add(), zebra_ipv4_delete() are removed.
2921
2922 * routemap.c (route_map_empty): Add new function.
2923 (route_map_delete): Use route_map_index_delete() instead of
2924 route_map_index_free().
2925 (route_map_index_free): Function removed.
2926
29272000-08-06 Gleb Natapov <gleb@nbase.co.il>
2928
2929 * routemap.c (route_map_index_delete): Add check for route-map is
2930 empty or not.
2931
29322000-08-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2933
2934 * zclient.c (zebra_ipv4_add): Change socket arguemnt with struct
2935 zclient.
2936
29372000-08-02 Kunihiro Ishiguro <kunihiro@zebra.org>
2938
2939 * zclient.h (struct zebra): Add obuf for output buffer.
2940
2941 * if.c: Remove #ifdef NRL enclosing if_nametoindex() and
2942 if_indextoname().
2943
29442000-08-02 David Lipovkov <davidl@nbase.co.il>
2945
2946 * if.h (IF_PSEUDO_UNSET): IF_PSEUDO related macro added.
2947 (IF_UNKNOWN_SET): IF_UNKNOWN related macro deleted.
2948
2949 * if.c (interface_pseudo): Add "pseudo" command to interface node.
2950 (no_interface_pseudo): Add "no pseudo" command to interface node.
2951
2952 * zclient.c (zebra_interface_add_read): Set pseudo flag when it is
2953 send from zebra.
2954
29552000-08-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2956
2957 * zebra.h (ZEBRA_IPV4_NEXTHOP_LOOKUP): Add new message.
2958 (ZEBRA_IPV6_NEXTHOP_LOOKUP): Likewise.
2959
2960 * vty.c (vty_serv_un): Use AF_UNIX for backward compatibility.
2961
29622000-07-31 Kunihiro Ishiguro <kunihiro@zebra.org>
2963
2964 * vty.c: Use vector for VTY server thread listing instead of
2965 single value.
2966
29672000-07-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2968
2969 * keychain.c (no_key_chain): "no key chain WORD" command is added.
2970
29712000-07-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2972
2973 * command.c (config_from_file): If command fail in
2974 KEYCHAIN_KEY_NODE, down to KEYCHAIN_NODE.
2975
2976 * vty.h (struct vty ): Add index_sub member.
2977
29782000-07-27 Akihiro Mizutani <mizutani@dml.com>
2979
2980 * if.c: Help strings updates.
2981
29822000-07-11 Akihiro Mizutani <mizutani@dml.com>
2983
2984 * command.c (no_config_enable_password): Add "no enable password"
2985 command.
2986 (config_write_host): Display password string.
2987
2988 * routemap.c (route_map_delete_match): Add support for delete
2989 match without argument.
2990 (route_map_delete_set): Likewise.
2991
29922000-07-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2993
2994 * command.h (node_type ): Change KEYCHAIN_NODE and
2995 KEYCHAIN_KEY_NODE place just before INTERFACE_NODE.
2996
29972000-07-09 Jochen Friedrich <jochen@scram.de>
2998
2999 * smux.c (config_write_smux): Fixes the option to override OID and
3000 password for SMUX.
3001
30022000-07-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3003
3004 * command.h (node_type ): Add SMUX_NODE for SMUX configuration.
3005
30062000-07-09 Toshiaki Takada <takada@zebra.org>
3007
3008 * command.c: Sort descvec command's help.
3009
3010 * vty.c (vty_describe_command): Display '<cr>' at the end of
3011 descriptions.
3012
30132000-07-05 Toshiaki Takada <takada@zebra.org>
3014
3015 * command.c (cmd_ipv6_match), (cmd_ipv6_prefix_match): Fix bug
3016 treatment of double colon.
3017
30182000-07-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3019
3020 * zclient.h: Add zclient_redistribute_default_{set,unset}().
3021
3022 * keychain.c: New file for authentication key management.
3023 * keychain.h: Likewise.
3024
3025 * tcpfilter.c: New file for TCP/UDP base filtering using ipfw or
3026 ipchains.
3027 * tcpfilter.h: Likewise.
3028
3029 * flap.h: New file for route flap dampening.
3030 * flap.c: Likewise.
3031
30322000-07-04 Toshiaki Takada <takada@zebra.org>
3033
3034 * filter.c (struct filter): Add exact flag.
3035 (access_list): Add exact-match command.
3036 (ipv6_access_list): Add exact-match command.
3037
30382000-07-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3039
3040 * zebra.h (ZEBRA_REDISTRIBUTE_DEFAULT_ADD): New message for
3041 request default route.
3042
30432000-07-01 Hideaki YOSHIFUJI (\e$B5HF#1QL@\e(B) <yoshfuji@ecei.tohoku.ac.jp>
3044
3045 * smux.c: Add IPv6 smux connection code.
3046
30472000-06-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3048
3049 * vty.c (vty_complete_command): To cooperate readline library,
3050 returned string is newly allocated. So some match function case
3051 need, free of memory.
3052
30532000-06-12 Akihiro Mizutani <mizutani@dml.com>
3054
3055 * distribute.c: Fix help strings.
3056
30572000-06-11 Kunihiro Ishiguro <kunihiro@zebra.org>
3058
3059 * command.c (cmd_complete_command): Add check for vector_slot
3060 (vline, index) is not NULL when calculating lcd.
3061 (cmd_entry_function): First check variable arguemnt to prevent it
3062 from completion.
3063
30642000-06-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3065
3066 * vty.h (struct vty ): Add output_count member for displaying
3067 output route count. Remove arugment arg from output_func because
3068 the value is passed by vty argument. Change output to output_rn.
3069 Add output_clean function pointer member. Add output_type member.
3070
30712000-06-10 Toshiaki Takada <takada@zebra.org>
3072
3073 * command.c (show_startup_config): Add "show startup-config"
3074 command.
3075
30762000-06-06 Akihiro Mizutani <mizutani@dml.com>
3077
3078 * filter.c: Fix help strings.
3079
30802000-06-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3081
3082 * prefix.h (struct prefix_rd): New prefix structure for routing
3083 distinguisher.
3084 (struct prefix): Add padding to every prefix structure.
3085
3086
3087 * routemap.c (route_map_add_match): When completely same match
3088 statement exists, don't duplicate it.
3089
30902000-06-05 Akihiro Mizutani <mizutani@dml.com>
3091
3092 * routemap.c: Change NAME to WORD.
3093
3094 * plist.c: Fix help strings.
3095
30962000-06-02 Akihiro Mizutani <mizutani@dml.com>
3097
3098 * routemap.c: Fix route-map help strings.
3099
31002000-06-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3101
3102 * command.c (cmd_filter_by_completion): Fix CMD_VARARG treatment
3103 to filter other non vararg commands.
3104
3105 * routemap.c (route_map_init_vty): Use install_default() for
3106 install common commands into route-map node..
3107
31082000-06-01 Akihiro Mizutani <mizutani@dml.com>
3109
3110 * command.h (OSPF_STR): Macro added.
3111
31122000-05-31 Kunihiro Ishiguro <kunihiro@zebra.org>
3113
3114 * command.c (cmd_complete_command): LCD completion must not modify
3115 installed command string.
3116
3117 * plist.c (ipv6_prefix_list): Fix wrong syntax definition. Change
3118 X:X::X:X to X:X::X:X/M.
3119
31202000-05-31 Toshiaki Takada <takada@zebra.org>
3121
3122 * vty.c (show_history): New defun added.
3123
31242000-05-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3125
3126 * command.h (CMD_COMPLETE_LIST_MATCH): New define for completion
3127 list. CMD_COMPLETE_MATCH is used for LCD completion.
3128
3129 * vty.c (vty_complete_command): Matched string's LCD is completed.
3130
3131 * command.c (cmd_lcd): New function for calculate LCD of matched
3132 strings.
3133
31342000-05-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3135
3136 * command.c (install_default): config_write_terminal_cmd,
3137 config_write_file_cmd, config_write_memory_cmd are added to
3138 default node.
3139
3140 * memory.c (memory_init): Divide show memory command into each
3141 sort.
3142
3143 * command.c (cmd_init): config_write_terminal_cmd,
3144 config_write_file_cmd, config_write_memory_cmd are added to
3145 CONFIG_NODE.
3146
3147 * routemap.c (route_map_index_free): New function.
3148 (no_route_map_all): New DEFUN for "no route-map NAME".
3149
3150 * filter.c (no_access_list_all): New DEFUN for delete access-list
3151 with NAME.
3152 (no_ipv6_access_list_all): Likewise.
3153
31542000-05-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3155
3156 * plist.c: Change IPV6_PREFIX to X:X::X:X. When "any" is
3157 specified, user can not use "ge" and "le" statement.
3158
31592000-05-22 Thomas Molkenbur <tmo@datus.datus.com>
3160
3161 * routemap.c (route_map_add_set): Fix bug of next pointer missing.
3162
3163 * table.c (route_table_free): Like wise.
3164
31652000-05-22 Toshiaki Takada <takada@zebra.org>
3166
3167 * vty.c (vty_stop_input): Set history pointer to the latest one.
3168
3169 * vty.c (vty_hist_add): Do not add command line history when input
3170 is as same as previous one.
3171
31722000-05-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3173
3174 * memory.h (enum): Add MTYPE_ECOMMUNITY and MTYPE_ECOMMUNITY_VAL.
3175
31762000-05-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3177
3178 * command.h (node_type ): Add BGP_VPNV4_NODE.
3179
31802000-05-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3181
3182 * vty.c (vtysh_accept): Add cast of struct sockaddr * to bind
3183 argument. Reported by: Vesselin Mladenov <mladenov@netbg.com>.
3184
3185 * filter.c (ipv6_access_list): Add IPv6 prefix example instead of
3186 IPv4 example. Reported by: Love <lha@s3.kth.se>.
3187
3188 * command.c (cmd_complete_command): Make it sure last element of
3189 matchvec is NULL. This fix problem which cause crush in
3190 vty_complete_command(). Reported by: JINMEI Tatuya
3191 <jinmei@isl.rdc.toshiba.co.jp>.
3192
31932000-04-28 Love <lha@s3.kth.se>
3194
3195 * prefix.h (struct prefix): Add padding.
3196
31972000-04-28 Kunihiro Ishiguro <kunihiro@zebra.org>
3198
3199 * command.c (show_version): Update copyright year.
3200
32012000-04-27 Kunihiro Ishiguro <kunihiro@zebra.org>
3202
3203 * routemap.c (route_map_apply): When map is NULL, return deny.
3204
32052000-04-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3206
3207 * filter.c (access_list_apply): When access is NULL, return deny.
3208
3209 * plist.c (prefix_list_apply): When plist is NULL, return deny.
3210
32112000-04-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3212
3213 * command.h (node_type ): Change RDISC_NODE to IRDP_NODE.
3214
32152000-04-18 Toshiaki Takada <takada@zebra.org>
3216
3217 * filter.[ch] (access_list_add_hook), (access_list_delete_hook):
3218 Add argument for hook function to give struct access_list *.
3219
32202000-04-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3221
3222 * plist.c (prefix_list_entry_match): In case of le nor ge is
3223 specified, exact match is performed.
3224 (prefix_list_entry_match): Add any entry matching check.
3225
32262000-04-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3227
3228 * vty.c (exec_timeout): Separate timeout setting to minutes and
3229 seconds.
3230 (no_exec_timeout): Add "no exec-timeout" command.
3231
3232 * vty.h (VTY_TIMEOUT_DEFAULT): Change default value from 300 to
3233 600.
3234
32352000-03-31 Jochen Friedrich <jochen@scram.de>
3236
3237 * smux.h (SMUX_CLOSE): The SMUX_CLOSE PDU is implicit integer, so
3238 it is a primitive encoding and not constructed.
3239
32402000-03-28 Toshiaki Takada <takada@zebra.org>
3241
3242 * memory.[ch] (enum): Add MTYPE_OSPF_EXTERNAL_INFO.
3243
32442000-03-26 Love <lha@s3.kth.se>
3245
3246 * zclient.c (zclient_read): Add nbytes size check for
3247 ZEBRA_HEADER_SIZE. Check return value of steam_read ().
3248
32492000-03-26 Rick Payne <rickp@rossfell.co.uk>
3250
3251 * routemap.c: Add flexible route-map commands such as on-match
3252 next, on-match goto N.
3253
3254 * routemap.h: Likewise
3255
32562000-03-23 Adrian Bool <aid@u.net.uk>
3257
3258 * command.c (config_log_trap): Add new command "log trap
3259 PRIORITY".
3260
32612000-03-14 Toshiaki Takada <takada@zebra.org>
3262
3263 * memory.c (struct memory_list): Add Link List and Link Node
3264 to view.
3265
3266 * memory.h (enum): Remove MTYPE_OSPF_EXTERNAL_ROUTE.
3267
32682000-01-20 Hideto Yamakawa <hideto.yamakawa@soliton.co.jp>
3269
3270 * str.c (snprintf): Fix bug of calling sprintf instead of
3271 vsprintf.
3272
32732000-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
3274
3275 * memory.h (enum): Add MTYPE_RIP_PEER.
3276
32772000-01-15 Toshiaki Takada <takada@zebra.org>
3278
3279 * memory.h (enum): Add MTYPE_OSPF_CRYPT_KEY.
3280
32812000-01-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3282
3283 * command.h (node_type ): Add MASC_NODE for masc.
3284
32852000-01-09 Wang Jianliang <wangjl@soim.net>
3286
3287 * routemap.c (route_map_index_add): When route_map_index is not
3288 empty and insert new item at the head, it can cause core dump.
3289 Fix "if (index == map->head)" to "if (point == map->head).
3290 (route_map_add_set): If there is an old set command, override old
3291 set command with new one.
3292 (route_map_index_delete): Use while() instead of for for() for
3293 logical correctness.
3294
32951999-12-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3296
3297 * memory.h (enum): Add MTYPE_BGP_STATIC.
3298
32991999-12-23 Alex Zinin <zinin@amt.ru>
3300 * zebra.h, zclient.*: dynamic int up/down message
3301 support
3302
33031999-12-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3304
3305 * thread.c (thread_cancel_event): Add a function for clean up
3306 events.
3307
33081999-12-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3309
3310 * dropline.c: Delete file.
3311 dropline.h: Linewise.
3312
33131999-12-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3314
3315 * filter.c (access_list_filter_delete): Wrong pointer
3316 access->master was pointed out after access is freed. I store
3317 master value at the beginning of the function.
3318
33191999-12-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3320
3321 * vty.c (exec_timeout): Change of VTY timeout affect to current
3322 VTY connection.
3323 (vty_accept): Instead of immediate exit() return -1.
3324
33251999-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3326
3327 * vty.c (vty_configure_lock): Configuration lock function added.
3328 Only one VTY can use CONFI_NODE at the same time.
3329
3330 * log.c: Delete zvlog_* functions. Now zlog_* does the same
3331 thing.
3332
3333 * log.c (log_init): Function removed.
3334 (log_close): Likewise.
3335 (log_flush): Likewise.
3336 (log_open): Likewise.
3337
3338 * vty.c (terminal_monitor): Add new command.
3339 (no_terminal_monitor): Likewise.
3340
3341 * log.c (old_log): Function removed.
3342 (old_log2): Likewise.
3343 (old_log_warn): Likewise.
3344
33451999-12-04 Toshiaki Takada <takada@zebra.org>
3346
3347 * command.c (cmd_ipv6_match): New function added.
3348 (cmd_ipv6_prefix_match): Likewise.
3349
33501999-12-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3351
3352 * command.c (cmd_ipv6_match):
3353
3354 * table.c: Delete #ifdef HAVE_MBGPV4.
3355
3356 * prefix.h (struct prefix): Add safi member.
3357 (struct prefix_ipv4): Likewise.
3358 (struct prefix_ipv6): Likewise.
3359
33601999-12-04 Rumen Svobodnikov <rumen@linux.tu-varna.acad.bg>
3361
3362 * memory.c (struct mstat): Revert to support MEMORY_LOG.
3363
33641999-11-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3365
3366 * version.h: Bump up to 0.81c for testing new kernel codes.
3367
33681999-11-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3369
3370 * thread.h (struct thread): Pthread support is disabled all
3371 platform.
3372
33731999-11-21 Michael Handler <handler@sub-rosa.com>
3374
3375 * Include <limits.h> and <strings.h> under SUNOS_5.
3376
33771999-11-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3378
3379 * sockunion.c (in6addr_cmp): Enclosed by #define HAVE_IPV6
33801999-11-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3381
3382 * command.h (node_type ): Add BGP_IPV4_NODE and BGP_IPV6_NODE.
3383
33841999-11-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3385
3386 * command.c (disable): Add `disable' command.
3387
33881999-11-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3389
3390 * plist.c (vty_prefix_list_install): Add any check.
3391
33921999-11-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3393
3394 * command.h (node_type ): Add DUMP_NODE.
3395
33961999-11-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3397
3398 * smux.c: Change default SMUX oid to compatible with gated.
3399
34001999-10-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3401
3402 * if_rmap.c: New file added.
3403
3404 * if_rmap.h: New file added.
3405
34061999-10-29 Alex Zinin <zinin@amt.ru>
3407
3408 * hash.c: add hash_free() function
3409
34101999-10-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3411
3412 * hash.c (hash_clean): Add clean function.
3413
3414 * plist.c (prefix_list_reset): Add reset function.
3415
3416 * filter.c (access_list_reset): Add reset function.
3417
34181999-10-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3419
3420 * client.c: Merged with zclient.c.
3421 * client.h: Merged with zclient.h.
3422
34231999-10-15 Jordan Mendelson <jordy@wserv.com>
3424
3425 * md5.c: Imported from GNU C Library.
3426 * md5-gnu.h: Likewise.
3427
34281999-10-15 Jochen Friedrich <jochen@scram.de>
3429
3430 * smux.c (smux_getresp_send): SMUX_GETRSP codes improvement.
3431
34321999-10-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3433
3434 * smux.h: New file added.
3435
3436 * snmp.c: Rename to smux.c.
3437
34381999-10-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3439
3440 * command.c (cmd_execute_command_strict): Filter ambious commands.
3441 (cmd_filter_by_string): Change to return enum match_type.
3442
34431999-10-01 Toshiaki Takada <takada@zebra.org>
3444
3445 * vty.c (vty_describe_fold): New function which does VTY
3446 description line fold.
3447 * vty.c (vty_describe_command): Set description column.
3448
34491999-09-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3450
3451 * plist.c (prefix_list_init_ipv4): VTY user interface is improved.
3452
34531999-09-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3454
3455 * command.c (cmd_filter_by_string): Fix bug of CMD_IPV4 and
3456 CMD_IPV4_PREFIX check. Both return type must be exact_match.
3457
34581999-09-24 Toshiaki Takada <takada@zebra.org>
3459
3460 * command.c (cmd_filter_by_completion),
3461 (is_cmd_ambiguous): Check IPv4 address, IPv4 prefix and range
3462 parameter matches range.
3463
34641999-09-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3465
3466 * routemap.c (route_map_apply): Returm RM_DENYMATCH when no match
3467 is performed.
3468
34691999-09-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3470
3471 * vty.c (vty_read): Control-C stop VTY_MORE mode.
3472
34731999-09-20 Kunihiro Ishiguro <kunihiro@zebra.org>
3474
3475 * command.h (node_type ): Add ACCESS_IPV6_NODE and
3476 PREFIX_IPV6_NODE.
3477
3478 * distribute.h: New file added.
3479
3480 * command.h (node_type ): Delete DISTRIBUTE_NODE.
3481
34821999-09-18 Kunihiro Ishiguro <kunihiro@zebra.org>
3483
3484 * vty.c (vty_terminate_all): New function added for reload
3485 support.
3486
34871999-09-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3488
3489 * memory.h (enum): Add new type MTYPE_OSPF_EXTERNAL_ROUTE.
3490
34911999-08-31 Janos Farkas <chexum@shadow.banki.hu>
3492
3493 * vty.c (vty_read): Handle also 0x7f (alt-backspace), just like
3494 esc-ctrl-h (delete word backwards).
3495
34961999-08-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3497
3498 * if.h: Add if_nametoindex for NRL.
3499
35001999-08-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3501
3502 * if.c (if_create): New function.
3503
35041999-08-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3505
3506 * snmp.c: New file.
3507
35081999-08-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3509
3510 * stream.c (stream_put): stream_memcpy () is changed to stream_put
3511 (). stream_get () is added.
3512
35131999-08-18 Toshiaki Takada <takada@zebra.org>
3514
3515 * memory.h (enum): Add MTYPE_OSPF_LSA_DATA.
3516
35171999-08-18 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3518
3519 * table.c (route_table_finish): add function frees table.
3520
35211999-08-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3522
3523 * memory.h (enum): Add MTYPE_RTADV_PREFIX.
3524
35251999-08-11 Kunihiro Ishiguro <kunihiro@zebra.org>
3526
3527 * if.h (struct interface ): hw_address, hw_address_len added.
3528
35291999-08-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3530
3531 * if.h (struct interface ): Change structure member if_data to
3532 info, index to ifindex.
3533
35341999-08-08 Rick Payne <rickp@rossfell.co.uk>
3535
3536 * routemap.c: Multi protocol route-map modification.
3537
3538 * routemap.c (route_map_apply): Route match process bug is fixed.
3539
35401999-08-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3541
3542 * thread.c (thread_fetch): When signal comes, goto retry point.
3543
35441999-08-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3545
3546 * Makefile.am: Add sockopt.c and sockopt.h
3547 * sockopt.c: New file.
3548 * sockopt.h: New file.
3549
35501999-08-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3551
3552 * version.h (ZEBRA_VERSION): Release zebra-0.75
3553
35541999-08-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3555
3556 * memory.h (enum): Add MTYPE_RIPNG_AGGREGATE.
3557
35581999-07-31 Kunihiro Ishiguro <kunihiro@zebra.org>
3559
3560 * sockunion.h: Add sockunion_getpeername ().
3561
35621999-07-27 Kunihiro Ishiguro <kunihiro@zebra.org>
3563
3564 * version.h: Release zebra-0.74
3565
35661999-07-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3567
3568 * command.h (struct host): Delete lines from struct host. Add
3569 lines to struct vty.
3570
3571 * command.c: Delete `lines LINES'. Terminal display line settings
3572 should be done by `terminal length' command.
3573
35741999-07-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3575
3576 * memory.h (enum): MTYPE_OSPF_PATH are added.
3577
35781999-07-22 Toshiaki Takada <takada@zebra.org>
3579
3580 * memory.h (enum): MTYPE_OSPF_NEXTHOP is added.
3581
35821999-07-21 Toshiaki Takada <takada@zebra.org>
3583
3584 * linklist.c (list_add_node_prev), (list_add_node_next),
3585 (list_add_list): New function added.
3586
3587 * table.c (route_table_free): New function added.
3588
35891999-07-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3590
3591 * plist.c (config_write_prefix): Set write flag when configuration
3592 is written.
3593
35941999-07-15 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3595
3596 * prefix.c : prefix_cmp() added. change apply_mask() to
3597 apply_mask_ipv4(), and new apply_mask() added.
3598
35991999-07-14 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3600
3601 * prefix.c (prefix2str): append prefixlen.
3602
36031999-07-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3604
3605 * command.c (config_terminal): Change "config terminal" to
3606 "configure terminal". Reported by Georg Hitsch
3607 <georg@atnet.at>.
3608 (config_terminal_length): `terminal length <0-512>' is added. At
3609 this moment this command is only usef for vty interface.
3610 Suggested by Georg Hitsch <georg@atnet.at>.
3611
36121999-07-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3613
3614 * routemap.c (rulecmp): Add wrapper function of strcmp.
3615
36161999-07-08 Rick Payne <rickp@rossfell.co.uk>
3617
3618 * sockunion.c (inet_aton): Fix bug of inet_aton.
3619
36201999-07-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3621
3622 * version.h (ZEBRA_VERSION): Start zebra-0.73
3623
36241999-07-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3625
3626 * version.h: Bump up to 0.72.
3627
36281999-07-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3629
3630 * command.c (install_default): New function for install default
3631 commands to the node.
3632
3633 * memory.h (enum): MTYPE_NEXTHOP is added.
3634
36351999-07-01 <kunihiro@zebra.org>
3636
3637 * command.c (no_banner_motd): `no banner motd' command added.
3638
36391999-06-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3640
3641 * regex.c: Update to glibc-2.1.1's posix/regex.c
3642
3643 * regex-gnu.h: Update to glibc-2.1.1's posix/regex.h
3644
3645 * prefix.h (IPV4_ADDR_SAME): Macro added.
3646 (IPV6_ADDR_SAME): Likewise.
3647
36481999-06-29 Kunihiro Ishiguro <kunihiro@zebra.org>
3649
3650 * memory.h (enum): Add MTYPE_OSPF_VERTEX
3651
3652 * version.h: Bump up to 0.71.
3653
3654 * vty.c (vty_serv_sock_addrinfo): Use addrinfo function to bind
3655 VTY socket when IPv6 is enabled.
3656
36571999-06-28 Kunihiro Ishiguro <kunihiro@zebra.org>
3658
3659 * vty.c (vty_serv_sock): Change vty_serv_sock determine which
3660 address family to bind.
3661
3662 * command.c: Add quit command.
3663
36641999-06-26 NOGUCHI kay <kay@dti.ad.jp>
3665
3666 * vty.c (vty_read_config): Fix bug of configuration file path
3667 detection.
3668
36691999-06-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3670
3671 * version.h: Bump up to 0.70.
3672
36731999-06-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3674
3675 * buffer.h (GETL): Remove GETL macro.
3676
3677 * version.h: Bump up to 0.69.
3678
36791999-06-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3680
3681 * if.c (connected_add): Commented out connected_log.
3682
36831999-06-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3684
3685 * command.h (struct cmd_element ): strvec and descvec is combined
3686 into newstrvec.
3687
3688 * command.c (desc_make): Function removed.
3689 (desc_next): Function removed.
3690
3691 * command.h (struct cmd_element ): docvec is removed from struct
3692 cmd_element.
3693
36941999-06-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3695
3696 * command.c (cmd_execute_command): Remove command NULL check.
3697
3698 * command.h (struct cmd_element ): Add newstrvec entry to struct
3699 cmd_element.
3700 (DEFUN2): DEFUN2 macro is removed. DEFUN is extended to support
3701 (a|b|c) statement.
3702 (DESC): DESC macro is removed.
3703
3704 * vty.c (vty_complete_command): When return value is
3705 CMD_ERR_NO_MATCH, don't display error message.
3706
37071999-06-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3708
3709 * table.c (route_next_until): New function.
3710
3711 * version.h: Bump up to 0.68.
3712
37131999-06-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3714
3715 * vty.c (vty_close): Free vty->buf when vty is closed.
3716
3717 * memory.h (enum): Add MTYPE_COMMUNITY_ENTRY and
3718 MTYPE_COMMUNITY_LIST.
3719
3720 * vty.h (struct vty ): Change buf from static length buffer to
3721 variable length buffer.
3722
3723 * vty.c (vty_ensure): New function added.
3724
37251999-06-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3726
3727 * command.h (node_type ): Add COMMUNITY_LIST_NODE.
3728
3729 * command.c (config_enable_password): Freeing host.enable bug is
3730 fixed.
3731 (config_enable_password): Add argc count check.
3732
37331999-05-31 Kunihiro Ishiguro <kunihiro@zebra.org>
3734
3735 * version.h: Bump up to 0.67.
3736
37371999-05-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3738
3739 * command.c (zencrypt): New function for encrypt password.
3740
3741 * command.h (struct host): Add password_encrypt and
3742 enable_encrypt.
3743
37441999-05-30 Jochen Friedrich <jochen@scram.de>
3745
3746 * command.h (struct host): New member encrypt is added for
3747 encrypted password.
3748
37491999-05-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3750
3751 * vty.c: Remove all_digit_check function. Instead use all_digit.
3752
3753 * prefix.c (all_digit): New function for checking string is made
3754 from digit character.
3755
37561999-05-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3757
3758 * Makefile.am (libzebra_a_SOURCES): Add zclient.c.
3759 (noinst_HEADERS): Add zclient.h
3760
3761 * zclient.[ch]: New file for zebra client routine.
3762
3763 * memory.h (enum): Add MTYPE_ZEBRA.
3764
37651999-05-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3766
3767 * version.h (ZEBRA_VERSION): Update to 0.66.
3768
37691999-05-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3770
3771 * buffer.h (GETC,GETW): Macro deleted.
3772
37731999-05-15 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
3774
3775 * prefix.h (IPV4_NET0, IPV4_NET127): Macro added.
3776
37771999-05-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3778
3779 * vty.c (service_advanced_vty): New command added.
3780 (no_service_advanced_vty): Likewise.
3781
37821999-05-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3783
3784 * vty.c (vty_auth): If advanced flag is set and enable password is
3785 not set, directly login to the ENABLE_NODE. This feature is
3786 originally designed and implemented by Stephen R. van den Berg
3787 <srb@cuci.nl>.
3788
3789 * command.h (host): Add advanced flag to struct host for advanced
3790 vty terminal interface.
3791
3792 * version.h (ZEBRA_VERSION): Update to 0.65 for next beta release.
3793
37941999-05-14 Stephen R. van den Berg <srb@cuci.nl>
3795
3796 * command.h (node_type ): Add TABLE_NODE.
3797
3798 * vty.c (vty_telnet_option): Check host.lines value.
3799
3800 * command.c (config_lines): DEFUN for 'lines LINES' command.
3801
3802 * zebra.h: Include <sys/utsname.h> for uname().
3803 (RT_TABLE_MAIN): Defined as 0 if OS does not support multiple
3804 routing table.
3805
3806 * vty.c (vty_auth): Directly login to the ENABLE_NODE when enable
3807 password is not set.
3808 (vty_prompt): Get machine's hostname when hostname is not set.
3809
38101999-05-11 James Willard <james@whispering.org>
3811
3812 * command.c (config_exit): Close connection when `exit' command is
3813 executed at ENABLE_NODE.
3814
38151999-05-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3816
3817 * vty.c (vty_stop_input): `C-c' key change node to ENABLE_NODE.
3818
3819 * command.c (cmd_execute_command_strict): Matched command size
3820 check added.
3821 (cmd_make_desc_line): New function for DEFUN2.
3822
3823 * command.h (struct cmd_element ): Add descsize.
3824
38251999-05-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3826
3827 * command.h (struct cmd_element ): Remame descvec to docvec.
3828 (struct cmd_element ): Add descvec for new description system.
3829
3830 * command.c (desc_make): Check cmd->descvec.
3831
38321999-05-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3833
3834 * memory.h (enum): Add MTYPE_CLUSTER, MTYPE_CLUSTER_VAL.
3835
38361999-05-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3837
3838 * version.h (ZEBRA_VERSION): Bump up to 0.64 for next beta
3839 release.
3840
38411999-05-04 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3842
3843 * linklist.c (list_delete_all_node): bug fix.
3844 previous code loses current position when node
3845 is deleted.
3846
38471999-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3848
3849 * command.h (DESC): Macro added.
3850 (struct cmd_element2): Delete struct cmd_element2.
3851
3852 * plist.c (prefix_list): Sequential number option check is added.
3853
38541999-05-02 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3855
3856 * log.c (zvlog_{debug,info,notice,warn,err}): have been
3857 added. now we can log both console and file, but still
3858 need some fix about config write.
3859
38601999-05-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3861
3862 * log.c (zvlog_debug): Fix yasu's change.
3863
38641999-05-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3865
3866 * plist.c (prefix_list): Fix typo.
3867
38681999-04-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3869
3870 * Set version to 0.63 for first beta package.
3871
38721999-04-27 Carlos Barcenilla <barce@frlp.utn.edu.ar>
3873
3874 * prefix.c (str2prefix_ipv4): Fix prefix length check.
3875 (str2prefix_ipv6): Likewise.
3876
38771999-04-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3878
3879 * memory.h (enum): Add MTPYE_PREFIX_LIST and
3880 MTYPE_PREFIX_LIST_ENTRY.
3881
3882 * command.h (node_type ): Add PREFIX_NODE.
3883
38841999-04-25 Carlos Barcenilla <barce@frlp.utn.edu.ar>
3885
3886 * command.c: ALIAS (config_write_memory_cmd) and ALIAS
3887 (copy_runningconfig_startupconfig_cmd) is added.
3888
3889 * table.c (route_node_lookup): Unused match variable deletion.
3890
38911999-04-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3892
3893 * Makefile.am (libzebra_a_SOURCES): plist.c added.
3894 (noinst_HEADERS): plist.h added.
3895
3896 * plist.c, plist.h: New file added.
3897
3898 * memory.h (enum): Rename MTYPE_AS_PASN to MTYPE_AS_STR.
3899 * memory.c: Likewise.
3900
39011999-04-19 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
3902
3903 * command.c (show_version): `show version' command added.
3904
39051999-04-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3906
3907 * prefix.c (str2prefix_ipv6): Prefix length overflow check.
3908
39091999-04-19 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
3910
3911 * prefix.c (str2prefix_ipv4): Prefix length overflow check.
3912
39131999-04-19 Alex Bligh <amb@gxn.net>
3914
3915 * prefix.c (sockunion2hostprefix): Function added.
3916 (sockunion2prefix): Address family was not set. Now it is set.
3917
3918 * vty.c: VTY access-class command is added.
3919
39201999-04-18 Kunihiro Ishiguro <kunihiro@zebra.org>
3921
3922 * memory.c: Change xmalloc to zmalloc. xcalloc, xrealloc, xfree,
3923 xstrdup are likewise.
3924
39251999-04-18 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
3926
3927 * thread.c: Add thread_execute for other routing daemon.
3928 OSPF tasks need to be generated by "sheduled" and "executed".
3929
39301999-04-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3931
3932 * buffer.c: Rewrite buffer_write and buffer_flush related
3933 functions for fixing bugs. Reason of the problem and fix is
3934 suggested by Alex Bligh <amb@gxn.net>.
3935
39361999-04-12 Alex Bligh <amb@gxn.net>
3937
3938 * command.c (cmd_entry_function_descr): Added for variable
3939 argument help display.
3940
39411999-04-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3942
3943 * regex.c, regex-gnu.h: Imported from GNU sed-3.02 distribution.
3944
39451999-03-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3946
3947 * stream.c: stream_fifo_free bug is fixed.
3948
39491999-03-19 Toshiaki Takada <takada@zebra.org>
3950
3951 * stream.c (stream_strncpy): Added for getting any length bytes
3952 from stream.
3953
39541999-03-16 Kunihiro Ishiguro <kunihiro@zebra.org>
3955
3956 * version.h (ZEBRA_BUG_ADDRESS): New macro added.
3957
39581999-03-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3959
3960 * buffer.c (buffer_flush_window): If ep is same as buffer's size
3961 length and lp is overrun one octet.
3962
39631999-03-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3964
3965 * vty.h: add VTY's timeout function.
3966
39671999-03-05 <kunihiro@zebra.org>
3968
3969 * command.h (node_type ): Add OSPF6_node.
3970
39711999-03-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3972
3973 * zebra.h: Check HAVE_SYS_SELECT_H when include <sys/select.h>
3974
39751999-03-03 Jeroen Ruigrok/Asmodai <asmodai@wxs.nl>
3976
3977 * zebra.h: Include <net/if_var.h> if it exists.
3978
39791999-03-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3980
3981 * getopt.[ch],getopt1.c: Sync with glibc-2.1.
3982
3983 * log.c (zlog): Tempolary ZLOG_STDOUT feature added.
3984
3985 * command.h: Include vector.h and vty.h
3986
39871999-02-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3988
3989 * routemap.h (struct route_map_rule_cmd): Add prefix arguemnt.
3990
3991 * routemap.c (route_map_apply_index): Add prefix argument.
3992 (route_map_apply): Likewise.
3993
3994 * memory.h (enum): Add MTYPE_ROUTE_MAP_COMPILED.
3995
3996 * stream.c: Add stream_fifo related functions.
3997
39981999-02-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3999
4000 * daemon.c: Return integer value. File descriptor close is added.
4001
4002 * memory.h (enum): add MTYPE_OSPF_LSA.
4003
40041999-02-23 Kunihiro Ishiguro <kunihiro@zebra.org>
4005
4006 * rsh.c: Remove empty file.
4007
40081999-02-22 <kunihiro@zebra.org>
4009
4010 * routemap.c: Add add/delete hook to route_map_master.
4011
40121999-02-19 Peter Galbavy <Peter.Galbavy@knowledge.com>
4013
4014 * str.[ch] added to supply wrappers for snprintf(), strlcat() and
4015 strlcpy on system without these.
4016
40171999-02-18 Peter Galbavy <Peter.Galbavy@knowledge.com>
4018
4019 * syslog support added
4020
40211999-02-02 Kunihiro Ishiguro <kunihiro@zebra.org>
4022
4023 * filter.c (access_list_add_hook): added for hook function management.
4024 * filter.c (access_list_delete_hook): Likewise.
4025
40261999-01-19 Kunihiro Ishiguro <kunihiro@zebra.org>
4027
4028 * stream.c: New file.
4029 * stream.h: New file.
4030 * Divide stream related fucntions from buffer.[ch] into stream.[ch].
4031
40321999-01-14 Kunihiro Ishiguro <kunihiro@zebra.org>
4033
4034 * memory.h (enum): add MTYPE_STREAM, MTYPE_STREAM_DATA
4035
4036 * buffer.c (stream_new): Set MTYPE_STREAM to XMALLOC argument.
4037
40381998-12-23 Kunihiro Ishiguro <kunihiro@zebra.org>
4039
4040 * routemap.c: route_map_index_delete() added.
4041
40421998-12-22 Kunihiro Ishiguro <kunihiro@zebra.org>
4043
4044 * buffer.c (buffer_empty): check cp instead of sp.
4045
40461998-12-17 Kunihiro Ishiguro <kunihiro@zebra.org>
4047
4048 * radix.[ch]: Deleted.
4049
40501998-12-15 Magnus Ahltorp <map@stacken.kth.se>
4051
4052 * buffer.c: Prototype fixes.
4053 * prefix.c: Likewise.
4054 * sockunion.c: Likewise.
4055 * sockunion.h: Likewise.
4056
40571998-12-14 Kunihiro Ishiguro <kunihiro@zebra.org>
4058
4059 * vty.c (vty_read): DELETE key works as vty_delete_char.
4060
40611998-12-13 Kunihiro Ishiguro <kunihiro@zebra.org>
4062
4063 * log.c (time_print): chane %y to %Y.
4064
40651998-12-10 Kunihiro Ishiguro <kunihiro@zebra.org>
4066
4067 * distribute.c: new file.
4068
40691998-12-09 Kunihiro Ishiguro <kunihiro@zebra.org>
4070
4071 * filter.c: Remove all of struct prefix_{ipv4,ipv6} and add
4072 complete support of IPv6 access list.
4073
4074 * command.c (config_write_element): function delete.
4075 (config_write_host): function add. password and enable password
4076 isn't printed to vty interface.
4077
40781998-12-08 Kunihiro Ishiguro <kunihiro@zebra.org>
4079
4080 * filter.c: Change prefix_ipv4 to prefix and add support of
4081 prefix_ipv6 filtering.
4082
40831998-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
4084
4085 * Makefile.am (INCLUDES): add @INCLUDES@ for Linux IPv6 inet6-apps
4086 header includes.
4087
40881998-12-05 Kunihiro Ishiguro <kunihiro@zebra.org>
4089
4090 * log.c (log_flush): fix function name typo.
4091
40921998-12-04 Yasuhiro Ohara <yasu@sfc.wide.ad.jp>
4093
4094 * memory.h: OSPF memory type is added.
4095
40961998-11-15 Kunihiro Ishiguro <kunihiro@zebra.org>
4097
4098 * command.c (sort_node): add sort_node() for pretty printing of
4099 command on vty interface.
4100 (config_password): delete the restriction of charaster of password
4101 string.
4102
41031998-09-05 Kunihiro Ishiguro <kunihiro@debian.zebra.org>
4104
4105 * prefix.c (prefix_ipv4_any): add prefix_ipv4_any().
4106
41071998-08-25 Kunihiro Ishiguro <kunihiro@zebra.org>
4108
4109 * network.h: New file.
4110
41111998-08-24 Kunihiro Ishiguro <kunihiro@zebra.org>
4112
4113 * vty.c (vty_will_echo): function name change from vty_off_echo.
4114
41151998-08-18 Kunihiro Ishiguro <kunihiro@zebra.org>
4116
4117 * buffer.h: add PUTC,PUTW,PUTL macros.
4118
41191998-07-22 Kunihiro Ishiguro <kunihiro@zebra.org>
4120
4121 * route.[ch]: renamed to prefix.[ch]
4122
41231998-06-09 Kunihiro Ishiguro <kunihiro@zebra.org>
4124
4125 * prefix_in, prefix_in6 is replaced by prefix_ipv4, prefix_ipv6.
4126
4127 * Makefile.am: @INCLUDES@ is deleted from INCLUDES.
4128
41291998-06-07 Kunihiro Ishiguro <kunihiro@zebra.org>
4130
4131 * host.[ch]: merged with command.[ch]
4132
41331998-05-08 Kunihiro Ishiguro <kunihiro@zebra.org>
4134
4135 * Makefile.am (libzebra_a_SOURCES): add route.c to libzebra_a_SOURCES.
4136
41371998-05-07 Kunihiro Ishiguro <kunihiro@zebra.org>
4138
4139 * route.c (str2prefix): str2prefix () is gone.
4140
41411998-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
4142
4143 * vty.c (vty_read_config): change CONDIR to SYSCONFDIR.
4144
4145 * .cvsignore: add file.
4146
4147 * memory.c (xerror): add arguent `type' and `size'.
4148
4149 * socket.c: deleted.
4150
41511998-05-02 Kunihiro Ishiguro <kunihiro@zebra.org>
4152
4153 * vector.c: malloc,free,realloc -> XMALLOC,XFREE,XREALLOC.
4154 * linklist.c: same as above.
4155
41561998-04-30 Kunihiro Ishiguro <kunihiro@zebra.org>
4157
4158 * filter.[ch]: added.
4159
41601998-04-01 Kunihiro Ishiguro <kunihiro@zebra.org>
4161
4162 * vty.c (config_who): return CMD_SUCCESS
4163
41641998-04-01 Jochen Friedrich <jochen@scram.de>
4165
4166 * table.c (route_dump_node): route_dump_node is IPv6 specific
4167 function so move #ifdef to the end of route_dump_node ().
4168
41691998-03-05 "Hannes R. Boehm" <hannes@boehm.org>
4170
4171 * if.c: DEFUN(interface_desc) added.
4172
41731998-03-05 Kunihiro Ishiguro <kunihiro@zebra.org>
4174
4175 * if.c: separated from ripd/rip_interface.c
4176
41771998-03-04 Kunihiro Ishiguro <kunihiro@zebra.org>
4178
4179 * thread.[ch] : added.
4180
41811998-02-14 Kunihiro Ishiguro <kunihiro@zebra.org>
4182
4183 * vty.c (vty_delete_char): fix size bug.
4184 (vty_backward_pure_word): function added.
4185 (vty_read): ESC + 'f' perform vty_forward_word.
4186 (vty_read): ESC + 'b' perform vty_backward_word.
4187
41881998-02-11 Kunihiro Ishiguro <kunihiro@zebra.org>
4189
4190 * radix.c (radix_lookup_rt): add mask check.
4191 (radix_delete_duproute): add mask check.
4192
41931998-02-10 Kunihiro Ishiguro <kunihiro@zebra.org>
4194
4195 * command.c (config_write_file): fix vty -> file_vty.
4196
41971998-02-06 Kunihiro Ishiguro <kunihiro@zebra.org>
4198
4199 * command.c (cmd_filter_ambiguous): add complex type treatment.
4200
42011998-02-05 Kunihiro Ishiguro <kunihiro@zebra.org>
4202
4203 * vty.c (vty_time_print): function added.
4204 (vty_complete_command): now [...] element isn't shown by completion.
4205
42061998-01-26 Kunihiro Ishiguro <kunihiro@zebra.org>
4207
4208 * command.c : change from cmd_install_node() to install_node().
4209
42101998-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
4211
4212 * route.[ch]: struct rt{} is replaced by struct prefix{}.
4213
42141998-01-06 Kunihiro Ishiguro <kunihiro@zebra.org>
4215
4216 * command.c (cmd_execute_command): check command length.
4217
4218 * timer.c (zebra_timer_set): add zebra_timer_set.
4219
42201998-01-05 Kunihiro Ishiguro <kunihiro@zebra.org>
4221
4222 * command.h (node_type ): add ZEBRA_NODE.
4223
4224 * command.c (config_exit): add RIP_NODE.
4225 (config_write_file): add RIP_NODE.
4226
42271998-01-04 Kunihiro Ishiguro <kunihiro@zebra.org>
4228
4229 * print_version.c (print_version): Now Copyright is 1996-1998.
4230
4231 * sockunion.c (sockunion_log): moved from ../zebra/route.c
4232
42331997-12-30 Kunihiro Ishiguro <kunihiro@zebra.org>
4234
4235 * host.c (config_logfile): change 'log PATH' to 'logfile PATH'.
4236
4237 * sockunion.c (sockunion_sameprefix): add same prefix for
4238 sockunion.
4239
42401997-12-29 Kunihiro Ishiguro <kunihiro@zebra.org>
4241
4242 * radix.[ch] : are moved from ../zebra directroy.
4243
4244 * command.c (config_from_file): if command execution failed down
4245 level to CONFIG_NODE.
4246
4247 * host.c: config_log function which enable 'log FILENAME' command.
4248
42491997-12-23 Kunihiro Ishiguro <kunihiro@zebra.org>
4250
4251 * vty.c: add vty_transpose_chars (). Now you can use '^T' to
4252 transpose character.
4253
4254 * command.c: cmd_cmdsize add, this is useful to check incomplete
4255 command.
4256
42571997-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
4258
4259 * fd.h: add family for address family
4260
42611997-12-06 Kunihiro Ishiguro <kunihiro@zebra.org>
4262
4263 * command.o
4264 * vty.o
4265 * host.o is moved from ../zebra
4266
42671997-08-14 Kunihiro Ishiguro <kunihiro@zebra.org>
4268
4269 * make library directory.
4270