[PATCH v2] libmbim-glib: mbim-device: Print parsed packet even for unmatched transaction

Dan Williams dcbw at redhat.com
Wed Jun 18 08:07:31 PDT 2014


On Wed, 2014-06-18 at 08:03 -0700, pprabhu at chromium.org wrote:
> From: Prathmesh Prabhu <pprabhu at chromium.org>
> 
> diff --git a/src/libmbim-glib/mbim-device.c b/src/libmbim-glib/mbim-device.c
> index 6f965e9..9464042 100644
> --- a/src/libmbim-glib/mbim-device.c
> +++ b/src/libmbim-glib/mbim-device.c
> @@ -417,12 +417,13 @@ static void
>  process_message (MbimDevice  *self,
>                   const MbimMessage *message)
>  {
> +    gboolean is_partial_fragment;
> +
> +    is_partial_fragment = (_mbim_message_is_fragment (message) &&
> +                           _mbim_message_fragment_get_total (message) > 1);
> +
>      if (mbim_utils_get_traces_enabled ()) {
>          gchar *printable;
> -        gboolean is_partial_fragment;
> -
> -        is_partial_fragment = (_mbim_message_is_fragment (message) &&
> -                               _mbim_message_fragment_get_total (message) > 1);
>  
>          printable = __mbim_utils_str_hex (((GByteArray *)message)->data,
>                                            ((GByteArray *)message)->len,
> @@ -468,8 +469,18 @@ process_message (MbimDevice  *self,
>              /* Grab transaction */
>              tr = device_match_transaction (self, TRANSACTION_TYPE_HOST, message);
>              if (!tr) {
> +                gchar *printable;
> +
>                  g_debug ("[%s] No transaction matched in received message",
>                           self->priv->path_display);
> +                /* Attempt to print a user friendly dump of the packet anyway */
> +                printable = mbim_message_get_printable (message, ">>>>>> ", is_partial_fragment);
> +                if (printable) {
> +                    g_debug ("[%s] Received unexpected message (translated)...\n%s",
> +                             self->priv->path_display,
> +                             printable);
> +                    g_free (printable);
> +                }
>                  return;
>              }

Looks good to me.

Dan



More information about the libmbim-devel mailing list