good for merge

On Wed, 2010-04-28 at 14:57 +1000, Angus Salkeld wrote:
> trigger the dumping of flight data using:
>  corosync-objctl -w runtime.logsys.dump_flight_data=yes
> 
> then read the flight data as usual:
>  corosync-fplay
> 
> Signed-off-by: Angus Salkeld <[email protected]>
> ---
>  exec/main.c |   46 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 46 insertions(+), 0 deletions(-)
> 
> diff --git a/exec/main.c b/exec/main.c
> index 155c91f..3d993c3 100644
> --- a/exec/main.c
> +++ b/exec/main.c
> @@ -1256,6 +1256,51 @@ static void corosync_setscheduler (void)
>  #endif
>  }
>  
> +static void fplay_key_change_notify_fn (
> +     object_change_type_t change_type,
> +     hdb_handle_t parent_object_handle,
> +     hdb_handle_t object_handle,
> +     const void *object_name_pt, size_t object_name_len,
> +     const void *key_name_pt, size_t key_len,
> +     const void *key_value_pt, size_t key_value_len,
> +     void *priv_data_pt)
> +{
> +     if (key_len == strlen ("dump_flight_data") &&
> +             memcmp ("dump_flight_data", key_name_pt, key_len) == 0) {
> +             logsys_log_rec_store (LOCALSTATEDIR "/lib/corosync/fdata");
> +     }
> +}
> +
> +static void corosync_fplay_control_init (void)
> +{
> +     hdb_handle_t object_find_handle;
> +     hdb_handle_t object_runtime_handle;
> +     hdb_handle_t object_fplay_handle;
> +
> +     objdb->object_find_create (OBJECT_PARENT_HANDLE,
> +             "runtime", strlen ("runtime"),
> +             &object_find_handle);
> +
> +     if (objdb->object_find_next (object_find_handle,
> +                     &object_runtime_handle) != 0) {
> +             return;
> +     }
> +
> +     /* Connection objects */
> +     objdb->object_create (object_runtime_handle,
> +             &object_fplay_handle,
> +             "logsys", strlen ("logsys"));
> +
> +     objdb->object_key_create_typed (object_fplay_handle,
> +             "dump_flight_data", "no", strlen("no"),
> +             OBJDB_VALUETYPE_STRING);
> +
> +     objdb->object_track_start (object_fplay_handle,
> +             OBJECT_TRACK_DEPTH_RECURSIVE,
> +             fplay_key_change_notify_fn,
> +             NULL, NULL, NULL, NULL);
> +}
> +
>  static void corosync_stats_init (void)
>  {
>       hdb_handle_t object_find_handle;
> @@ -1299,6 +1344,7 @@ static void main_service_ready (void)
>       evil_init (api);
>       corosync_stats_init ();
>       corosync_totem_stats_init ();
> +     corosync_fplay_control_init ();
>       if (minimum_sync_mode == CS_SYNC_V2) {
>               log_printf (LOGSYS_LEVEL_NOTICE, "Compatibility mode set to 
> none.  Using V2 of the synchronization engine.\n");
>               sync_v2_init (

_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to