diff options
author | OpenGnSys Support Team <soporte-og@soleta.eu> | 2018-10-30 21:39:56 +0100 |
---|---|---|
committer | OpenGnSys Support Team <soporte-og@soleta.eu> | 2019-01-17 13:17:55 +0100 |
commit | 466574921283f219e6ab46a885719d8f45a8d620 (patch) | |
tree | 31060ef7643914b58e6b16f0297dee43994123b4 /sources/ogAdmServer.cpp | |
parent | 8e0216a2ca2b9ff7c8c58760d7d4f96aa246ee05 (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.
Diffstat (limited to 'sources/ogAdmServer.cpp')
-rw-r--r-- | sources/ogAdmServer.cpp | 5 |
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); |