enum connman_service_state {
CONNMAN_SERVICE_STATE_UNKNOWN = 0,
CONNMAN_SERVICE_STATE_IDLE = 1,
- CONNMAN_SERVICE_STATE_ASSOCIATION = 2,
- CONNMAN_SERVICE_STATE_CONFIGURATION = 3,
- CONNMAN_SERVICE_STATE_READY = 4,
- CONNMAN_SERVICE_STATE_DISCONNECT = 5,
- CONNMAN_SERVICE_STATE_FAILURE = 6,
+ CONNMAN_SERVICE_STATE_CARRIER = 2,
+ CONNMAN_SERVICE_STATE_ASSOCIATION = 3,
+ CONNMAN_SERVICE_STATE_CONFIGURATION = 4,
+ CONNMAN_SERVICE_STATE_READY = 5,
+ CONNMAN_SERVICE_STATE_DISCONNECT = 6,
+ CONNMAN_SERVICE_STATE_FAILURE = 7,
};
struct connman_service;
struct connman_service *__connman_service_lookup_from_network(struct connman_network *network);
struct connman_service *__connman_service_create_from_network(struct connman_network *network);
+int __connman_service_set_carrier(struct connman_service *service,
+ connman_bool_t carrier);
+
#include <connman/notifier.h>
int __connman_notifier_init(void);
if (service == NULL)
return -EINVAL;
- return connman_service_set_favorite(service, carrier);
+ return __connman_service_set_carrier(service, carrier);
}
int __connman_profile_add_network(struct connman_network *network)
break;
case CONNMAN_SERVICE_STATE_IDLE:
return "idle";
+ case CONNMAN_SERVICE_STATE_CARRIER:
+ return "carrier";
case CONNMAN_SERVICE_STATE_ASSOCIATION:
return "association";
case CONNMAN_SERVICE_STATE_CONFIGURATION:
return 0;
}
+int __connman_service_set_carrier(struct connman_service *service,
+ connman_bool_t carrier)
+{
+ switch (service->type) {
+ case CONNMAN_SERVICE_TYPE_UNKNOWN:
+ case CONNMAN_SERVICE_TYPE_WIFI:
+ case CONNMAN_SERVICE_TYPE_WIMAX:
+ return -EINVAL;
+ case CONNMAN_SERVICE_TYPE_ETHERNET:
+ break;
+ }
+
+ if (carrier == TRUE)
+ service->state = CONNMAN_SERVICE_STATE_CARRIER;
+ else
+ service->state = CONNMAN_SERVICE_STATE_IDLE;
+
+ return connman_service_set_favorite(service, carrier);
+}
+
/**
* connman_service_lookup:
* @identifier: service identifier