aboutsummaryrefslogtreecommitdiff
path: root/readConfig.c
diff options
context:
space:
mode:
Diffstat (limited to 'readConfig.c')
-rw-r--r--readConfig.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/readConfig.c b/readConfig.c
new file mode 100644
index 0000000..94aecc7
--- /dev/null
+++ b/readConfig.c
@@ -0,0 +1,59 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include "config.h"
+
+config_t config = { .SMS_INBOX = "/var/spool/sms/inbox/",
+ .SMS_SENTBOX = "/var/spool/sms/sent/",
+ .SMS_OUTBOX = "/var/spool/sms/inbox/",
+ .MMS_DIR = "",
+ .CONTACT_FILENAME = "/var/spool/sms/contacts.csv"};
+
+const char* search_key[]= {"SMS_INBOX", "SMS_SENTBOX", "SMS_OUTBOX", "CONTACT_FILENAME", "MMS_DIR"};
+
+int searchConfigFile(char* configFile) {
+ // Search a config file.
+ // First then in the home, then in /etc and finaly in /var.
+ // In debug mode, this function search in ./fixtures
+
+ strcpy(configFile, "/home/ache/.mesmsrc");
+
+ return 0;
+}
+int readConfigFile(void) {
+ char fileName[256] = "";
+
+#ifdef DEBUG
+ fprintf(stderr, "ReadConfig\n");
+#endif
+
+ if( searchConfigFile(fileName) > 0 ) {
+ return 1;
+ }
+
+ FILE* file = fopen(fileName, "r");
+ char line[300] = "";
+
+ if( file ) {
+ while(fgets(line, 300, file) != NULL) {
+ int elem = -1;
+ for( int i = 0 ; i < sizeof search_key / sizeof *search_key ; i++) {
+ if( strncmp(line, search_key[i], strlen(search_key[i])) == 0 ) {
+ elem = i;
+ break;
+ }
+ }
+ if(elem >= 0) {
+ strtok(line, "\"");
+#ifdef DEBUG
+ fprintf(stderr, "%s is \"%s\"\n", search_key[elem], strtok(NULL, "\"") );
+#endif
+ }
+ }
+ }
+#ifdef DEBUG
+ else {
+ fprintf(stderr, "Error reading config file [%s]\n", fileName);
+ }
+#endif
+}