|
|
@@ -1349,6 +1349,104 @@ static void* polling_thread(void *arg)
|
|
|
pthread_exit(NULL);
|
|
|
}
|
|
|
|
|
|
+static char *str_get(char *buf, char *tok, char *dst, int dstlen)
|
|
|
+{
|
|
|
+ int n=0;
|
|
|
+ char *t=dst,*p=strstr(buf,tok);
|
|
|
+ if(!p) {
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+ while((*p)!=':') {
|
|
|
+ if((*p)=='\r' || (*p)=='\n') {
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+ p++;
|
|
|
+ }
|
|
|
+ p++;
|
|
|
+
|
|
|
+ while((*p)!='"') {
|
|
|
+ if((*p)=='\r' || (*p)=='\n') {
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+ p++;
|
|
|
+ }
|
|
|
+ p++;
|
|
|
+
|
|
|
+ while((*p)!='"') {
|
|
|
+ if((*p)=='\r' || (*p)=='\n') {
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ *dst++ = *p++;
|
|
|
+ n++;
|
|
|
+ if(n>=dstlen-1) {
|
|
|
+ LOGE("str_get %s, dst buf length %d is too small!\n", tok, dstlen);
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ *dst = 0;
|
|
|
+
|
|
|
+ return t;
|
|
|
+}
|
|
|
+
|
|
|
+int sys_get_prod(prod_info_t *info)
|
|
|
+{
|
|
|
+ int r;
|
|
|
+ char *p,*tok;
|
|
|
+ buf_t fbuf;
|
|
|
+ char temp[100];
|
|
|
+
|
|
|
+ r = file_load(INFO_FILE_PATH, &fbuf);
|
|
|
+ if(r) {
|
|
|
+ return -1;
|
|
|
+ }
|
|
|
+
|
|
|
+ tok = "product_name";
|
|
|
+ p = str_get(fbuf.buf, tok, info->p_name, sizeof(info->p_name));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "product_sn";
|
|
|
+ p = str_get(fbuf.buf, tok, info->p_sn, sizeof(info->p_sn));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "device_name";
|
|
|
+ p = str_get(fbuf.buf, tok, info->d_name, sizeof(info->d_name));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "device_date";
|
|
|
+ p = str_get(fbuf.buf, tok, info->d_date, sizeof(info->d_date));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "device_batch";
|
|
|
+ p = str_get(fbuf.buf, tok, info->d_batch, sizeof(info->d_batch));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "server_name";
|
|
|
+ p = str_get(fbuf.buf, tok, info->s_name, sizeof(info->s_name));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "server_site";
|
|
|
+ p = str_get(fbuf.buf, tok, info->s_site, sizeof(info->s_site));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "server_mail";
|
|
|
+ p = str_get(fbuf.buf, tok, info->s_mail, sizeof(info->s_mail));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "server_address";
|
|
|
+ p = str_get(fbuf.buf, tok, info->s_addr, sizeof(info->s_addr));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ tok = "server_telephone";
|
|
|
+ p = str_get(fbuf.buf, tok, info->s_tele, sizeof(info->s_tele));
|
|
|
+ if(p) LOGD("___%s:%s\n", tok, p);
|
|
|
+
|
|
|
+ free(fbuf.buf);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
int sys_init(void)
|