[PATCH 1/3] libmbim-glib: turn __mbim_utils_str_hex into public method

Aleksander Morgado aleksander at aleksander.es
Thu Jul 27 08:51:59 UTC 2017


On 27/07/17 08:30, Ben Chan wrote:
> __mbim_utils_str_hex is a useful utility method for returning a
> hexadecimal string representation of a sequence of bytes in memory. This
> patch turns it a public method 'mbim_utils_str_hex' provided by
> libmbim-glib, which will be later used by mbimcli.
> ---

I don't think we should be doing that method public; it really is an internal method that we may or may not want keep with the same API in the future, nothing to do with MBIM...

How about, instead of adding it in our API, we create a common.la noinst library that includes this method, and we make libmbim-glib and mbimcli include that library? E.g. under src/common


>  .../libmbim-glib/libmbim-glib-common.sections         |  1 +
>  src/libmbim-glib/mbim-device.c                        | 14 +++++++-------
>  src/libmbim-glib/mbim-utils.c                         | 19 ++++++++++++++++---
>  src/libmbim-glib/mbim-utils.h                         |  7 ++++---
>  src/libmbim-glib/test/test-message-builder.c          |  4 ++--
>  src/libmbim-glib/test/test-message-parser.c           |  4 ++--
>  6 files changed, 32 insertions(+), 17 deletions(-)
> 
> diff --git a/docs/reference/libmbim-glib/libmbim-glib-common.sections b/docs/reference/libmbim-glib/libmbim-glib-common.sections
> index a4c3120..f07926c 100644
> --- a/docs/reference/libmbim-glib/libmbim-glib-common.sections
> +++ b/docs/reference/libmbim-glib/libmbim-glib-common.sections
> @@ -553,6 +553,7 @@ mbim_status_error_get_type
>  <FILE>mbim-utils</FILE>
>  mbim_utils_get_traces_enabled
>  mbim_utils_set_traces_enabled
> +mbim_utils_str_hex
>  </SECTION>
>  
>  <SECTION>
> diff --git a/src/libmbim-glib/mbim-device.c b/src/libmbim-glib/mbim-device.c
> index 612ffe1..15c4910 100644
> --- a/src/libmbim-glib/mbim-device.c
> +++ b/src/libmbim-glib/mbim-device.c
> @@ -495,9 +495,9 @@ process_message (MbimDevice  *self,
>      if (mbim_utils_get_traces_enabled ()) {
>          gchar *printable;
>  
> -        printable = __mbim_utils_str_hex (((GByteArray *)message)->data,
> -                                          ((GByteArray *)message)->len,
> -                                          ':');
> +        printable = mbim_utils_str_hex (((GByteArray *)message)->data,
> +                                        ((GByteArray *)message)->len,
> +                                        ':');
>          g_debug ("[%s] Received message...%s\n"
>                   ">>>>>> RAW:\n"
>                   ">>>>>>   length = %u\n"
> @@ -1812,7 +1812,7 @@ device_send (MbimDevice   *self,
>      if (mbim_utils_get_traces_enabled ()) {
>          gchar *printable;
>  
> -        printable = __mbim_utils_str_hex (raw_message, raw_message_len, ':');
> +        printable = mbim_utils_str_hex (raw_message, raw_message_len, ':');
>          g_debug ("[%s] Sent message...\n"
>                   "<<<<<< RAW:\n"
>                   "<<<<<<   length = %u\n"
> @@ -1847,9 +1847,9 @@ device_send (MbimDevice   *self,
>              gchar *printable_fh;
>              gchar *printable_d;
>  
> -            printable_h  = __mbim_utils_str_hex (&fragments[i].header, sizeof (fragments[i].header), ':');
> -            printable_fh = __mbim_utils_str_hex (&fragments[i].fragment_header, sizeof (fragments[i].fragment_header), ':');
> -            printable_d  = __mbim_utils_str_hex (fragments[i].data, fragments[i].data_length, ':');
> +            printable_h  = mbim_utils_str_hex (&fragments[i].header, sizeof (fragments[i].header), ':');
> +            printable_fh = mbim_utils_str_hex (&fragments[i].fragment_header, sizeof (fragments[i].fragment_header), ':');
> +            printable_d  = mbim_utils_str_hex (fragments[i].data, fragments[i].data_length, ':');
>              g_debug ("[%s] Sent fragment (%u)...\n"
>                       "<<<<<< RAW:\n"
>                       "<<<<<<   length = %u\n"
> diff --git a/src/libmbim-glib/mbim-utils.c b/src/libmbim-glib/mbim-utils.c
> index a7541ae..b971991 100644
> --- a/src/libmbim-glib/mbim-utils.c
> +++ b/src/libmbim-glib/mbim-utils.c
> @@ -40,10 +40,23 @@
>  
>  /*****************************************************************************/
>  
> +/**
> + * mbim_utils_str_hex:
> + * @mem: start of the memory location to read bytes from.
> + * @size: number of bytes to read from memory.
> + * @ delimiter: character to delimit hexadecimal octets in the result string.
> + *
> + * Creates a string of hexadecimal octets, delimited by @delimiter, for each of
> + * the @size byte from the memory location starting at @mem. If @size is 0, it
> + * returns #NULL.
> + *
> + * Returns: (transfer full): a string of delimited hexadecimal octets, or #NULL
> + * if @size is 0. The return value should be freed with g_free().
> + */
>  gchar *
> -__mbim_utils_str_hex (gconstpointer mem,
> -                      gsize size,
> -                      gchar delimiter)
> +mbim_utils_str_hex (gconstpointer mem,
> +                    gsize size,
> +                    gchar delimiter)
>  {
>      const guint8 *data = mem;
>      gsize i;
> diff --git a/src/libmbim-glib/mbim-utils.h b/src/libmbim-glib/mbim-utils.h
> index ee5632f..590d704 100644
> --- a/src/libmbim-glib/mbim-utils.h
> +++ b/src/libmbim-glib/mbim-utils.h
> @@ -36,12 +36,13 @@ G_BEGIN_DECLS
>  gboolean mbim_utils_get_traces_enabled (void);
>  void     mbim_utils_set_traces_enabled (gboolean enabled);
>  
> +gchar *mbim_utils_str_hex (gconstpointer mem,
> +                           gsize         size,
> +                           gchar         delimiter);
> +
>  /* Other private methods */
>  
>  #if defined (LIBMBIM_GLIB_COMPILATION)
> -gchar *__mbim_utils_str_hex (gconstpointer mem,
> -                             gsize         size,
> -                             gchar         delimiter);
>  gboolean __mbim_user_allowed (uid_t uid,
>                                GError **error);
>  #endif
> diff --git a/src/libmbim-glib/test/test-message-builder.c b/src/libmbim-glib/test/test-message-builder.c
> index 18fd29d..d522929 100644
> --- a/src/libmbim-glib/test/test-message-builder.c
> +++ b/src/libmbim-glib/test/test-message-builder.c
> @@ -38,8 +38,8 @@ test_message_trace (const guint8 *computed,
>      gchar *message_str;
>      gchar *expected_str;
>  
> -    message_str = __mbim_utils_str_hex (computed, computed_size, ':');
> -    expected_str = __mbim_utils_str_hex (expected, expected_size, ':');
> +    message_str = mbim_utils_str_hex (computed, computed_size, ':');
> +    expected_str = mbim_utils_str_hex (expected, expected_size, ':');
>  
>      /* Dump all message contents */
>      g_print ("\n"
> diff --git a/src/libmbim-glib/test/test-message-parser.c b/src/libmbim-glib/test/test-message-parser.c
> index a71c8c5..d364818 100644
> --- a/src/libmbim-glib/test/test-message-parser.c
> +++ b/src/libmbim-glib/test/test-message-parser.c
> @@ -36,8 +36,8 @@ test_message_trace (const guint8 *computed,
>      gchar *message_str;
>      gchar *expected_str;
>  
> -    message_str = __mbim_utils_str_hex (computed, computed_size, ':');
> -    expected_str = __mbim_utils_str_hex (expected, expected_size, ':');
> +    message_str = mbim_utils_str_hex (computed, computed_size, ':');
> +    expected_str = mbim_utils_str_hex (expected, expected_size, ':');
>  
>      /* Dump all message contents */
>      g_print ("\n"
> 


-- 
Aleksander
https://aleksander.es


More information about the libmbim-devel mailing list