~dbarth/remote-login-service/change-signal-fix

« back to all changes in this revision

Viewing changes to src/uccs-server.c

  • Committer: Tarmac
  • Author(s): Ted Gould
  • Date: 2012-09-14 15:01:36 UTC
  • mfrom: (68.2.4 nm-protections)
  • Revision ID: tarmac-20120914150136-1x8qsyimet7deotg
Protect NM code from systems without NM running. Approved by Albert Astals Cid.

Show diffs side-by-side

added added

removed removed

Lines of Context:
101
101
        self->min_network = NM_STATE_CONNECTED_GLOBAL;
102
102
        self->last_network = NM_STATE_DISCONNECTED;
103
103
        self->nm_client = NULL;
 
104
        self->nm_signal = 0;
104
105
 
105
106
        /* Start as unavailable */
106
107
        self->parent.state = SERVER_STATE_UNAVAILABLE;
107
108
 
108
109
        if (global_client == NULL) {
109
110
                global_client = nm_client_new();
110
 
                g_object_add_weak_pointer(G_OBJECT(global_client), (gpointer *)&global_client);
111
111
 
112
 
                self->nm_client = global_client;
 
112
                if (global_client != NULL) {
 
113
                        g_object_add_weak_pointer(G_OBJECT(global_client), (gpointer *)&global_client);
 
114
                        self->nm_client = global_client;
 
115
                }
113
116
        } else {
114
117
                self->nm_client = g_object_ref(global_client);
115
118
        }
116
 
        self->nm_signal = g_signal_connect(self->nm_client, "notify::" NM_CLIENT_STATE, G_CALLBACK(nm_state_changed), self);
 
119
 
 
120
        if (self->nm_client != NULL) {
 
121
                self->nm_signal = g_signal_connect(self->nm_client, "notify::" NM_CLIENT_STATE, G_CALLBACK(nm_state_changed), self);
 
122
        }
117
123
 
118
124
        self->verify_server = TRUE;
119
125
        self->verified_server = FALSE;
325
331
        g_return_if_fail(IS_UCCS_SERVER(user_data));
326
332
        UccsServer * server = UCCS_SERVER(user_data);
327
333
 
328
 
        server->last_network = nm_client_get_state(server->nm_client);
 
334
        if (server->nm_client == NULL || !nm_client_get_manager_running(server->nm_client)) {
 
335
                server->last_network = NM_STATE_DISCONNECTED;
 
336
        } else {
 
337
                server->last_network = nm_client_get_state(server->nm_client);
 
338
        }
329
339
 
330
340
        if (server->last_network == NM_STATE_DISCONNECTED) {
331
341
                server->verified_server = FALSE;