diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/exchange/taler-exchange-httpd_extensions.c | 11 | ||||
| -rw-r--r-- | src/exchange/taler-exchange-httpd_management_extensions.c | 10 | 
2 files changed, 10 insertions, 11 deletions
diff --git a/src/exchange/taler-exchange-httpd_extensions.c b/src/exchange/taler-exchange-httpd_extensions.c index c9d47052..5a613738 100644 --- a/src/exchange/taler-exchange-httpd_extensions.c +++ b/src/exchange/taler-exchange-httpd_extensions.c @@ -38,8 +38,8 @@ static struct GNUNET_DB_EventHandler *extensions_eh;   * the extensions data in the database.   *   * @param cls NULL - * @param extra unused - * @param extra_size number of bytes in @a extra unused + * @param extra type of the extension + * @param extra_size number of bytes in @a extra   */  static void  extension_update_event_cb (void *cls, @@ -47,13 +47,14 @@ extension_update_event_cb (void *cls,                             size_t extra_size)  {    (void) cls; +  uint32_t nbo_type;    enum TALER_Extension_Type type;    const struct TALER_Extension *extension;    GNUNET_log (GNUNET_ERROR_TYPE_INFO,                "Received extensions update event\n"); -  if (sizeof(enum TALER_Extension_Type) != extra_size) +  if (sizeof(nbo_type) != extra_size)    {      GNUNET_break (0);      GNUNET_log (GNUNET_ERROR_TYPE_ERROR, @@ -61,8 +62,10 @@ extension_update_event_cb (void *cls,      return;    } -  type = *(enum TALER_Extension_Type *) extra; +  GNUNET_assert (NULL != extra); +  nbo_type = *(uint32_t *) extra; +  type = (enum TALER_Extension_Type) ntohl (nbo_type);    /* Get the corresponding extension */    extension = TALER_extensions_get_by_type (type); diff --git a/src/exchange/taler-exchange-httpd_management_extensions.c b/src/exchange/taler-exchange-httpd_management_extensions.c index ce151e2e..83a1dfc9 100644 --- a/src/exchange/taler-exchange-httpd_management_extensions.c +++ b/src/exchange/taler-exchange-httpd_management_extensions.c @@ -121,20 +121,16 @@ set_extensions (void *cls,      /* Success, trigger event */      { -      enum TALER_Extension_Type *type = &sec->extensions[i].type; +      uint32_t nbo_type = htonl (sec->extensions[i].type);        struct GNUNET_DB_EventHeaderP ev = {          .size = htons (sizeof (ev)),          .type = htons (TALER_DBEVENT_EXCHANGE_EXTENSIONS_UPDATED)        }; -      // FIXME-Oec: bug: convert type to NBO first! -      // FIXME-Oec: bug: sizeof enum is ill-defined... -      // FIXME-Oec: bug: don't see /keys listening to the event -      // FIXME-Oec: why is   TEH_keys_update_states (); not enough?        TEH_plugin->event_notify (TEH_plugin->cls,                                  &ev, -                                type, -                                sizeof(*type)); +                                &nbo_type, +                                sizeof(nbo_type));      }    }  | 
