change of struct

struct no longer contains allocated arrays

problem with the reply string
This commit is contained in:
joran2738
2023-11-06 23:57:04 +01:00
parent fb1cc1e4bc
commit 566bdb00ed
3 changed files with 44 additions and 51 deletions

View File

@@ -36,13 +36,8 @@ static void set_owner_details_mac(owner_details_t* owner){
uint8_t set_owner_details_name(owner_details_t *owner, char *name){
if(name != NULL){
if(owner->name == NULL){
owner->name = (char*)malloc(strlen(name) + 1);
}
else{
owner->name = (char*)realloc(owner->name,strlen(name) + 1);
}
strncpy(owner->name,name,strlen(owner->name));
LOG_DEBUG("set_owner_details_name","set: %s",name);
strncpy(owner->name,name,sizeof(owner->name));
return 1;
}
else{
@@ -61,13 +56,8 @@ uint8_t set_owner_details_name(owner_details_t *owner, char *name){
*/
uint8_t set_owner_details_surname(owner_details_t* owner, char* surname){
if(surname != NULL){
if(owner->surname == NULL){
owner->surname = (char*)malloc(strlen(surname) + 1);
}
else{
owner->surname = (char*)realloc(owner->surname,strlen(surname) + 1);
}
strncpy(owner->surname,surname,strlen(owner->surname));
LOG_DEBUG("set_owner_details_surname","set: %s",surname);
strncpy(owner->surname,surname,sizeof(owner->surname));
return 1;
}
else{
@@ -86,13 +76,8 @@ uint8_t set_owner_details_surname(owner_details_t* owner, char* surname){
static uint8_t set_owner_details_reply(owner_details_t *owner, char *reply){
if(reply != NULL){
if(owner->reply == NULL){
owner->reply = (char*)malloc(strlen(reply) + 1);
}
else{
owner->reply = (char*)realloc(owner->reply,strlen(reply) + 1);
}
strncpy(owner->reply,reply,strlen(owner->reply));
LOG_DEBUG("set_owner_details_reply","set: %s",reply);
strncpy(owner->reply,reply,sizeof(owner->reply));
return 1;
}
else{
@@ -145,6 +130,10 @@ uint8_t set_owner_details(owner_details_t* owner, char* name, char* surname){
if(set_owner_details_name(owner, name) && set_owner_details_surname(owner, surname)){
set_owner_details_mac(owner);
format_reply(owner);
return 1;
}
else{
return 0;
}
}
@@ -156,13 +145,12 @@ uint8_t set_owner_details(owner_details_t* owner, char* name, char* surname){
* @return
*/
char* get_owner_details_name(owner_details_t owner){
char *err_reply = "no name yet";
if(owner.name == NULL){
owner.name = (char*)malloc(strlen(err_reply));
strncpy(owner.name,err_reply,strlen(owner.name));
char* get_owner_details_name(owner_details_t *owner){
char err_reply[20] = "no name yet";
if(owner->name == NULL){
strncpy(owner->name,err_reply,sizeof(owner->name));
}
return owner.name;
return *owner->name;
}
/**
@@ -173,13 +161,12 @@ char* get_owner_details_name(owner_details_t owner){
* @return
*/
char* get_owner_details_surname(owner_details_t owner){
char *err_reply = "no surname yet";
if(owner.surname == NULL){
owner.surname = (char*)malloc(strlen(err_reply));
strncpy(owner.surname,err_reply,strlen(owner.surname));
char* get_owner_details_surname(owner_details_t* owner){
char err_reply[20] = "no surname yet";
if(owner->surname == NULL){
strncpy(owner->surname,err_reply,sizeof(owner->surname));
}
return owner.surname;
return owner->surname;
}
/**
@@ -190,13 +177,13 @@ char* get_owner_details_surname(owner_details_t owner){
* @return
*/
char* get_owner_details_reply(owner_details_t owner){
char *err_reply = "no reply yet";
if(owner.reply == NULL){
owner.reply = (char*)malloc(strlen(err_reply));
strncpy(owner.reply,err_reply,strlen(owner.reply));
char* get_owner_details_reply(owner_details_t *owner){
LOG_DEBUG("get_owner_details_reply","getting reply");
char err_reply[20] = "no reply yet";
if(owner->reply == NULL){
strncpy(owner->reply,err_reply,sizeof(owner->reply));
}
return owner.reply;
return owner->reply;
}

View File

@@ -111,12 +111,16 @@ int main(void)
MX_QUADSPI_Init();
/* USER CODE BEGIN 2 */
owner_details_t owner;
LOG_DEBUG("main1","helloworld");
LOG_DEBUG("main2","%s",get_owner_details_reply(owner));
set_owner_details(&owner, "joran", "vn");
LOG_DEBUG("main3","%s",get_owner_details_reply(owner));
set_owner_details(&owner, "joran", "Van Nieuwenhoven");
LOG_DEBUG("main4","%s",get_owner_details_reply(owner));
LOG_DEBUG("main1","\nhelloworld");
LOG_DEBUG("main2","%s",get_owner_details_reply(&owner));
if(!set_owner_details(&owner, "joran", "vn")){
LOG_DEBUG("main3","error");;
}
LOG_DEBUG("main4","%s",get_owner_details_reply(&owner));
if(!set_owner_details(&owner, "joran", "Van Nieuwenhoven")){
LOG_DEBUG("main5","error");
}
LOG_DEBUG("main6","%s",get_owner_details_reply(&owner));
/* USER CODE END 2 */
/* Infinite loop */