CWBool CWParseSettingsFile() { char *line = NULL; gSettingsFile = fopen (CW_SETTINGS_FILE, "rb"); if (gSettingsFile == NULL) { CWErrorRaiseSystemError(CW_ERROR_GENERAL); } while((line = (char*)CWGetCommand(gSettingsFile)) != NULL) { char* startTag=NULL; char* endTag=NULL; if((startTag=strchr (line, '<'))==NULL) { CW_FREE_OBJECT(line); continue; } if((endTag=strchr (line, '>'))==NULL) { CW_FREE_OBJECT(line); continue; } if (!strncmp(startTag+1, "IF_NAME", endTag-startTag-1)) { char* startValue=NULL; char* endValue=NULL; int offset = 0; CWExtractValue(endTag, &startValue, &endValue, &offset); CW_CREATE_STRING_ERR(gInterfaceName, offset, return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY,NULL);); strncpy(gInterfaceName, startValue, offset); gInterfaceName[offset] ='\0'; CWLog(": %s", gInterfaceName); CW_FREE_OBJECT(line); continue; }
CWBool CWParseSettingsFile() { char line[CW_BUFFER_SIZE]; gSettingsFile = fopen(gCWSettingsFileName, "rb"); if (gSettingsFile == NULL) { CWErrorRaiseSystemError(CW_ERROR_GENERAL); } while (CWGetCommand(gSettingsFile, line, sizeof(line)) == CW_TRUE) { char *startTag = NULL; char *endTag = NULL; char *Value = NULL; if ((startTag = strchr(line, '<')) == NULL) continue; startTag++; if ((endTag = strchr(startTag, '>')) == NULL) continue; *endTag++ = '\0'; Value = ltrim(endTag); if (!strcmp(startTag, "IF_NAME")) { if (!(gInterfaceName = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gInterfaceName); } else if (!strcmp(startTag, "WTP_ETH_IF_NAME")) { if (!(gEthInterfaceName = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gEthInterfaceName); } else if (!strcmp(startTag, "RADIO_0_IF_NAME")) { if (!(gRadioInterfaceName_0 = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gRadioInterfaceName_0); } else if (!strcmp(startTag, "BASE_MAC_IF_NAME")) { if (!(gBaseMACInterfaceName = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gBaseMACInterfaceName); } else if (!strcmp(startTag, "BOARD_REVISION_NO")) { gBoardReversionNo = atoi(Value); CWLog(": %d", gBoardReversionNo); } else if (!strcmp(startTag, "WTP_HOSTAPD_PORT")) { gHostapd_port = atoi(Value); CWLog(": %d", gHostapd_port); } else if (!strcmp(startTag, "WTP_HOSTAPD_UNIX_PATH")) { if (!(gHostapd_unix_path = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gHostapd_unix_path); } else if (!strcmp(startTag, "WTP_MODEL_NUM")) { if (!(gWtpModelNumber = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gWtpModelNumber); } else if (!strcmp(startTag, "WTP_SERIAL_NUM")) { if (!(gWtpSerialNumber = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gWtpSerialNumber); } else if (!strcmp(startTag, "WTP_HARDWARE_VERSION")) { if (!(gWtpHardwareVersion = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gWtpHardwareVersion); } else if (!strcmp(startTag, "WTP_ACTIVE_SOFTWARE_VERSION")) { if (!(gWtpActiveSoftwareVersion = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gWtpActiveSoftwareVersion); } else if (!strcmp(startTag, "WTP_BOOT_VERSION")) { if (!(gWtpBootVersion = ralloc_strdup(NULL, Value))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWLog(": %s", gWtpBootVersion); } else CWLog(": unknown Tag: %s = %s", startTag, Value); } return CW_TRUE; }
CWBool CWParseSettingsFile() { char line[CW_BUFFER_SIZE]; gSettingsFile = fopen(gCWSettingsFileName, "rb"); if (gSettingsFile == NULL) { CWErrorRaiseSystemError(CW_ERROR_GENERAL); } if (!(gDefaultQosValues = ralloc_array(NULL, WTPQosValues, NUM_QOS_PROFILES))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); while (CWGetCommand(gSettingsFile, line, sizeof(line)) == CW_TRUE) { char *startTag = NULL; char *endTag = NULL; if ((startTag = strchr(line, '<')) == NULL) continue; if ((endTag = strchr(line, '>')) == NULL) continue; if (!strncmp(startTag + 1, "CWMIN_VOICE", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = CWMIN_DEFAULT; gDefaultQosValues[VOICE_QUEUE_INDEX].cwMin = value; CWDebugLog("CWMIN_VOICE: %d", gDefaultQosValues[VOICE_QUEUE_INDEX].cwMin); continue; } if (!strncmp(startTag + 1, "CWMAX_VOICE", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = CWMAX_DEFAULT; gDefaultQosValues[VOICE_QUEUE_INDEX].cwMax = value; CWDebugLog("CWMAX_VOICE: %d", gDefaultQosValues[VOICE_QUEUE_INDEX].cwMax); continue; } if (!strncmp(startTag + 1, "AIFS_VOICE", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = AIFS_DEFAULT; gDefaultQosValues[VOICE_QUEUE_INDEX].AIFS = value; CWDebugLog("AIFS_VOICE: %d", gDefaultQosValues[VOICE_QUEUE_INDEX].AIFS); continue; } if (!strncmp(startTag + 1, "CWMIN_VIDEO", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = CWMIN_DEFAULT; gDefaultQosValues[VIDEO_QUEUE_INDEX].cwMin = value; CWDebugLog("CWMIN_VIDEO: %d", gDefaultQosValues[VIDEO_QUEUE_INDEX].cwMin); continue; } if (!strncmp(startTag + 1, "CWMAX_VIDEO", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = CWMAX_DEFAULT; gDefaultQosValues[VIDEO_QUEUE_INDEX].cwMax = value; CWDebugLog("CWMAX_VIDEO: %d", gDefaultQosValues[VIDEO_QUEUE_INDEX].cwMax); continue; } if (!strncmp(startTag + 1, "AIFS_VIDEO", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = AIFS_DEFAULT; gDefaultQosValues[VIDEO_QUEUE_INDEX].AIFS = value; CWDebugLog("AIFS_VIDEO: %d", gDefaultQosValues[VIDEO_QUEUE_INDEX].AIFS); continue; } if (!strncmp(startTag + 1, "CWMIN_BEST_EFFORT", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = CWMIN_DEFAULT; gDefaultQosValues[BESTEFFORT_QUEUE_INDEX].cwMin = value; CWDebugLog("CWMIN_BEST_EFFORT: %d", gDefaultQosValues[BESTEFFORT_QUEUE_INDEX].cwMin); continue; } if (!strncmp(startTag + 1, "CWMAX_BEST_EFFORT", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = CWMAX_DEFAULT; gDefaultQosValues[BESTEFFORT_QUEUE_INDEX].cwMax = value; CWDebugLog("CWMAX_BEST_EFFORT: %d", gDefaultQosValues[BESTEFFORT_QUEUE_INDEX].cwMax); continue; } if (!strncmp(startTag + 1, "AIFS_BEST_EFFORT", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = AIFS_DEFAULT; gDefaultQosValues[BESTEFFORT_QUEUE_INDEX].AIFS = value; CWDebugLog("AIFS_BEST_EFFORT: %d", gDefaultQosValues[BESTEFFORT_QUEUE_INDEX].AIFS); continue; } if (!strncmp(startTag + 1, "CWMIN_BACKGROUND", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = CWMIN_DEFAULT; gDefaultQosValues[BACKGROUND_QUEUE_INDEX].cwMin = value; CWDebugLog("CWMIN_BACKGROUND: %d", gDefaultQosValues[BACKGROUND_QUEUE_INDEX].cwMin); continue; } if (!strncmp(startTag + 1, "CWMAX_BACKGROUND", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = CWMAX_DEFAULT; gDefaultQosValues[BACKGROUND_QUEUE_INDEX].cwMax = value; CWDebugLog("CWMAX_BACKGROUND: %d", gDefaultQosValues[BACKGROUND_QUEUE_INDEX].cwMax); continue; } if (!strncmp(startTag + 1, "AIFS_BACKGROUND", endTag - startTag - 1)) { int value = atoi(endTag + 1); if (value == 0) value = AIFS_DEFAULT; gDefaultQosValues[BACKGROUND_QUEUE_INDEX].AIFS = value; CWDebugLog("AIFS_BACKGROUND: %d", gDefaultQosValues[BACKGROUND_QUEUE_INDEX].AIFS); continue; } if (!strncmp(startTag + 1, "AC_HOSTAPD_PORT", endTag - startTag - 1)) { gHostapd_port = atoi(endTag + 1); CWDebugLog("Hostapd Port connection: %d", gHostapd_port); continue; } if (!strncmp(startTag + 1, "AC_HOSTAPD_UNIX_PATH", endTag - startTag - 1)) { char *startValue = NULL; char *endValue = NULL; int offset = 0; CWExtractValue(endTag, &startValue, &endValue, &offset); if (!((gHostapd_unix_path = ralloc_strndup(NULL, startValue, offset)))) return CWErrorRaise(CW_ERROR_OUT_OF_MEMORY, NULL); CWDebugLog("Hostapd Unix Domain Path: %s", gHostapd_unix_path); continue; } } return CW_TRUE; }