Beispiel #1
0
TEST(sml_tree, write) {
	sml_tree *t = sml_tree_init();
	t->parameter_name = sml_octet_string_init((unsigned char *)"Hallo", 5);
	sml_tree_write(t, buf);
	expected_buf(buf, "730648616C6C6F0101", 9);
	sml_tree_free( t );
}
Beispiel #2
0
TEST(sml_tree, parse_with_error_child) {
	hex2binary("730648616C6C6F0171720648616C6C6F0101", sml_buf_get_current_buf(buf));
	sml_tree *t = sml_tree_parse(buf);

	TEST_ASSERT_NULL(t);

	sml_tree_free( t );
}
Beispiel #3
0
TEST(sml_tree, add_tree) {
	sml_tree *t = sml_tree_init();
	sml_tree_add_tree(t, sml_tree_init());

	TEST_ASSERT_NOT_NULL(t->child_list[0]);
	TEST_ASSERT_EQUAL(1, t->child_list_len);

	sml_tree_free( t );
}
Beispiel #4
0
TEST(sml_tree, parse_with_child) {
	hex2binary("730648616C6C6F0171730648616C6C6F0101", sml_buf_get_current_buf(buf));
	sml_tree *t = sml_tree_parse(buf);

	TEST_ASSERT_NOT_NULL(t);
	TEST_ASSERT_NOT_NULL(t->child_list[0]);
	TEST_ASSERT_EQUAL(1, t->child_list_len);

	sml_tree_free( t );
}
void sml_attention_response_free(sml_attention_response *msg){
	if (msg) {
		sml_octet_string_free(msg->server_id);
		sml_octet_string_free(msg->attention_number);
		sml_octet_string_free(msg->attention_message);
		sml_tree_free(msg->attention_details);

		free(msg);
	}
}
void sml_set_proc_parameter_request_free(sml_set_proc_parameter_request *msg) {
	if (msg) {
		sml_octet_string_free(msg->server_id);
		sml_octet_string_free(msg->username);
		sml_octet_string_free(msg->password);
		sml_tree_path_free(msg->parameter_tree_path);
		sml_tree_free(msg->parameter_tree);

		free(msg);
	}
}
Beispiel #7
0
void sml_tree_free(sml_tree *tree) {
	if (tree) {
		sml_octet_string_free(tree->parameter_name);
		sml_proc_par_value_free(tree->parameter_value);
		int i;
		for (i = 0; i < tree->child_list_len; i++) {
			sml_tree_free(tree->child_list[i]);
		}

		free(tree->child_list);
		free(tree);
	}
}
Beispiel #8
0
sml_tree *sml_tree_parse(sml_buffer *buf) {
	if (sml_buf_optional_is_skipped(buf)) {
		return 0;
	}

	sml_tree *tree = sml_tree_init();

	if (sml_buf_get_next_type(buf) != SML_TYPE_LIST) {
		buf->error = 1;
		goto error;
	}

	if (sml_buf_get_next_length(buf) != 3) {
		buf->error = 1;
		goto error;
	}

	tree->parameter_name = sml_octet_string_parse(buf);
	if (sml_buf_has_errors(buf)) goto error;

	tree->parameter_value = sml_proc_par_value_parse(buf);
	if (sml_buf_has_errors(buf)) goto error;

	if (!sml_buf_optional_is_skipped(buf)) {
		if (sml_buf_get_next_type(buf) != SML_TYPE_LIST) {
			buf->error = 1;
			goto error;
		}

		sml_tree *c;
		int elems;
		for (elems = sml_buf_get_next_length(buf); elems > 0; elems--) {
			c = sml_tree_parse(buf);
			if (sml_buf_has_errors(buf)) goto error;
			if (c) {
				sml_tree_add_tree(tree, c);
			}
		}
	}

	return tree;

error:
	sml_tree_free(tree);
	return 0;
}
Beispiel #9
0
TEST(sml_tree, init) {
	sml_tree *t = sml_tree_init();
	TEST_ASSERT_NOT_NULL(t);
	sml_tree_free( t );
}