#include #include #include #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 }