Index: log.c
===================================================================
--- log.c	(revision 215)
+++ log.c	(revision 216)
@@ -10,9 +10,7 @@
 #include "headers/log.h"
 #endif 
 
-#ifndef RAYDIUM_NETWORK_ONLY
 void raydium_console_line_add(char *format, ...);
-#endif
 
 // need to be secured
 void raydium_log(char *format, ...)
@@ -27,7 +25,5 @@
 
 printf("Raydium: %s\n",str);
 if(raydium_log_file) fprintf(raydium_log_file,"%s\n",str);
-#ifndef RAYDIUM_NETWORK_ONLY
 raydium_console_line_add(str);
-#endif
 }
   {
+    raydium_parser_trim(line);
+    if(!raydium_parser_cut(line,part1,part2,RAYDIUM_DB_SEPARATOR))
+	{
+	raydium_log("db: ERROR: invalid: '%s'",line);
+	continue;
+	}
+
+    if(strcmp(part1,key))
+	continue;
+
+    found=1;
+    strcpy(value,part2);
+    }
+
+if(fp)
+    fclose(fp);
+
+if(!found && def)
+    {
+    strcpy(value,def);
+    found=1;
+    }
+
+return found;
+}
+
+
+signed char raydium_parser_db_set(char *key, char *value)
+{
+FILE *fp,*out;
+char line[(RAYDIUM_MAX_NAME_LEN*2)+1];
+char part1[RAYDIUM_MAX_NAME_LEN];
+char part2[RAYDIUM_MAX_NAME_LEN];
+signed char found=0;
+
+out=fopen(RAYDIUM_DB_TEMP,"wt");
+
+if(!out)
+    {
+    raydium_log("db: cannot create new database !");
+    return 0;
+    }
+
+
+fp=fopen(RAYDIUM_DB_FILENAME,"rt");
+
+
+while( fp && (fgets(line,RAYDIUM_MAX_NAME_LEN,fp)) )
+    {
+    raydium_parser_trim(line);
+
+    if(!raydium_parser_cut(line,part1,part2,RAYDIUM_DB_SEPARATOR))
+	{
+	raydium_log("db: ERROR: invalid: '%s'",line);
+	continue;
+	}
+
+    if(!strcmp(part1,key))
+	{
+	fprintf(out,"%s;%s\n",key,value);
+	found=1;
+	continue;
+	}
+
+    fprintf(out,"%s\n",line);
+    }
+
+if(!found)
+    fprintf(out,"%s;%s\n",key,value);
+
+if(fp)
+    fclose(fp);
+fclose(out);
+
+if(rename(RAYDIUM_DB_TEMP,RAYDIUM_DB_FILENAME)==-1)
+    {
+    raydium_log("db: cannot rename new database !");
+    perror("rename");
+    return 0;
+    }
+
+return 1;
+}