#include "geotrace.h"
char *traceroute_path,*prefs_path,*maps_dir_path,*start_map;
int timeout,maxttl,resolve,first_time=0,line_width;
FILE *prefs_file;
gdouble line_color[3];
void get_prefs_from_file() {
char *option,*value;
float color[3];
traceroute_path = malloc (100);
prefs_path = malloc (100);
maps_dir_path = malloc (100);
start_map = malloc (30);
value = malloc (100);
option = malloc (30);
sprintf (prefs_path,"%s",GEO_PREFS_FILE);
strcpy (traceroute_path,TRACE_PATH_DEF);
strcpy (maps_dir_path,MAPS_DIR_DEF);
strcpy (start_map,START_MAP_DEF);
maxttl = MAXTTL_DEF;
timeout = TIMEOUT_DEF;
resolve = RESOLVE_DEF;
line_width = LINE_WIDTH_DEF;
line_color[0] = LINE_COLOR_RED_DEF;
line_color[1] = LINE_COLOR_GREEN_DEF;
line_color[2] = LINE_COLOR_BLUE_DEF;
// check if file exists
if ((prefs_file = fopen (prefs_path,"r")) == NULL) {
first_time = 1;
save_prefs_to_file();
} else {
while (!feof(prefs_file)) {
fscanf (prefs_file,"%s %s\n",option,value);
if (strcmp(option,"traceroute_path") == 0) {
strcpy (traceroute_path,value);
} else if (strcmp(option,"maxttl") == 0) {
maxttl = atoi(value);
} else if (strcmp(option,"timeout") == 0) {
timeout = atoi(value);
} else if (strcmp(option,"resolve") == 0) {
resolve = atoi(value);
} else if (strcmp(option,"maps_dir") == 0) {
strcpy (maps_dir_path,value);
} else if (strcmp(option,"start_map") == 0) {
strcpy (start_map,value);
} else if (strcmp(option,"line_color") == 0) {
sscanf (value,"%f,%f,%f",&color[0],&color[1],&color[2]);
line_color[0] = (double)color[0];
line_color[1] = (double)color[1];
line_color[2] = (double)color[2];
} else if (strcmp(option,"line_width") == 0) {
line_width = atoi(value);
}
}
fclose (prefs_file);
}
my_gdk_color = g_malloc(sizeof(GdkColor));
tmp_gdk_color = g_malloc(sizeof(GdkColor));
my_gdk_color->red = (guint16)(line_color[0]*65535.0);
my_gdk_color->green = (guint16)(line_color[1]*65535.0);
my_gdk_color->blue = (guint16)(line_color[2]*65535.0);
}
void save_prefs_to_file() {
if ((prefs_file = fopen (prefs_path,"w")) == NULL) {
fprintf (stdout,"Can't create prefs file\n");
} else {
fprintf (prefs_file,"traceroute_path %s\n",traceroute_path);
fprintf (prefs_file,"maxttl %d\n",maxttl);
fprintf (prefs_file,"timeout %d\n",timeout);
fprintf (prefs_file,"resolve %d\n",resolve);
fprintf (prefs_file,"maps_dir %s\n",maps_dir_path);
fprintf (prefs_file,"start_map %s\n",start_map);
fprintf (prefs_file,"line_color %f,%f,%f\n",line_color[0],line_color[1],line_color[2]);
fprintf (prefs_file,"line_width %d\n",line_width);
fclose (prefs_file);
}
}
syntax highlighted by Code2HTML, v. 0.9.1