#define NO_SECTION 0 #define FOUND_SECTION 10 #define ERROR_STR 1 #define ERROR_MAX_LEN 2 #define NO_ERROR 0 //ERROR DELIMITER #define ERROR_DELIMITER_NOT_FOUND 40 //State Machine #define ST_INIT 0 #define ST_FOUND_LEFT_DELIMITER 1 #define ST_FOUND_RIGHT_DELIMITER 2 #define ST_ERROR_NOT_FOUND_RIGHT_DELIMITER 3 #define ST_ERROR_NOT_FOUND_LEFT_DELIMITER 4 #define ST_FOUND_SECTION 5 #define ST_SKIP_READ 6 #define ST_FINISH 20 //state machine ERROR #define ST_ERROR_GETSTRATPOS 30 //LIMITS #define MAX_LEN_SECTIONNAME 128 struct configEntry { char *sectionName; char *keyName; char *keyValue; }; int loadConfig(char *file, char **str_entry,char **host,int *intervall,int size); int checkSection(char *str,char delimiterLeft,char delimiterRight,char **sectionName); int getStrAtPos(char *str,int fromPos,int toPos, char **name,int sizeName); int getNameValuePair(char *str,char leftDelimiterPos,char rightDelimiterPos,char **name,char **value,int sizeName,int sizeValue); int parseConfig(char *buffer,struct configEntry **entry,int configSize,int *returnedCount);