Index: src/service.c |
diff --git a/src/service.c b/src/service.c |
index ba2df0525453dbf6bc42449194839ab480965a92..f9b5e42b147c379e5765bb005d2c85d4841f1f37 100644 |
--- a/src/service.c |
+++ b/src/service.c |
@@ -1673,28 +1673,32 @@ void __connman_service_set_registration_info( |
enum connman_network_cellular_technology network_technology, |
enum connman_network_cellular_roaming_state roaming_state) |
{ |
- enum connman_network_cellular_technology otech = |
- service->cellular.network_technology; |
- enum connman_network_cellular_roaming_state oroam = |
- service->cellular.roaming_state; |
- const char *tech_str = network_technology2string(network_technology); |
- const char *roam_str = roaming_state2string(roaming_state); |
- |
- service->cellular.network_technology = network_technology; |
- service->cellular.roaming_state = roaming_state; |
- if (otech != network_technology && tech_str != NULL) { |
- (void) connman_dbus_send_property_changed_variant( |
- service->path, |
- CONNMAN_SERVICE_INTERFACE, |
- "Cellular.NetworkTechnology", |
- DBUS_TYPE_STRING, &tech_str); |
+ const char *tech_str; |
+ const char *roam_str; |
+ |
+ if (network_technology != CONNMAN_NETWORK_TECHNOLOGY_UNKNOWN) { |
Jason Glasgow
2011/01/13 07:11:08
When is network technology ever C_N_TECH..._UNKNOW
Eric Shienbrood
2011/01/13 07:23:33
Just initially. It really means "not yet known". I
|
+ tech_str = network_technology2string(network_technology); |
+ if (service->cellular.network_technology != network_technology && |
+ tech_str != NULL) { |
+ (void) connman_dbus_send_property_changed_variant( |
+ service->path, |
+ CONNMAN_SERVICE_INTERFACE, |
+ "Cellular.NetworkTechnology", |
+ DBUS_TYPE_STRING, &tech_str); |
+ } |
+ service->cellular.network_technology = network_technology; |
} |
- if (oroam != roaming_state && roam_str != NULL) { |
- (void) connman_dbus_send_property_changed_variant( |
- service->path, |
- CONNMAN_SERVICE_INTERFACE, |
- "Cellular.RoamingState", |
- DBUS_TYPE_STRING, &roam_str); |
+ if (roaming_state != CONNMAN_NETWORK_ROAMING_STATE_UNKNOWN) { |
+ roam_str = roaming_state2string(roaming_state); |
+ if (service->cellular.roaming_state != roaming_state && |
+ roam_str != NULL) { |
+ (void) connman_dbus_send_property_changed_variant( |
+ service->path, |
+ CONNMAN_SERVICE_INTERFACE, |
+ "Cellular.RoamingState", |
+ DBUS_TYPE_STRING, &roam_str); |
+ } |
+ service->cellular.roaming_state = roaming_state; |
} |
} |