extern void slave_dead_handler(struct slave_node *slave);
extern const int const slave_is_secured(const struct slave_node *slave);
+extern const int const slave_is_app(const struct slave_node *slave);
extern const char * const slave_name(const struct slave_node *slave);
extern const pid_t const slave_pid(const struct slave_node *slave);
extern const char * const slave_abi(const struct slave_node *slave);
return 1;
}
+ DbgPrint("Faulted: %d (%d / %lf)\n", info->fault_count, WIDGET_CONF_FAULT_DETECT_COUNT, WIDGET_CONF_FAULT_DETECT_IN_TIME);
return 0;
}
struct fault_info *fault;
if (!package_is_faulted(info, timestamp)) {
+ DbgPrint("Faulted but excused\n");
return WIDGET_ERROR_CANCELED;
}
return 0;
}
+/**
+ * Find a standalone provider
+ */
HAPI const char *package_find_by_secured_slave(struct slave_node *slave)
{
Eina_List *l;
struct pkg_info *info;
- if (!slave_is_secured(slave)) {
+ if (!slave_is_secured(slave) && !slave_is_app(slave)) {
return NULL;
}
return 0;
}
- if (!slave->secured && !(WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL)) {
+ if (!slave_is_app(slave) && !slave->secured && !(WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL)) {
return 0;
}
{
double delay;
- if (!(WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL) && (!slave->secured || !slave->ttl_timer)) {
+ if (!(WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL) && ((!slave_is_app(slave) && !slave->secured) || !slave->ttl_timer)) {
return WIDGET_ERROR_INVALID_PARAMETER;
}
HAPI int slave_freeze_ttl(struct slave_node *slave)
{
- if (!(WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL) && (!slave->secured || !slave->ttl_timer)) {
+ if (!(WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL) && ((!slave_is_app(slave) && !slave->secured) || !slave->ttl_timer)) {
return WIDGET_ERROR_INVALID_PARAMETER;
}
{
double delay;
- if (!(WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL) && (!slave->secured || !slave->ttl_timer)) {
+ if (!(WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL) && ((!slave_is_app(slave) && !slave->secured) || !slave->ttl_timer)) {
return WIDGET_ERROR_INVALID_PARAMETER;
}
* 1. If the slave is INHOUSE(data-provider-slave) and LIMIT_TO_TTL is true, and SLAVE_TTL is greater than 0.0f
* 2. Service provider is "secured" and SLAVE_TTL is greater than 0.0f
*/
- if (((WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL) || slave->secured == 1) && WIDGET_CONF_SLAVE_TTL > 0.0f) {
+ if (((WIDGET_IS_INHOUSE(slave_abi(slave)) && WIDGET_CONF_SLAVE_LIMIT_TO_TTL) || slave->secured == 1 || slave_is_app(slave)) && WIDGET_CONF_SLAVE_TTL > 0.0f) {
DbgPrint("Slave deactivation timer is added (%s - %lf)\n", slave_name(slave), WIDGET_CONF_SLAVE_TTL);
slave->ttl_timer = ecore_timer_add(WIDGET_CONF_SLAVE_TTL, slave_ttl_cb, slave);
if (!slave->ttl_timer) {
return slave->secured;
}
+HAPI const int const slave_is_app(const struct slave_node *slave)
+{
+ return !strcasecmp(slave_abi(slave), WIDGET_CONF_APP_ABI);
+}
+
HAPI const char * const slave_name(const struct slave_node *slave)
{
return slave->name;