Age | Commit message (Collapse) | Author |
|
2006-01-17 Paul Jakma <paul.jakma@sun.com>
* zclient.{c,h}: (zclient_create_header) export this, seems others
could use it (in lieu of more complete zserv helpers).
|
|
2006-01-16 Paul Jakma <paul.jakma@sun.com>
* lib/zclient.h: Update the Zserv protocol header with a version
field. Define the old command field to be a 'marker', to
allow old Zserv and updated Zserv to be differentiated.
Future updates will bump the version field obviously. New
command field is made wider. Try to stop using the
'zebra_size_t' typedef in the callbacks.
* lib/zclient.c: Update to read/write new format header.
* zebra/zserv.c: Ditto
|
|
* (general) extern and static'ification of functions in code and
header.
Cleanup any definitions with unspecified arguments.
Add casts for callback assignments where the callback is defined,
typically, as passing void *, but the function being assigned has
some other pointer type defined as its argument, as gcc complains
about casts from void * to X* via function arguments.
Fix some old K&R style function argument definitions.
Add noreturn gcc attribute to some functions, as appropriate.
Add unused gcc attribute to some functions (eg ones meant to help
while debugging)
Add guard defines to headers which were missing them.
* command.c: (install_node) add const qualifier, still doesnt shut
up the warning though, because of the double pointer.
(cmp_node) ditto
* keychain.c: (key_str2time) Add GET_LONG_RANGE() macro, derived
fromn vty.h ones to fix some of the (long) < 0 warnings.
* thread.c: (various) use thread_empty
(cpu_record_hash_key) should cast to uintptr_t, a stdint.h type
* vty.h: Add VTY_GET_IPV4_ADDRESS and VTY_GET_IPV4_PREFIX so they
removed from ospfd/ospf_vty.h
* zebra.h: Move definition of ZEBRA_PORT to here, to remove
dependence of lib on zebra/zserv.h
|
|
Implement non-blocking zclient I/O with buffering.
* zclient.h (struct zclient): Add two fields to support non-blocking
I/O: struct buffer *wb, and struct thread *t_write.
(zclient_free): Remove function.
(zebra_redistribute_send): Change 2nd arg from socket fd to
struct zclient * (needed to support non-blocking I/O and buffering).
(zclient_send_message): New function to send an arbitrary
message with non-blocking I/O.
* zclient.c (zclient_new): Create write buffer.
(zclient_free): Remove unused function.
(zclient_stop): Must cancel new t_write thread. Also, reset
all buffers: ibuf, obuf, and wb.
(zclient_failed): New helper function for typical error handling.
(zclient_flush_data): New thread to flush queued data.
(zclient_send_message): New function to send the message in
zclient->obuf to zebra using non-blocking I/O and buffering.
(zebra_message_send, zapi_ipv4_route, zapi_ipv6_route): Use
new zclient_send_message function instead of calling writen.
(zclient_start): Set socket non-blocking. Also, change 2nd arg
to zebra_redistribute_send from zclient->sock to zclient.
(zebra_redistribute_send): Change 2nd arg to struct zclient *.
Can now use zclient->obuf to assemble the message instead of
allocating a temporary stream. And call zclient_send_message to
send the message instead of writen.
(zclient_read): Convert to support non-blocking I/O by using
stream_read_try instead of deprecated stream_read.
(zclient_redistribute): Change 2nd arg to zebra_redistribute_send
from zclient->sock to zclient.
* ospf6_zebra.c (ospf6_zebra_redistribute, ospf6_zebra_no_redistribute):
Change 2nd arg to zebra_redistribute_send from zclient->sock
to zclient.
* ospf_zebra.c (ospf_zebra_add): Call zclient_send_message instead
of writen.
* rip_zebra.c (rip_redistribute_set, rip_redistribute_unset,
rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send
from zclient->sock to zclient.
* ripng_zebra.c (ripng_redistribute_unset, ripng_redistribute_clean):
Change 2nd arg to zebra_redistribute_send from zclient->sock
to zclient.
* bgp_zebra.c (bgp_redistribute_set, bgp_redistribute_unset):
The 2nd arg to zebra_redistribute_send is now zclient instead of
zclient->sock.
* isis_zebra.h (isis_zebra_finish): Remove declaration of unused
function.
* isis_zebra.c (isis_zebra_route_add_ipv4): Call zclient_send_message
to send the message to zebra instead of calling writen directly, since
zclient_send_message understands non-blocking I/O and will manage
the buffer queue appropriately.
(isis_zebra_finish): Remove unused function, particularly since
the zclient_free function has been removed.
|
|
added to strings and a lot of int -> unsigned int changes.
|
|
|
|
* bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes
(bgp_interface_address_delete) ditto.
(bgp_zebra_announce) ditto.
(bgp_zebra_withdraw) ditto.
* isis_zebra.c: Sync with zclient changes.
* zclient.c (zapi_ipv4_route) Follow Sowmini's lead and describe
message format.
* ospf6_zebra.c: Sync to zclient changes
* ospf_zebra.c: Sync with lib/zclient changes
* rip_zebra.c: sync with zclient changes.
* rip_interface.c: ditto.
* ripng_{interface,zebra}.c: sync with zclient changes
2004-05-08 Sowmini Varadhan <sowmini.varadhan@sun.com>
* zclient.c: (zapi_ipv4_add) collapsed into zapi_ipv4_route
(zapi_ipv4_delete) ditto.
(zapi_ipv4_route) add/delete a route by way of cmd arg.
(zapi_ipv6_add) collapsed into zapi_ipv6_route.
(zapi_ipv6_delete) ditto.
(zapi_ipv6_route) add/delete a route by way of cmd arg.
(zebra_interface_address_delete_read) collapsed into
zebra_interface_address_read.
(zebra_interface_address_delete_read) ditto.
(zebra_interface_address_read) read address add/delete messages
by way of type argument. Describe command message format.
(zebra_interface_add_read) Unconditionally read new ifmtu6 field.
Describe command message format.
(zebra_interface_state_read) Unconditionally read new ifmtu6 field.
(zclient_redistribute_set) Collapsed into zclient_redistribute
(zclient_redistribute_unset) ditto
(zclient_redistribute) set/unset redistribution.
(zclient_redistribute_default_set) Collapsed into
zclient_redistribute_default.
(zclient_redistribute_default_unset) ditto.
(zclient_redistribute_default) Redistribute default set/unset.
* zclient.h: delete zapi_ipv{4,6}_add, zapi_ipv{4,6}_delete. Add
zapi_ipv{4,6}_route. delete zclient_redistribute_set/unset. Add
zclient_redistribute. Ditto for
zclient_redistribute_default_{set/unset}.
|
|
|