00001 #include <stdio.h> 00002 #include <string.h> 00003 #include "config.h" 00004 00005 int main (int argc, char *argv[]) 00006 { 00007 int e, res, rc; 00008 char *value; 00009 00010 if (argc != 3) 00011 { 00012 fprintf (stdout, "FATAL: Wrong arguments (Usage: read_conf <path to configuration file> <tag>)"); 00013 return 1; 00014 } 00015 00016 rc = parse_configuration_file (argv[1], &e); 00017 if (rc != PARSE_CONFIGURATION_OK) 00018 { 00019 00020 switch (rc) 00021 { 00022 case PARSE_CONFIGURATION_NO_MEM: 00023 { 00024 fprintf (stderr, 00025 "FATAL: Could not load the configuration file <%s> - Could not allocate memory!", 00026 argv[1]); 00027 }; break; 00028 case PARSE_CONFIGURATION_FILE_NOT_FOUND: 00029 { 00030 fprintf (stderr, 00031 "FATAL :Could not load the configuration file <%s> - %s", 00032 argv[1], strerror(e)); 00033 }; break; 00034 case PARSE_CONFIGURATION_SYNTAX_ERROR: 00035 { 00036 fprintf (stderr, 00037 "FATAL: Could not load the configuration file <%s> - Found syntax error.", 00038 argv[1]); 00039 }; break; 00040 case PARSE_CONFIGURATION_DUPLICATED_TAG: 00041 { 00042 fprintf (stderr, 00043 "FATAL: Could not load the configuration file <%s> - Duplicated tag found.", 00044 argv[1]); 00045 }; break; 00046 case PARSE_CONFIGURATION_DLL_OPEN_ERROR: 00047 { 00048 fprintf (stderr, 00049 "FATAL: Could not load the configuration file <%s> - Could not open DLL. %s.", 00050 argv[1], conf_get_last_error()); 00051 }; break; 00052 case PARSE_CONFIGURATION_DLL_INVALID: 00053 { 00054 fprintf (stderr, 00055 "FATAL: Could not load the configuration file <%s> - DLL is not valid. %s.", 00056 argv[1], conf_get_last_error()); 00057 }; break; 00058 case PARSE_CONFIGURATION_MODEM_CONF_NOT_VALID: 00059 { 00060 fprintf (stderr, 00061 "FATAL: Could not load the configuration file <%s> - Modem's configuration is not valid.", 00062 argv[1]); 00063 }; break; 00064 } 00065 00066 return 1; 00067 } 00068 00069 res = get_value(argv[2], &value); 00070 00071 if (res == 0) 00072 { 00073 fprintf (stdout, "FATAL: Tag <%s> not found in configuration file <%s>", argv[2], argv[1]); 00074 return 1; 00075 } 00076 00077 if (res == -1) 00078 { 00079 fprintf (stdout, "FATAL: Unexpected error while parsing configuration file <%s> for tag <%s>", 00080 argv[1], argv[2]); 00081 return 1; 00082 } 00083 00084 fprintf (stdout, "%s", value); 00085 00086 return 0; 00087 } 00088