OSDN Git Service

Experimental: Cloud Sync
[ntch/develop.git] / src / env.c
index aedabfc..5b975ce 100644 (file)
--- a/src/env.c
+++ b/src/env.c
@@ -50,6 +50,13 @@ int NT_PTHREAD_POOL_QUEUE_SIZE;
 int NT_AUTO_SCROLL_INTERVAL;
 int NT_AUTO_UPDATE_INTERVAL;
 
+char *RFC2898_SALT;
+int  RFC2898_ITERATION;
+char *AES256_PASS;
+char *NCE_AUTH_URL;
+char *NCE_ID;
+char *NCE_PASS;
+
 static char *app_name = PACKAGE_NAME;
 static char *version_name = PACKAGE_VERSION;
 static char *def_editor_cmd = "vi";
@@ -68,6 +75,17 @@ struct option longopts[] = {
 extern void print_help();
 extern BOOL read_resource(const char *path);
 
+void nt_env_free()
+{
+       if(MARU_ID != NULL) free(MARU_ID);
+       if(MARU_PW != NULL) free(MARU_PW);
+       if(RFC2898_SALT != NULL) free(RFC2898_SALT);
+       if(AES256_PASS != NULL) free(AES256_PASS);
+       if(NCE_AUTH_URL != NULL) free(NCE_AUTH_URL);
+       if(NCE_ID != NULL) free(NCE_ID);
+       if(NCE_PASS != NULL) free(NCE_PASS);
+}
+
 int set_option(int argc, char* argv[])
 {
        int opt ,len;
@@ -77,6 +95,12 @@ int set_option(int argc, char* argv[])
 
        MARU_ID = NULL;
        MARU_PW = NULL;
+       RFC2898_SALT = NULL;
+       RFC2898_ITERATION = 0;
+       AES256_PASS = NULL;
+       NCE_AUTH_URL = NULL;
+       NCE_ID = NULL;
+       NCE_PASS = NULL;
        
        NT_MAINLOOP_POLLING_INTERVAL = 100;
        NT_PTHREAD_POOL_SIZE = 5;
@@ -84,7 +108,7 @@ int set_option(int argc, char* argv[])
        
        NT_AUTO_SCROLL_INTERVAL = 500;
        NT_AUTO_UPDATE_INTERVAL = 60000;
-
+       
        uid = getuid();
        pw = getpwuid(uid);
        if(!pw){
@@ -224,6 +248,44 @@ extern BOOL read_resource(const char *path)
                                NT_AUTO_UPDATE_INTERVAL = li;
                        continue;
                }
+               key = strstr(buf, "rfc2898-salt");
+               if(key){
+                       val = cptr+1;
+                       RFC2898_SALT = nt_trim(val);
+                       continue;
+               }
+               key = strstr(buf, "rfc2898-iteration");
+               if(key){
+                       val = cptr+1;
+                       li = strtol(val, NULL, 10);
+                       if(li > 0 && li < LONG_MAX )
+                               RFC2898_ITERATION = li;
+                       continue;
+               }
+               key = strstr(buf, "aes256-pass");
+               if(key){
+                       val = cptr+1;
+                       AES256_PASS = nt_trim(val);
+                       continue;
+               }
+               key = strstr(buf, "nce-auth-url");
+               if(key){
+                       val = cptr+1;
+                       NCE_AUTH_URL = nt_trim(val);
+                       continue;
+               }
+               key = strstr(buf, "nce-id");
+               if(key){
+                       val = cptr+1;
+                       NCE_ID = nt_trim(val);
+                       continue;
+               }
+               key = strstr(buf, "nce-pass");
+               if(key){
+                       val = cptr+1;
+                       NCE_PASS = nt_trim(val);
+                       continue;
+               }
        }
        fclose(fp);
        return TRUE;