diff options
Diffstat (limited to 'src/core/service.c')
| -rw-r--r-- | src/core/service.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/core/service.c b/src/core/service.c index 20934a7..dda6311 100644 --- a/src/core/service.c +++ b/src/core/service.c @@ -918,11 +918,8 @@ hybbx_result_t hybbx_service_start_transport(hybbx_service_t *service, return HYBBX_ERR_BUSY; } - if (active->plugin->start == NULL) { - return HYBBX_ERR_UNSUPPORTED; - } - - { + /* Feature plugins (e.g. entertain) may have init/tick/on_command only. */ + if (active->plugin->start != NULL) { hybbx_result_t rc = active->plugin->start(config); if (rc != HYBBX_OK) { return rc; @@ -1040,8 +1037,9 @@ hybbx_result_t hybbx_service_try_plugin_command(hybbx_service_t *service, const hybbx_transport_plugin_t *p = svc->transports[i].plugin; if (p != NULL && p->on_command != NULL) { hybbx_result_t rc = p->on_command(service, session, cmd); - if (rc == HYBBX_OK) { - return HYBBX_OK; + /* NOT_FOUND = not this plugin; any other result = handled. */ + if (rc != HYBBX_ERR_NOT_FOUND) { + return rc; } } } |
