|
|
@@ -1,111 +1,44 @@
|
|
|
-#include "paras.h"
|
|
|
#include <stdlib.h>
|
|
|
#include <stdio.h>
|
|
|
#include "sys.h"
|
|
|
-
|
|
|
-
|
|
|
-//#define LOG log_print
|
|
|
-#define LOG printf
|
|
|
+#include "file.h"
|
|
|
+#include "paras.h"
|
|
|
|
|
|
|
|
|
all_paras_t allParas;
|
|
|
-////////////////////////////////////////////////////////////
|
|
|
-static int file_length(char* path)
|
|
|
-{
|
|
|
- int r;
|
|
|
- struct stat st;
|
|
|
-
|
|
|
- r = stat(path, &st);
|
|
|
- if (r) {
|
|
|
- return -1;
|
|
|
- }
|
|
|
-
|
|
|
- return st.st_size;
|
|
|
-}
|
|
|
-
|
|
|
-static int file_save(char *path, void *buf, int len)
|
|
|
+static int do_check(void *para)
|
|
|
{
|
|
|
- int r;
|
|
|
- FILE *fp;
|
|
|
-
|
|
|
- fp = fopen(path, "wb");
|
|
|
- if(!fp) {
|
|
|
- LOG("file_save, fopen %s failed\n", path);
|
|
|
- return -1;
|
|
|
- }
|
|
|
- r = fwrite(buf, 1, len, fp);
|
|
|
- if(r!=len) {
|
|
|
- LOG("file_save %s failed, %d, %d\n", path, r, len);
|
|
|
- r = -1;
|
|
|
- }
|
|
|
- else {
|
|
|
- r = 0;
|
|
|
- }
|
|
|
- fclose(fp);
|
|
|
-
|
|
|
- return r;
|
|
|
-}
|
|
|
-static int file_load(char* path, void* buf, int len)
|
|
|
-{
|
|
|
- int r;
|
|
|
- FILE* fp;
|
|
|
-
|
|
|
- fp = fopen(path, "rb");
|
|
|
- if (!fp) {
|
|
|
- LOG("file_load, fopen %s failed\n", path);
|
|
|
- return -1;
|
|
|
- }
|
|
|
- r = fread(buf, 1, len, fp);
|
|
|
- if (r != len) {
|
|
|
- LOG("file_load %s failed, %d, %d\n", path, r, len);
|
|
|
- r = -1;
|
|
|
- }
|
|
|
- else {
|
|
|
- r = 0;
|
|
|
- }
|
|
|
- fclose(fp);
|
|
|
-
|
|
|
- return r;
|
|
|
-}
|
|
|
-static int file_remove(char *path)
|
|
|
-{
|
|
|
- return remove(path);
|
|
|
-}
|
|
|
-
|
|
|
-static int do_check(all_paras_t *paras)
|
|
|
-{
|
|
|
- int i,j;
|
|
|
-
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
-///////////////////////////////////////////////////////
|
|
|
+////////////////////////////////////////////////////////////
|
|
|
int paras_load(void)
|
|
|
{
|
|
|
int i,r=-1;
|
|
|
- int flen,rlen;
|
|
|
+ file_data_t fdat;
|
|
|
char path[PATH_MAX];
|
|
|
NetworkInfo_t *p=&allParas.dev._network_info;
|
|
|
|
|
|
allParas = DFLT_PARAS;
|
|
|
sys_get_path(path, PARAS_FILE);
|
|
|
|
|
|
- #if 1
|
|
|
- flen = file_length(path);
|
|
|
- if(flen==sizeof(allParas)) {
|
|
|
- rlen = file_load(path, &allParas, flen);
|
|
|
- if(rlen==flen) {
|
|
|
- r = do_check(&allParas);
|
|
|
+#if 1
|
|
|
+ r = file_load(path, &fdat);
|
|
|
+ if(r==0) {
|
|
|
+ if(fdat.len==sizeof(allParas)) {
|
|
|
+ r = do_check(fdat.buf);
|
|
|
if(r) {
|
|
|
allParas = DFLT_PARAS;
|
|
|
}
|
|
|
+ else {
|
|
|
+ allParas = *((all_paras_t*)fdat.buf);
|
|
|
+ }
|
|
|
}
|
|
|
+ free(fdat.buf);
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
if(r) {
|
|
|
paras_save();
|
|
|
- //sys_set_net(p, IP_V4);
|
|
|
}
|
|
|
else {
|
|
|
sys_get_net(p, IP_V4);
|
|
|
@@ -117,29 +50,30 @@ int paras_load(void)
|
|
|
|
|
|
int paras_save(void)
|
|
|
{
|
|
|
- int r,flen;
|
|
|
+ int r;
|
|
|
+ file_data_t fdat;
|
|
|
char path[PATH_MAX];
|
|
|
- all_paras_t *p;
|
|
|
|
|
|
r = do_check(&allParas);
|
|
|
if(r) {
|
|
|
return -1;
|
|
|
}
|
|
|
+
|
|
|
sys_get_path(path, PARAS_FILE);
|
|
|
- flen = file_length(path);
|
|
|
-
|
|
|
- if(flen==sizeof(allParas)) {
|
|
|
- p = malloc(sizeof(allParas));
|
|
|
- if(p) {
|
|
|
- file_load(path, p, flen);
|
|
|
- if(memcmp(p, &allParas, sizeof(allParas))==0) {
|
|
|
- free(p); return -1;
|
|
|
+ r = file_load(path, &fdat);
|
|
|
+ if(r==0) {
|
|
|
+ if(fdat.len==sizeof(allParas)) {
|
|
|
+ if(memcmp(fdat.buf, &allParas, sizeof(allParas))==0) {
|
|
|
+ r = -1;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ r = file_save(path, &allParas, sizeof(allParas));
|
|
|
}
|
|
|
- free(p);
|
|
|
}
|
|
|
+ free(fdat.buf);
|
|
|
}
|
|
|
-
|
|
|
- return file_save(path, &allParas, sizeof(allParas));
|
|
|
+
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
|