From 466574921283f219e6ab46a885719d8f45a8d620 Mon Sep 17 00:00:00 2001 From: OpenGnSys Support Team Date: Tue, 30 Oct 2018 21:39:56 +0100 Subject: #580 no need to iterate 1024 times to find a matching handler There are only 41 handlers, no need to keep inspecting up to 1024. Most entries in this array are null. --- sources/ogAdmServer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sources/ogAdmServer.cpp') diff --git a/sources/ogAdmServer.cpp b/sources/ogAdmServer.cpp index d09df69..9d7ca60 100644 --- a/sources/ogAdmServer.cpp +++ b/sources/ogAdmServer.cpp @@ -3524,7 +3524,7 @@ BOOLEAN envioProgramacion(SOCKET *socket_c, TRAMA *ptrTrama) static struct { const char *nf; // Nombre de la función BOOLEAN (*fptr)(SOCKET*,TRAMA*); // Puntero a la función que procesa la trama -} tbfuncionesServer[MAXIMAS_FUNCIONES] = { +} tbfuncionesServer[] = { { "Sondeo", Sondeo, }, { "respuestaSondeo", respuestaSondeo, }, { "ConsolaRemota", ConsolaRemota, }, @@ -3567,6 +3567,7 @@ static struct { { "enviaArchivo", enviaArchivo, }, { "recibeArchivo", recibeArchivo, }, { "envioProgramacion", envioProgramacion, }, + { NULL, NULL, }, }; // ________________________________________________________________________________________________________ @@ -3593,7 +3594,7 @@ BOOLEAN gestionaTrama(SOCKET *socket_c) INTROaFINCAD(ptrTrama); nfn = copiaParametro("nfn",ptrTrama); // Toma nombre de la función - for (i = 0; i < MAXIMAS_FUNCIONES; i++) { // Recorre funciones que procesan las tramas + for (i = 0; tbfuncionesServer[i].fptr; i++) { res = strcmp(tbfuncionesServer[i].nf, nfn); if (res == 0) { // Encontrada la función que procesa el mensaje liberaMemoria(nfn); -- cgit v1.2.3-18-g5258