Ejemplo n.º 1
0
sml_tree_path *sml_tree_path_parse(sml_buffer *buf) {
	if (sml_buf_optional_is_skipped(buf)) {
		return 0;
	}

	sml_tree_path *tree_path = sml_tree_path_init();

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

	octet_string *s;
	int elems;
	for (elems = sml_buf_get_next_length(buf); elems > 0; elems--) {
		s = sml_octet_string_parse(buf);
		if (sml_buf_has_errors(buf)) goto error;
		if (s) {
			sml_tree_path_add_path_entry(tree_path, s);
		}
	}

	return tree_path;

error:
	buf->error = 1;
	sml_tree_path_free(tree_path);
	return 0;
}
Ejemplo n.º 2
0
TEST(sml_tree_path, write) {
	sml_tree_path *t = sml_tree_path_init();
	sml_tree_path_add_path_entry(t, sml_octet_string_init((unsigned char *)"Hallo", 5));
	sml_tree_path_add_path_entry(t, sml_octet_string_init((unsigned char *)"Hallo", 5));
	sml_tree_path_write(t, buf);
	expected_buf(buf, "720648616C6C6F0648616C6C6F", 13);
	sml_tree_path_free( t );
}
Ejemplo n.º 3
0
TEST(sml_tree_path, add_entry) {
	sml_tree_path *t = sml_tree_path_init();
	TEST_ASSERT_NOT_NULL(t);
	TEST_ASSERT_EQUAL(0, t->path_entries_len);
	sml_tree_path_add_path_entry(t, sml_octet_string_init((unsigned char *)"tree", 4));
	TEST_ASSERT_EQUAL(1, t->path_entries_len);
	sml_tree_path_free( t );
}
Ejemplo n.º 4
0
TEST(sml_tree_path, parse) {
	hex2binary("720648616C6C6F0264", sml_buf_get_current_buf(buf));
	sml_tree_path *t = sml_tree_path_parse(buf);
	TEST_ASSERT_NOT_NULL(t);
	TEST_ASSERT_EQUAL(2, t->path_entries_len);
	TEST_ASSERT_EQUAL(0, sml_octet_string_cmp_with_hex(t->path_entries[0], "48616C6C6F"));
	TEST_ASSERT_EQUAL(0, sml_octet_string_cmp_with_hex(t->path_entries[1], "64"));
	sml_tree_path_free( t );
}
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);
	}
}
void sml_get_profile_pack_response_free(sml_get_profile_pack_response *msg){
	if (msg) {
		sml_octet_string_free(msg->server_id);
		sml_time_free(msg->act_time);
		sml_number_free(msg->reg_period);
		sml_tree_path_free(msg->parameter_tree_path);
		sml_sequence_free(msg->header_list);
		sml_sequence_free(msg->period_list);
		sml_octet_string_free(msg->rawdata);
		sml_signature_free(msg->profile_signature);

		free(msg);
	}
}
Ejemplo n.º 7
0
TEST(sml_tree_path, init) {
	sml_tree_path *t = sml_tree_path_init();
	TEST_ASSERT_NOT_NULL(t);
	sml_tree_path_free( t );
}