Skip to content
Snippets Groups Projects
Commit 6f2226da authored by Tomasz Kozak's avatar Tomasz Kozak
Browse files

fix: Fix issue with too long list of properties causing not-caught exception to crash server.

parent 42aa5618
No related branches found
Tags 01.25.00
No related merge requests found
Pipeline #90715 failed
......@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16)
project(doocs-linklock-server)
set(${PROJECT_NAME}_MAJOR_VERSION 01)
set(${PROJECT_NAME}_MINOR_VERSION 24)
set(${PROJECT_NAME}_MINOR_VERSION 25)
set(${PROJECT_NAME}_PATCH_VERSION 00)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
......
......@@ -51,6 +51,8 @@ public:
void interrupt_usr1_core(dmsg_info_t *msginfo);
void post_init(void);
static int conf_done;
void names(EqAdr* ea, EqData* result) override;
};
......
......@@ -48,6 +48,8 @@ public:
void interrupt_usr1_core(dmsg_info_t *msginfo);
void post_init(void);
static int conf_done;
void names(EqAdr* ea, EqData* result) override;
};
......
......@@ -87,4 +87,19 @@ void EqLinkLockCtrlFMC25VhdlServer::post_init(void) {
}
// Circumvent server library bug:
// https://mcs-gitlab.desy.de/doocs/doocs-core-libraries/serverlib/-/merge_requests/161
void EqLinkLockCtrlFMC25VhdlServer::names(EqAdr* ea, EqData* result) {
const char* pp = ea->property();
int k = 0;
int eol = 0;
for(int i = 0; eol == 0; ++i) {
D_fct* dp = prop_get(i, &eol);
std::string bname = dp->basename();
if(doocs::name_match(pp, bname.c_str())) {
dp->names(ea, result, &k);
k++;
if(k == USTR_LENGTH) break;
}
}
}
......@@ -86,4 +86,19 @@ void EqLinkLockServer::post_init(void) {
}
// Circumvent server library bug:
// https://mcs-gitlab.desy.de/doocs/doocs-core-libraries/serverlib/-/merge_requests/161
void EqLinkLockServer::names(EqAdr* ea, EqData* result) {
const char* pp = ea->property();
int k = 0;
int eol = 0;
for(int i = 0; eol == 0; ++i) {
D_fct* dp = prop_get(i, &eol);
std::string bname = dp->basename();
if(doocs::name_match(pp, bname.c_str())) {
dp->names(ea, result, &k);
k++;
if(k == USTR_LENGTH) break;
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment