summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOpenGnSys Support Team <soporte-og@soleta.eu>2018-10-30 21:39:56 +0100
committerOpenGnSys Support Team <soporte-og@soleta.eu>2019-01-17 13:17:55 +0100
commit466574921283f219e6ab46a885719d8f45a8d620 (patch)
tree31060ef7643914b58e6b16f0297dee43994123b4
parent8e0216a2ca2b9ff7c8c58760d7d4f96aa246ee05 (diff)
#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.
-rw-r--r--sources/ogAdmServer.cpp5
1 files changed, 3 insertions, 2 deletions
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);