Diff of /trunk/src/settings.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 169 by harbaum, Tue Apr 28 09:10:17 2009 UTC revision 178 by harbaum, Tue Jun 16 15:27:37 2009 UTC
# Line 163  settings_t *settings_load(void) { Line 163  settings_t *settings_load(void) {
163        g_free(key);        g_free(key);
164        st++;        st++;
165      }      }
   }  
   
   /* restore wms server list */  
   char *key = g_strdup_printf("/apps/" PACKAGE "/wms/count");  
   GConfValue *value = gconf_client_get(client, key, NULL);  
   if(value) {  
     gconf_value_free(value);  
   
     int i, count = gconf_client_get_int(client, key, NULL);  
     g_free(key);  
166    
167      wms_server_t **cur = &settings->wms_server;      /* restore wms server list */
168      for(i=0;i<count;i++) {      char *key = g_strdup_printf("/apps/" PACKAGE "/wms/count");
169        key = g_strdup_printf("/apps/" PACKAGE "/wms/name%d", i);      GConfValue *value = gconf_client_get(client, key, NULL);
170        char *name = gconf_client_get_string(client, key, NULL);      if(value) {
171        g_free(key);        gconf_value_free(value);
172        key = g_strdup_printf("/apps/" PACKAGE "/wms/server%d", i);  
173        char *server = gconf_client_get_string(client, key, NULL);        int i, count = gconf_client_get_int(client, key, NULL);
174        g_free(key);        g_free(key);
175        key = g_strdup_printf("/apps/" PACKAGE "/wms/path%d", i);  
176        char *path = gconf_client_get_string(client, key, NULL);        wms_server_t **cur = &settings->wms_server;
177          for(i=0;i<count;i++) {
178            key = g_strdup_printf("/apps/" PACKAGE "/wms/name%d", i);
179            char *name = gconf_client_get_string(client, key, NULL);
180            g_free(key);
181            key = g_strdup_printf("/apps/" PACKAGE "/wms/server%d", i);
182            char *server = gconf_client_get_string(client, key, NULL);
183            g_free(key);
184            key = g_strdup_printf("/apps/" PACKAGE "/wms/path%d", i);
185            char *path = gconf_client_get_string(client, key, NULL);
186            g_free(key);
187    
188            /* apply valid entry to list */
189            if(name && server && path) {
190              *cur = g_new0(wms_server_t, 1);
191              (*cur)->name = name;
192              (*cur)->server = server;
193              (*cur)->path = path;
194              cur = &(*cur)->next;
195            } else {
196              if(name) g_free(name);
197              if(server) g_free(server);
198              if(path) g_free(path);
199            }
200          }
201        } else {
202        g_free(key);        g_free(key);
203    
204        /* apply valid entry to list */        /* add default server(s) */
205        if(name && server && path) {        printf("No WMS servers configured, adding default\n");
206          *cur = g_new0(wms_server_t, 1);        settings->wms_server = wms_server_get_default();
207          (*cur)->name = name;      }
208          (*cur)->server = server;  
209          (*cur)->path = path;      /* ------------- get proxy settings -------------------- */
210          cur = &(*cur)->next;      if(gconf_client_get_bool(client, PROXY_KEY "use_http_proxy", NULL)) {
211        } else {        proxy_t *proxy = settings->proxy = g_new0(proxy_t, 1);
212          if(name) g_free(name);  
213          if(server) g_free(server);        /* get basic settings */
214          if(path) g_free(path);        proxy->host = gconf_client_get_string(client, PROXY_KEY "host", NULL);
215          proxy->port = gconf_client_get_int(client, PROXY_KEY "port", NULL);
216          proxy->ignore_hosts =
217            gconf_client_get_string(client, PROXY_KEY "ignore_hosts", NULL);
218    
219          /* check for authentication */
220          proxy->use_authentication =
221            gconf_client_get_bool(client, PROXY_KEY "use_authentication", NULL);
222    
223          if(proxy->use_authentication) {
224            proxy->authentication_user =
225              gconf_client_get_string(client, PROXY_KEY "authentication_user", NULL);
226            proxy->authentication_password =
227              gconf_client_get_string(client, PROXY_KEY "authentication_password",
228                                      NULL);
229        }        }
230      }      }
   } else {  
     g_free(key);  
   
     /* add default server(s) */  
     printf("No WMS servers configured, adding default\n");  
     settings->wms_server = wms_server_get_default();  
   }  
   
   /* ------------- get proxy settings -------------------- */  
   if(gconf_client_get_bool(client, PROXY_KEY "use_http_proxy", NULL)) {  
     proxy_t *proxy = settings->proxy = g_new0(proxy_t, 1);  
   
     /* get basic settings */  
     proxy->host = gconf_client_get_string(client, PROXY_KEY "host", NULL);  
     proxy->port = gconf_client_get_int(client, PROXY_KEY "port", NULL);  
     proxy->ignore_hosts =  
       gconf_client_get_string(client, PROXY_KEY "ignore_hosts", NULL);  
   
     /* check for authentication */  
     proxy->use_authentication =  
       gconf_client_get_bool(client, PROXY_KEY "use_authentication", NULL);  
231    
232      if(proxy->use_authentication) {  #if 1 // def USE_HILDON
233        proxy->authentication_user =      /* demo setup for maemo/hildon */
234          gconf_client_get_string(client, PROXY_KEY "authentication_user", NULL);      {
235        proxy->authentication_password =        char *key = g_strdup_printf("/apps/" PACKAGE "/base_path");
236          gconf_client_get_string(client, PROXY_KEY "authentication_password",        GConfValue *value = gconf_client_get(client, key, NULL);
237                                  NULL);        if(value)
238            gconf_value_free(value);
239          else {
240            printf("base_path not set, assuming first time boot\n");
241    
242            /* check for presence of demo project */
243    
244          }
245      }      }
246    #endif
247    
248    }    }
249    
250    
251    return settings;    return settings;
252  }  }
253    

Legend:
Removed from v.169  
changed lines
  Added in v.178