Skip to content
Snippets Groups Projects
  1. Jul 01, 2019
  2. Apr 23, 2019
  3. Apr 16, 2019
  4. Oct 06, 2018
  5. Sep 10, 2018
  6. Jul 26, 2018
  7. Jul 25, 2018
  8. Jan 17, 2018
    • Dirk Feytons's avatar
      ubus/lua: pass notification name to callback · 5bae22eb
      Dirk Feytons authored
      
      The callback function registered to be invoked when subscribing to a
      notification was only passed the notification data (if any) but not the name
      of the notification.
      
      This name is now passed as second argument to remain backwards compatible.
      The example subscriber.lua has also be updated.
      
      Signed-off-by: default avatarDirk Feytons <dirk.feytons@gmail.com>
      5bae22eb
    • John Crispin's avatar
      valgrind complained about these · 212ceb1b
      John Crispin authored
      
      ==18834== Warning: invalid file descriptor -1 in syscall close()
      ==18834==    at 0x5326D20: __close_nocancel (syscall-template.S:84)
      ==18834==    by 0x5046DC7: ubus_process_obj_msg (libubus-obj.c:143)
      ==18834==    by 0x5045E98: ubus_process_msg (libubus.c:106)
      ==18834==    by 0x50468D0: ubus_handle_data (libubus-io.c:314)
      ==18834==    by 0x4E3D125: uloop_run_events (uloop.c:198)
      ==18834==    by 0x4E3D125: uloop_run_timeout (uloop.c:555)
      ==18834==    by 0x109BEF: uloop_run (uloop.h:111)
      ==18834==    by 0x109BEF: main (main.c:25)
      
      Signed-off-by: default avatarJohn Crispin <john@phrozen.org>
      212ceb1b
    • John Crispin's avatar
      fix invalid close() call · d57907c2
      John Crispin authored
      
      valgrind complained about this one
      
      ==18632== Warning: invalid file descriptor -1 in syscall close()
      ==18632==    at 0x5326D20: __close_nocancel (syscall-template.S:84)
      ==18632==    by 0x5046C02: ubus_process_invoke (libubus-obj.c:98)
      ==18632==    by 0x5046DC3: ubus_process_obj_msg (libubus-obj.c:142)
      ==18632==    by 0x5045E98: ubus_process_msg (libubus.c:106)
      ==18632==    by 0x50468D0: ubus_handle_data (libubus-io.c:314)
      ==18632==    by 0x4E3D125: uloop_run_events (uloop.c:198)
      ==18632==    by 0x4E3D125: uloop_run_timeout (uloop.c:555)
      ==18632==    by 0x109BEF: uloop_run (uloop.h:111)
      ==18632==    by 0x109BEF: main (main.c:25)
      
      Signed-off-by: default avatarJohn Crispin <john@phrozen.org>
      d57907c2
  9. Nov 13, 2017
    • Alexandru Ardelean's avatar
      ubusd: move global retmsg per client · 5f87f548
      Alexandru Ardelean authored
      
      Even with the tx_queue-ing issue resolved, what
      seems to happen afterwards, is that all the messages
      seems to get through, but the client still loops
      in the `ubus_complete_request()` waiting for
      `req->status_msg` or for a timeout.
      
      Though, the timeout does not seem to happen, because
      the data is processed in `ubus_poll_data()`, with
      a infinite poll() timeout (ubus_complete_request() is
      called with timeout 0).
      
      It's likely that either the `seq` or `peer` sent from
      ubusd are wrong, and the client cannot get the correct
      ubus request in `ubus_process_req_msg()`.
      I haven't digged too deep into this ; setting the
      `retmsg` object on the client struct seems to have
      resolved any hanging with the `ubus list` command.
      
      Signed-off-by: default avatarAlexandru Ardelean <ardeleanalex@gmail.com>
      Signed-off-by: Felix Fietkau <nbd@nbd.name> [fix placement of retmsg in cl]
      5f87f548
    • Alexandru Ardelean's avatar
      ubusd_monitor: alloc & free the buffer outside of the loop · 27d712d3
      Alexandru Ardelean authored
      
      Should save a few cycles, since the data that's
      being changed is only the seq number.
      And the `ub` is always created as shared.
      
      Signed-off-by: default avatarAlexandru Ardelean <ardeleanalex@gmail.com>
      27d712d3
    • Alexandru Ardelean's avatar
      ubusd: rename goto label from `error` to `out` · be146ad2
      Alexandru Ardelean authored
      
      Semantic has changed a bit.
      
      Signed-off-by: default avatarAlexandru Ardelean <ardeleanalex@gmail.com>
      be146ad2
    • Alexandru Ardelean's avatar
      ubusd: don't free messages in ubus_send_msg() anymore · e02813b2
      Alexandru Ardelean authored
      
      This makes it clear that `ubus_msg_send()` is only
      about sending and queue-ing messages, and has nothing
      to do with free-ing.
      
      It can be a bit misleading/confusing when trying to go
      through the code and make assumptions about whether a
      buffer is free'd in ubus_send_msg(), or is free'd outside.
      
      In `ubusd_proto_receive_message()` the `ubus_msg_free()`
      is now called before the `if (ret == -1)` check.
      That way, all callbacks will have their messages free'd,
      which is what's desired, but confusing, because:
      * ubusd_handle_invoke() called ubus_msg_free() before returning -1
      * ubusd_handle_notify() called ubus_msg_free() before returning -1
      * ubusd_handle_response() called ubus_msg_send(,,free=true) before returning -1
      * ubus_msg_send() would call ubus_msg_send(,,free=false)
      * all other callback callers would `ubus_msg_send(,,free=true)`
        (free the buffers in ubus_msg_send() )
      
      In all other places, where `ubus_msg_send(,,free=true)`
      an explicit `ubus_msg_free()` was added.
      
      Signed-off-by: default avatarAlexandru Ardelean <ardeleanalex@gmail.com>
      e02813b2
    • Bob Ham's avatar
      libubus: Fix deletion from context's object AVL tree when removing object · 6d1ea6c3
      Bob Ham authored
      
      Objects are stored in the ubus context in an AVL tree.  An AVL tree
      node contains a pointer to a key value.  For the ubus context, this
      points to the id member of the object structure.  In
      ubus_remove_object_cb, the id member is set to zero and then after,
      avl_delete is called and fails.  To fix this, we call avl_delete
      before setting the object id to zero.
      
      Signed-off-by: default avatarBob Ham <bob.ham@tomltd.co.uk>
      6d1ea6c3
    • Rosen Penev's avatar
      ubus: Remove unnecessary memset calls. · 9c13096b
      Rosen Penev authored
      
      Replace malloc+memset with calloc.
      
      Signed-off-by: default avatarRosen Penev <rosenp@gmail.com>
      Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
      9c13096b
  10. Nov 06, 2017
  11. Feb 20, 2017
  12. Feb 15, 2017
  13. Feb 14, 2017
  14. Feb 07, 2017
  15. Feb 03, 2017
  16. Jan 22, 2017
  17. Jan 20, 2017
  18. Jan 04, 2017
  19. Dec 24, 2016
  20. Nov 21, 2016
  21. Nov 20, 2016
  22. Oct 12, 2016
    • Alexandru Ardelean's avatar
      cli: register event handler first, then do lookup · 312448a5
      Alexandru Ardelean authored
      
      We seem to be getting timeout for ubus wait_for calls
      every now and then.
      
      And it's not reliably reproducible.
      Looking at the code the only thing that would look like
      a potetntial reason, is that between the ubus_lookup() and
      ubus_register_event_handler() calls, there's a very narrow
      window where the event would get sent out and we would not
      get it, thus having to timeout.
      
      It doesn't look like registering the event handler first
      is a big problem for the whole wait_check_object() logic.
      
      Signed-off-by: default avatarAlexandru Ardelean <ardeleanalex@gmail.com>
      312448a5
  23. Sep 05, 2016
Loading