Ejemplo n.º 1
0
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;	
		}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
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;
}