used new number/boolean free methods, utilized new
optional handling
This commit is contained in:
parent
ed582bb6a2
commit
cf8482c83c
10 changed files with 61 additions and 93 deletions
|
@ -31,27 +31,10 @@ void sml_get_list_request_write(sml_get_list_request *msg, sml_buffer *buf) {
|
|||
sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 5);
|
||||
|
||||
sml_octet_string_write(msg->client_id, buf);
|
||||
|
||||
// optional server_id
|
||||
if (msg->server_id != NULL){
|
||||
sml_octet_string_write(msg->server_id, buf);
|
||||
} else sml_buf_optional_write(buf);
|
||||
|
||||
// optional username
|
||||
if (msg->username != NULL){
|
||||
sml_octet_string_write(msg->username, buf);
|
||||
} else sml_buf_optional_write(buf);
|
||||
|
||||
// optional password
|
||||
if (msg->password != NULL){
|
||||
sml_octet_string_write(msg->password, buf);
|
||||
} else sml_buf_optional_write(buf);
|
||||
|
||||
// optional list_name
|
||||
if (msg->list_name != NULL){
|
||||
sml_octet_string_write(msg->list_name,buf);
|
||||
} else sml_buf_optional_write(buf);
|
||||
|
||||
sml_octet_string_write(msg->server_id, buf);
|
||||
sml_octet_string_write(msg->username, buf);
|
||||
sml_octet_string_write(msg->password, buf);
|
||||
sml_octet_string_write(msg->list_name,buf);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -31,24 +31,11 @@ sml_get_proc_parameter_request *sml_get_proc_parameter_request_init() {
|
|||
void sml_get_proc_parameter_request_write(sml_get_proc_parameter_request *msg, sml_buffer *buf) {
|
||||
sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 5);
|
||||
|
||||
// optional server_id
|
||||
if (msg->server_id != NULL){
|
||||
sml_octet_string_write(msg->server_id, buf);
|
||||
} else sml_buf_optional_write(buf);
|
||||
|
||||
// optional username
|
||||
if (msg->username != NULL) {
|
||||
sml_octet_string_write(msg->username, buf);
|
||||
} else sml_buf_optional_write(buf);
|
||||
|
||||
// optional password
|
||||
if (msg->password != NULL){
|
||||
sml_octet_string_write(msg->password, buf);
|
||||
} else sml_buf_optional_write(buf);
|
||||
|
||||
sml_tree_path_write(msg->parameter_tree_path, buf);
|
||||
|
||||
sml_tree_write(msg->parameter_tree, buf);
|
||||
sml_octet_string_write(msg->server_id, buf);
|
||||
sml_octet_string_write(msg->username, buf);
|
||||
sml_octet_string_write(msg->password, buf);
|
||||
sml_tree_path_write(msg->parameter_tree_path, buf);
|
||||
sml_tree_write(msg->parameter_tree, buf);
|
||||
}
|
||||
|
||||
void sml_get_proc_parameter_request_free(sml_get_proc_parameter_request *msg) {
|
||||
|
|
|
@ -111,6 +111,8 @@ void sml_list_entry_free(sml_list *list) {
|
|||
sml_octet_string_free(list->obj_name);
|
||||
sml_status_free(list->status);
|
||||
sml_time_free(list->val_time);
|
||||
sml_number_free(list->unit);
|
||||
sml_number_free(list->scaler);
|
||||
sml_value_free(list->value);
|
||||
sml_octet_string_free(list->value_signature);
|
||||
free(list);
|
||||
|
|
|
@ -84,10 +84,11 @@ sml_message *sml_message_init() {
|
|||
|
||||
void sml_message_free(sml_message *msg) {
|
||||
if (msg) {
|
||||
if (msg->transaction_id)
|
||||
sml_octet_string_free(msg->transaction_id);
|
||||
if (msg->message_body)
|
||||
sml_message_body_free(msg->message_body);
|
||||
sml_octet_string_free(msg->transaction_id);
|
||||
sml_number_free(msg->group_id);
|
||||
sml_number_free(msg->abort_on_error);
|
||||
sml_message_body_free(msg->message_body);
|
||||
sml_number_free(msg->crc);
|
||||
free(msg);
|
||||
}
|
||||
}
|
||||
|
@ -200,6 +201,8 @@ void sml_message_body_write(sml_message_body *message_body, sml_buffer *buf) {
|
|||
|
||||
void sml_message_body_free(sml_message_body *message_body) {
|
||||
if (message_body) {
|
||||
sml_number_free(message_body->tag);
|
||||
|
||||
switch (*(message_body->tag)) {
|
||||
case SML_MESSAGE_OPEN_REQUEST:
|
||||
sml_open_request_free((sml_open_request *) message_body->data);
|
||||
|
|
|
@ -29,43 +29,16 @@ sml_open_request *sml_open_request_init(){
|
|||
return open_request;
|
||||
}
|
||||
|
||||
/*
|
||||
sml_open_request *sml_open_request_init(char* client_id,char* req_file_id, char* server_id){
|
||||
sml_open_request *open_request = (sml_open_request *) malloc(sizeof(sml_open_request));
|
||||
memset(open_request, 0, sizeof(sml_open_request));
|
||||
|
||||
// printf("TODO: %s\n", __FUNCTION__);
|
||||
open_request->client_id = sml_octet_string_init((unsigned char *)client_id,strlen(client_id));
|
||||
open_request->req_file_id = sml_octet_string_init((unsigned char *)req_file_id,strlen(req_file_id));
|
||||
open_request->server_id = sml_octet_string_init((unsigned char *)server_id, strlen(server_id));
|
||||
return open_request;
|
||||
}
|
||||
|
||||
sml_open_request *sml_open_request_init() {
|
||||
// sml_open_request *open_request = (sml_open_request *) malloc(sizeof(sml_open_request));
|
||||
//memset(open_request, 0, sizeof(sml_open_request));
|
||||
|
||||
// printf("TODO: %s\n", __FUNCTION__);
|
||||
//open_request->username = sml_octet_string_init((unsigned char *)"kunde",5);
|
||||
//open_request->username = sml_octet_string_init((unsigned char *)"kunde",5);
|
||||
//open_request->client_id = sml_octet_string_init((unsigned char *)"SEDICMA", 7);
|
||||
//open_request->req_file_id = sml_octet_string_init((unsigned char *)"01", 2);
|
||||
char server_id[] ={0x06, 0x45, 0x4d, 0x48, 0x01, 0x02, 0x71, 0x53, 0x3b, 0xcd};
|
||||
//open_request->server_id = sml_octet_string_init(server_id, 10);
|
||||
return sml_open_request_init("SEDICMA", "02", server_id);
|
||||
}
|
||||
*/
|
||||
void sml_open_request_write(sml_open_request *msg, sml_buffer *buf) {
|
||||
sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 7);
|
||||
|
||||
sml_buf_optional_write(buf);
|
||||
sml_octet_string_write(msg->codepage, buf);
|
||||
sml_octet_string_write(msg->client_id, buf);
|
||||
sml_octet_string_write(msg->req_file_id, buf);
|
||||
sml_octet_string_write(msg->server_id, buf);
|
||||
sml_octet_string_write(msg->username,buf);
|
||||
sml_octet_string_write(msg->password,buf);
|
||||
sml_buf_optional_write(buf);
|
||||
|
||||
sml_u8_write(msg->sml_version, buf);
|
||||
}
|
||||
|
||||
sml_open_request *sml_open_request_parse(sml_buffer *buf) {
|
||||
|
@ -100,7 +73,7 @@ sml_open_request *sml_open_request_parse(sml_buffer *buf) {
|
|||
msg->password = sml_octet_string_parse(buf);
|
||||
if (sml_buf_has_errors(buf)) goto error;
|
||||
|
||||
msg->sml_version = SML_SKIP_OPTIONAL sml_u8_parse(buf);
|
||||
msg->sml_version = sml_u8_parse(buf);
|
||||
if (sml_buf_has_errors(buf)) goto error;
|
||||
|
||||
return msg;
|
||||
|
@ -111,13 +84,16 @@ error:
|
|||
}
|
||||
|
||||
void sml_open_request_free(sml_open_request *msg) {
|
||||
free(msg->client_id);
|
||||
free(msg->password);
|
||||
free(msg->req_file_id);
|
||||
free(msg->server_id);
|
||||
free(msg->username);
|
||||
free(msg);
|
||||
// printf("NYI: %s\n", __FUNCTION__);
|
||||
if (msg) {
|
||||
sml_octet_string_free(msg->codepage);
|
||||
sml_octet_string_free(msg->client_id);
|
||||
sml_octet_string_free(msg->req_file_id);
|
||||
sml_octet_string_free(msg->server_id);
|
||||
sml_octet_string_free(msg->username);
|
||||
sml_octet_string_free(msg->password);
|
||||
sml_number_free(msg->sml_version);
|
||||
free(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ sml_open_response *sml_open_response_parse(sml_buffer *buf) {
|
|||
msg->ref_time = SML_SKIP_OPTIONAL sml_time_parse(buf);
|
||||
if (sml_buf_has_errors(buf)) goto error;
|
||||
|
||||
msg->sml_version = SML_SKIP_OPTIONAL sml_u8_parse(buf);
|
||||
msg->sml_version = sml_u8_parse(buf);
|
||||
if (sml_buf_has_errors(buf)) goto error;
|
||||
|
||||
return msg;
|
||||
|
@ -66,6 +66,7 @@ void sml_open_response_free(sml_open_response *msg) {
|
|||
sml_octet_string_free(msg->req_file_id);
|
||||
sml_octet_string_free(msg->server_id);
|
||||
sml_time_free(msg->ref_time);
|
||||
sml_number_free(msg->sml_version);
|
||||
free(msg);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,8 +19,6 @@
|
|||
|
||||
#include <sml/sml_set_proc_parameter_request.h>
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
sml_set_proc_parameter_request *sml_set_proc_parameter_request_init() {
|
||||
sml_set_proc_parameter_request *msg = (sml_set_proc_parameter_request *) malloc(sizeof (sml_set_proc_parameter_request));
|
||||
memset(msg, 0, sizeof(sml_set_proc_parameter_request));
|
||||
|
@ -29,15 +27,22 @@ sml_set_proc_parameter_request *sml_set_proc_parameter_request_init() {
|
|||
|
||||
void sml_set_proc_parameter_request_write(sml_set_proc_parameter_request *msg, sml_buffer *buf) {
|
||||
sml_buf_set_type_and_length(buf, SML_TYPE_LIST, 5);
|
||||
sml_buf_optional_write(buf);
|
||||
sml_buf_optional_write(buf);
|
||||
sml_buf_optional_write(buf);
|
||||
sml_octet_string_write(msg->server_id, buf);
|
||||
sml_octet_string_write(msg->username, buf);
|
||||
sml_octet_string_write(msg->password, buf);
|
||||
sml_tree_path_write(msg->parameter_tree_path, buf);
|
||||
sml_tree_write(msg->parameter_tree, buf);
|
||||
}
|
||||
|
||||
void sml_set_proc_parameter_request_free(sml_set_proc_parameter_request *msg) {
|
||||
printf("NYI: %s\n", __FUNCTION__);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -63,6 +63,7 @@ sml_status *sml_status_parse(sml_buffer *buf) {
|
|||
|
||||
void sml_status_free(sml_status *status) {
|
||||
if (status) {
|
||||
sml_number_free(status->status8);
|
||||
free(status);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -57,8 +57,10 @@ void sml_time_write(sml_time *time, sml_buffer *buf) {
|
|||
sml_buf_optional_write(buf);
|
||||
}
|
||||
|
||||
void sml_time_free(sml_time *time) {
|
||||
if (time) {
|
||||
free(time);
|
||||
void sml_time_free(sml_time *tme) {
|
||||
if (tme) {
|
||||
sml_number_free(tme->tag);
|
||||
sml_number_free(tme->data);
|
||||
free(tme);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -117,9 +117,17 @@ sml_value *sml_value_init() {
|
|||
|
||||
void sml_value_free(sml_value *value) {
|
||||
if (value) {
|
||||
if (value->type == SML_TYPE_OCTET_STRING) {
|
||||
sml_octet_string_free(value->data.bytes);
|
||||
}
|
||||
switch (value->type) {
|
||||
case SML_TYPE_OCTET_STRING:
|
||||
sml_octet_string_free(value->data.bytes);
|
||||
break;
|
||||
case SML_TYPE_BOOLEAN:
|
||||
sml_boolean_free(value->data.boolean);
|
||||
break;
|
||||
default:
|
||||
sml_number_free(value->data.int8);
|
||||
break;
|
||||
}
|
||||
free(value);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue