Version 22.52: Oct 28, 2022 Code refactoring in plugins.

This commit is contained in:
acanas 2022-10-28 00:43:48 +02:00
parent a63d68f746
commit 063d4d0490
13 changed files with 85 additions and 86 deletions

View File

@ -605,7 +605,7 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia. TODO: Attach pdf files in multimedia.
*/ */
#define Log_PLATFORM_VERSION "SWAD 22.51 (2022-10-27)" #define Log_PLATFORM_VERSION "SWAD 22.52 (2022-10-28)"
#define CSS_FILE "swad22.49.4.css" #define CSS_FILE "swad22.49.4.css"
#define JS_FILE "swad22.49.js" #define JS_FILE "swad22.49.js"
/* /*
@ -616,6 +616,7 @@ Que al subir un fichero por defecto est
Al subir cosas para los grupos, en documentos, resltar más los grupos porque no son conscientes... Al subir cosas para los grupos, en documentos, resltar más los grupos porque no son conscientes...
Exportar listas en CSV. Exportar listas en CSV.
Version 22.52: Oct 28, 2022 Code refactoring in plugins. (333589 lines)
Version 22.51: Oct 27, 2022 New module swad_process. (333586 lines) Version 22.51: Oct 27, 2022 New module swad_process. (333586 lines)
Version 22.50.8: Oct 20, 2022 Code refactoring in files. (333498 lines) Version 22.50.8: Oct 20, 2022 Code refactoring in files. (333498 lines)
Version 22.50.7: Oct 20, 2022 Code refactoring in files. (333496 lines) Version 22.50.7: Oct 20, 2022 Code refactoring in files. (333496 lines)

View File

@ -36,6 +36,12 @@
#define Cns_MAX_CHARS_WWW (256 - 1) // 255: max. number of chars of a URL #define Cns_MAX_CHARS_WWW (256 - 1) // 255: max. number of chars of a URL
#define Cns_MAX_BYTES_WWW Cns_MAX_CHARS_WWW // 255 #define Cns_MAX_BYTES_WWW Cns_MAX_CHARS_WWW // 255
#define Cns_MAX_CHARS_IP (3 + 1 + 3 + 1 + 3 + 1 + 3) // 15: max. number of chars of an IP address
// Example: 255.255.255.255
// 3+1+3+1+3+1+3
// 123456789012345
#define Cns_MAX_BYTES_IP Cns_MAX_CHARS_IP // 15
#define Cns_MAX_CHARS_DATE (16 - 1) // 15 #define Cns_MAX_CHARS_DATE (16 - 1) // 15
#define Cns_MAX_BYTES_DATE ((Cns_MAX_CHARS_DATE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 255 #define Cns_MAX_BYTES_DATE ((Cns_MAX_CHARS_DATE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 255

View File

@ -135,7 +135,7 @@ void Cry_EncryptSHA512Base64 (const char *PlainText,
void Cry_CreateUniqueNameEncrypted (char *UniqueNameEncrypted) void Cry_CreateUniqueNameEncrypted (char *UniqueNameEncrypted)
{ {
static unsigned NumCall = 0; // When this function is called several times in the same execution of the program, each time a new name is created static unsigned NumCall = 0; // When this function is called several times in the same execution of the program, each time a new name is created
char UniqueNamePlain[Par_MAX_BYTES_IP + char UniqueNamePlain[Cns_MAX_BYTES_IP +
Cns_MAX_DECIMAL_DIGITS_LONG + Cns_MAX_DECIMAL_DIGITS_LONG +
Cns_MAX_DECIMAL_DIGITS_LONG + Cns_MAX_DECIMAL_DIGITS_LONG +
Cns_MAX_DECIMAL_DIGITS_UINT + 1]; Cns_MAX_DECIMAL_DIGITS_UINT + 1];

View File

@ -1199,7 +1199,7 @@ mysql> DESCRIBE exa_log;
"QstInd INT NOT NULL DEFAULT -1," "QstInd INT NOT NULL DEFAULT -1,"
"CanAnswer ENUM('N','Y') NOT NULL DEFAULT 'N'," "CanAnswer ENUM('N','Y') NOT NULL DEFAULT 'N',"
"ClickTime DATETIME NOT NULL," "ClickTime DATETIME NOT NULL,"
"IP CHAR(15) NOT NULL," // Par_MAX_BYTES_IP "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
"UNIQUE INDEX(LogCod)," "UNIQUE INDEX(LogCod),"
"UNIQUE INDEX(PrnCod,LogCod)," "UNIQUE INDEX(PrnCod,LogCod),"
"INDEX(ClickTime))"); "INDEX(ClickTime))");
@ -1445,7 +1445,7 @@ mysql> DESCRIBE fir_banned;
3 rows in set (0.00 sec) 3 rows in set (0.00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS fir_banned (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS fir_banned ("
"IP CHAR(15) NOT NULL," // Par_MAX_BYTES_IP "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
"BanTime DATETIME NOT NULL," "BanTime DATETIME NOT NULL,"
"UnbanTime DATETIME NOT NULL," "UnbanTime DATETIME NOT NULL,"
"INDEX(IP,UnbanTime)," "INDEX(IP,UnbanTime),"
@ -1465,7 +1465,7 @@ mysql> DESCRIBE fir_log;
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS fir_log (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS fir_log ("
"ClickTime DATETIME NOT NULL," "ClickTime DATETIME NOT NULL,"
"IP CHAR(15) NOT NULL," // Par_MAX_BYTES_IP "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
"INDEX(ClickTime)," "INDEX(ClickTime),"
"INDEX(IP))"); "INDEX(IP))");
@ -2072,7 +2072,7 @@ mysql> DESCRIBE log_recent;
"ClickTime DATETIME NOT NULL," "ClickTime DATETIME NOT NULL,"
"TimeToGenerate INT NOT NULL," "TimeToGenerate INT NOT NULL,"
"TimeToSend INT NOT NULL," "TimeToSend INT NOT NULL,"
"IP CHAR(15) NOT NULL," // Par_MAX_BYTES_IP "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
"UNIQUE INDEX(LogCod)," "UNIQUE INDEX(LogCod),"
"INDEX(ActCod)," "INDEX(ActCod),"
"INDEX(CtyCod)," "INDEX(CtyCod),"
@ -2463,7 +2463,7 @@ mysql> DESCRIBE plg_plugins;
"Logo VARCHAR(31) NOT NULL," // Plg_MAX_BYTES_PLUGIN_LOGO "Logo VARCHAR(31) NOT NULL," // Plg_MAX_BYTES_PLUGIN_LOGO
"AppKey VARCHAR(31) NOT NULL," // Plg_MAX_BYTES_PLUGIN_APP_KEY "AppKey VARCHAR(31) NOT NULL," // Plg_MAX_BYTES_PLUGIN_APP_KEY
"URL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW "URL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
"IP CHAR(15) NOT NULL," // Par_MAX_BYTES_IP "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
"UNIQUE INDEX(PlgCod))"); "UNIQUE INDEX(PlgCod))");
/***** Table prg_clipboards *****/ /***** Table prg_clipboards *****/
@ -2880,7 +2880,7 @@ mysql> DESCRIBE set_ip_settings;
10 rows in set (0,01 sec) 10 rows in set (0,01 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS set_ip_settings (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS set_ip_settings ("
"IP CHAR(15) NOT NULL," // Par_MAX_BYTES_IP "IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
"UsrCod INT NOT NULL DEFAULT -1," "UsrCod INT NOT NULL DEFAULT -1,"
"LastChange DATETIME NOT NULL," "LastChange DATETIME NOT NULL,"
"FirstDayOfWeek TINYINT NOT NULL DEFAULT 0," "FirstDayOfWeek TINYINT NOT NULL DEFAULT 0,"

View File

@ -235,7 +235,7 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
int QstInd; int QstInd;
bool UsrCouldAnswer; bool UsrCouldAnswer;
time_t ClickTimeUTC; time_t ClickTimeUTC;
char IP[Par_MAX_BYTES_IP + 1]; char IP[Cns_MAX_BYTES_IP + 1];
char *Id; char *Id;
size_t Length; size_t Length;
char Anonymized[14 + 1]; // ***…*** char Anonymized[14 + 1]; // ***…***

View File

@ -326,7 +326,6 @@ void Gbl_Cleanup (void)
Ctr_FreeListCenters (); Ctr_FreeListCenters ();
Cty_FreeListCountries (); Cty_FreeListCountries ();
Lnk_FreeListLinks (); Lnk_FreeListLinks ();
Plg_FreeListPlugins ();
for (Role = (Rol_Role_t) 0; for (Role = (Rol_Role_t) 0;
Role <= (Rol_Role_t) (Rol_NUM_ROLES - 1); Role <= (Rol_Role_t) (Rol_NUM_ROLES - 1);

View File

@ -122,11 +122,6 @@ struct Globals
char Str[Sch_MAX_BYTES_STRING_TO_FIND + 1]; char Str[Sch_MAX_BYTES_STRING_TO_FIND + 1];
bool LogSearch; bool LogSearch;
} Search; } Search;
struct
{
unsigned Num; // Number of plugins
struct Plg_Plugin *Lst; // List of plugins
} Plugins;
struct struct
{ {
bool IsWebService; // Must generate HTML output (IsWebService==false) or SOAP-XML output (IsWebService==true)? bool IsWebService; // Must generate HTML output (IsWebService==false) or SOAP-XML output (IsWebService==true)?

View File

@ -83,7 +83,7 @@ static struct
size_t LengthWithoutCRLF; size_t LengthWithoutCRLF;
size_t LengthWithCRLF; size_t LengthWithCRLF;
} Boundary; } Boundary;
char IP[Par_MAX_BYTES_IP + 1]; char IP[Cns_MAX_BYTES_IP + 1];
} Par_Params = } Par_Params =
{ {
.ContentReceivedByCGI = Act_CONT_NORM, .ContentReceivedByCGI = Act_CONT_NORM,

View File

@ -63,12 +63,6 @@ typedef enum
Par_PARAM_MULTIPLE, Par_PARAM_MULTIPLE,
} Par_ParamType_t; // Parameter is present only one time / multiple times } Par_ParamType_t; // Parameter is present only one time / multiple times
#define Par_MAX_CHARS_IP (3 + 1 + 3 + 1 + 3 + 1 + 3) // 15: max. number of chars of an IP address
// Example: 255.255.255.255
// 3+1+3+1+3+1+3
// 123456789012345
#define Par_MAX_BYTES_IP Par_MAX_CHARS_IP // 15
/*****************************************************************************/ /*****************************************************************************/
/***************************** Public prototypes *****************************/ /***************************** Public prototypes *****************************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -58,10 +58,20 @@ TODO: Check if web service is called from an authorized IP.
extern struct Globals Gbl; extern struct Globals Gbl;
/*****************************************************************************/ /*****************************************************************************/
/***************************** Private variables *****************************/ /******************************* Private types *******************************/
/*****************************************************************************/ /*****************************************************************************/
static struct Plg_Plugin *Plg_EditingPlg = NULL; // Static variable to keep the plugin being edited struct Plg_Plugins
{
unsigned Num; // Number of plugins
struct Plg_Plugin *Lst; // List of plugins
};
/*****************************************************************************/
/************************* Private global variables **************************/
/*****************************************************************************/
static struct Plg_Plugin *Plg_EditingPlg; // Plugin being edited
/*****************************************************************************/ /*****************************************************************************/
/***************************** Private prototypes ****************************/ /***************************** Private prototypes ****************************/
@ -69,9 +79,10 @@ static struct Plg_Plugin *Plg_EditingPlg = NULL; // Static variable to keep the
static void Plg_PutIconToEditPlugins (__attribute__((unused)) void *Args); static void Plg_PutIconToEditPlugins (__attribute__((unused)) void *Args);
static void Plg_EditPluginsInternal (void); static void Plg_EditPluginsInternal (void);
static void Plg_ListPluginsForEdition (void); static void Plg_FreeListPlugins (struct Plg_Plugins *Plugins);
static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins);
static void Plg_PutParamPlgCod (void *PlgCod); static void Plg_PutParamPlgCod (void *PlgCod);
static void Plg_GetListPlugins (void); static void Plg_GetListPlugins (struct Plg_Plugins *Plugins);
static void Plg_PutFormToCreatePlugin (void); static void Plg_PutFormToCreatePlugin (void);
static void Plg_PutHeadPlugins (void); static void Plg_PutHeadPlugins (void);
@ -91,6 +102,7 @@ void Plg_ListPlugins (void)
struct Plg_Plugin *Plg; struct Plg_Plugin *Plg;
char URL[Cns_MAX_BYTES_WWW + Cns_BYTES_SESSION_ID + 1]; char URL[Cns_MAX_BYTES_WWW + Cns_BYTES_SESSION_ID + 1];
char *Icon; char *Icon;
struct Plg_Plugins Plugins;
if (Gbl.Usrs.Me.Role.Logged != Rol_SYS_ADM) if (Gbl.Usrs.Me.Role.Logged != Rol_SYS_ADM)
{ {
@ -99,7 +111,7 @@ void Plg_ListPlugins (void)
} }
/***** Get list of plugins *****/ /***** Get list of plugins *****/
Plg_GetListPlugins (); Plg_GetListPlugins (&Plugins);
/***** Begin box and table *****/ /***** Begin box and table *****/
Box_BoxTableBegin (NULL,Txt_Plugins, Box_BoxTableBegin (NULL,Txt_Plugins,
@ -116,10 +128,10 @@ void Plg_ListPlugins (void)
/***** Write all plugins *****/ /***** Write all plugins *****/
for (NumPlg = 0; for (NumPlg = 0;
NumPlg < Gbl.Plugins.Num; NumPlg < Plugins.Num;
NumPlg++) NumPlg++)
{ {
Plg = &(Gbl.Plugins.Lst[NumPlg]); Plg = &Plugins.Lst[NumPlg];
snprintf (URL,sizeof (URL),"%s%s",Plg->URL,Gbl.Session.Id); snprintf (URL,sizeof (URL),"%s%s",Plg->URL,Gbl.Session.Id);
@ -132,7 +144,7 @@ void Plg_ListPlugins (void)
HTM_A_Begin ("href=\"%s\" title=\"%s\" target=\"_blank\"" HTM_A_Begin ("href=\"%s\" title=\"%s\" target=\"_blank\""
" class=\"DAT_%s\"", " class=\"DAT_%s\"",
URL,Plg->Name,The_GetSuffix ()); URL,Plg->Name,The_GetSuffix ());
if (asprintf (&Icon,"%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo) < 0) if (asprintf (&Icon,"%s24x24.gif",Plugins.Lst[NumPlg].Logo) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_IMG (Cfg_URL_ICON_PLUGINS_PUBLIC,Icon,Plg->Name, HTM_IMG (Cfg_URL_ICON_PLUGINS_PUBLIC,Icon,Plg->Name,
"class=\"ICO40x40\""); "class=\"ICO40x40\"");
@ -155,7 +167,7 @@ void Plg_ListPlugins (void)
Box_BoxTableEnd (); Box_BoxTableEnd ();
/***** Free list of plugins *****/ /***** Free list of plugins *****/
Plg_FreeListPlugins (); Plg_FreeListPlugins (&Plugins);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -187,9 +199,10 @@ void Plg_EditPlugins (void)
static void Plg_EditPluginsInternal (void) static void Plg_EditPluginsInternal (void)
{ {
extern const char *Txt_Plugins; extern const char *Txt_Plugins;
struct Plg_Plugins Plugins;
/***** Get list of plugins *****/ /***** Get list of plugins *****/
Plg_GetListPlugins (); Plg_GetListPlugins (&Plugins);
/***** Begin box *****/ /***** Begin box *****/
Box_BoxBegin (NULL,Txt_Plugins, Box_BoxBegin (NULL,Txt_Plugins,
@ -200,21 +213,21 @@ static void Plg_EditPluginsInternal (void)
Plg_PutFormToCreatePlugin (); Plg_PutFormToCreatePlugin ();
/***** List current plugins *****/ /***** List current plugins *****/
if (Gbl.Plugins.Num) if (Plugins.Num)
Plg_ListPluginsForEdition (); Plg_ListPluginsForEdition (&Plugins);
/***** End box *****/ /***** End box *****/
Box_BoxEnd (); Box_BoxEnd ();
/***** Free list of plugins *****/ /***** Free list of plugins *****/
Plg_FreeListPlugins (); Plg_FreeListPlugins (&Plugins);
} }
/*****************************************************************************/ /*****************************************************************************/
/************************* Get list of current plugins ***********************/ /************************* Get list of current plugins ***********************/
/*****************************************************************************/ /*****************************************************************************/
static void Plg_GetListPlugins (void) static void Plg_GetListPlugins (struct Plg_Plugins *Plugins)
{ {
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
@ -222,19 +235,19 @@ static void Plg_GetListPlugins (void)
struct Plg_Plugin *Plg; struct Plg_Plugin *Plg;
/***** Get plugins from database *****/ /***** Get plugins from database *****/
if ((Gbl.Plugins.Num = Plg_DB_GetListPlugins (&mysql_res))) // Plugins found... if ((Plugins->Num = Plg_DB_GetListPlugins (&mysql_res))) // Plugins found...
{ {
/***** Create list with plugins *****/ /***** Create list with plugins *****/
if ((Gbl.Plugins.Lst = calloc ((size_t) Gbl.Plugins.Num, if ((Plugins->Lst = calloc ((size_t) Plugins->Num,
sizeof (*Gbl.Plugins.Lst))) == NULL) sizeof (*Plugins->Lst))) == NULL)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
/***** Get the plugins *****/ /***** Get the plugins *****/
for (NumPlg = 0; for (NumPlg = 0;
NumPlg < Gbl.Plugins.Num; NumPlg < Plugins->Num;
NumPlg++) NumPlg++)
{ {
Plg = &(Gbl.Plugins.Lst[NumPlg]); Plg = &Plugins->Lst[NumPlg];
/* Get next plugin */ /* Get next plugin */
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);
@ -253,6 +266,8 @@ static void Plg_GetListPlugins (void)
Str_Copy (Plg->IP ,row[6],sizeof (Plg->IP ) - 1); Str_Copy (Plg->IP ,row[6],sizeof (Plg->IP ) - 1);
} }
} }
else
Plugins->Lst = NULL;
/***** Free structure that stores the query result *****/ /***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res); DB_FreeMySQLResult (&mysql_res);
@ -310,22 +325,23 @@ bool Plg_GetDataOfPluginByCod (struct Plg_Plugin *Plg)
/*************************** Free list of plugins ****************************/ /*************************** Free list of plugins ****************************/
/*****************************************************************************/ /*****************************************************************************/
void Plg_FreeListPlugins (void) static void Plg_FreeListPlugins (struct Plg_Plugins *Plugins)
{ {
if (Gbl.Plugins.Lst) if (Plugins->Num)
{ if (Plugins->Lst)
/***** Free memory used by the list of plugins *****/ {
free (Gbl.Plugins.Lst); /***** Free memory used by the list of plugins *****/
Gbl.Plugins.Lst = NULL; free (Plugins->Lst);
Gbl.Plugins.Num = 0; Plugins->Lst = NULL;
} Plugins->Num = 0;
}
} }
/*****************************************************************************/ /*****************************************************************************/
/****************************** List all plugins *****************************/ /****************************** List all plugins *****************************/
/*****************************************************************************/ /*****************************************************************************/
static void Plg_ListPluginsForEdition (void) static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins)
{ {
unsigned NumPlg; unsigned NumPlg;
struct Plg_Plugin *Plg; struct Plg_Plugin *Plg;
@ -339,10 +355,10 @@ static void Plg_ListPluginsForEdition (void)
/***** Write all plugins *****/ /***** Write all plugins *****/
for (NumPlg = 0; for (NumPlg = 0;
NumPlg < Gbl.Plugins.Num; NumPlg < Plugins->Num;
NumPlg++) NumPlg++)
{ {
Plg = &Gbl.Plugins.Lst[NumPlg]; Plg = &Plugins->Lst[NumPlg];
/* Row begin */ /* Row begin */
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -361,9 +377,9 @@ static void Plg_ListPluginsForEdition (void)
/* Plugin logo */ /* Plugin logo */
// TODO: Change plugin icons to 32x32 // TODO: Change plugin icons to 32x32
HTM_TD_Begin ("class=\"CM\" style=\"width:45px;\""); HTM_TD_Begin ("class=\"CM\" style=\"width:45px;\"");
if (asprintf (&Icon,"%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo) < 0) if (asprintf (&Icon,"%s24x24.gif",Plugins->Lst[NumPlg].Logo) < 0)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
HTM_IMG (Cfg_URL_ICON_PLUGINS_PUBLIC,Icon,Gbl.Plugins.Lst[NumPlg].Name, HTM_IMG (Cfg_URL_ICON_PLUGINS_PUBLIC,Icon,Plugins->Lst[NumPlg].Name,
"class=\"ICO40x40\""); "class=\"ICO40x40\"");
free (Icon); free (Icon);
HTM_TD_End (); HTM_TD_End ();
@ -426,7 +442,7 @@ static void Plg_ListPluginsForEdition (void)
HTM_TD_Begin ("class=\"CM\""); HTM_TD_Begin ("class=\"CM\"");
Frm_BeginForm (ActChgPlgIP); Frm_BeginForm (ActChgPlgIP);
Plg_PutParamPlgCod (&Plg->PlgCod); Plg_PutParamPlgCod (&Plg->PlgCod);
HTM_INPUT_TEXT ("IP",Par_MAX_CHARS_IP,Plg->IP,HTM_SUBMIT_ON_CHANGE, HTM_INPUT_TEXT ("IP",Cns_MAX_CHARS_IP,Plg->IP,HTM_SUBMIT_ON_CHANGE,
"size=\"10\" class=\"INPUT_%s\"", "size=\"10\" class=\"INPUT_%s\"",
The_GetSuffix ()); The_GetSuffix ());
Frm_EndForm (); Frm_EndForm ();
@ -626,7 +642,8 @@ void Plg_ChangePlgLogo (void)
Ale_CreateAlertYouCanNotLeaveFieldEmpty (); Ale_CreateAlertYouCanNotLeaveFieldEmpty ();
/***** Update logo *****/ /***** Update logo *****/
Str_Copy (Plg_EditingPlg->Logo,NewLogo,sizeof (Plg_EditingPlg->Logo) - 1); Str_Copy (Plg_EditingPlg->Logo,NewLogo,
sizeof (Plg_EditingPlg->Logo) - 1);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -667,7 +684,8 @@ void Plg_ChangePlgAppKey (void)
Ale_CreateAlertYouCanNotLeaveFieldEmpty (); Ale_CreateAlertYouCanNotLeaveFieldEmpty ();
/***** Update app key *****/ /***** Update app key *****/
Str_Copy (Plg_EditingPlg->AppKey,NewAppKey,sizeof (Plg_EditingPlg->AppKey) - 1); Str_Copy (Plg_EditingPlg->AppKey,NewAppKey,
sizeof (Plg_EditingPlg->AppKey) - 1);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -708,7 +726,8 @@ void Plg_ChangePlgURL (void)
Ale_CreateAlertYouCanNotLeaveFieldEmpty (); Ale_CreateAlertYouCanNotLeaveFieldEmpty ();
/***** Update URL *****/ /***** Update URL *****/
Str_Copy (Plg_EditingPlg->URL,NewURL,sizeof (Plg_EditingPlg->URL) - 1); Str_Copy (Plg_EditingPlg->URL,NewURL,
sizeof (Plg_EditingPlg->URL) - 1);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -718,7 +737,7 @@ void Plg_ChangePlgURL (void)
void Plg_ChangePlgIP (void) void Plg_ChangePlgIP (void)
{ {
extern const char *Txt_The_new_IP_address_is_X; extern const char *Txt_The_new_IP_address_is_X;
char NewIP[Par_MAX_BYTES_IP + 1]; char NewIP[Cns_MAX_BYTES_IP + 1];
/***** Plugin constructor *****/ /***** Plugin constructor *****/
Plg_EditingPluginConstructor (); Plg_EditingPluginConstructor ();
@ -729,7 +748,7 @@ void Plg_ChangePlgIP (void)
Err_WrongPluginExit (); Err_WrongPluginExit ();
/* Get the new IP for the plugin */ /* Get the new IP for the plugin */
Par_GetParToText ("IP",NewIP,Par_MAX_BYTES_IP); Par_GetParToText ("IP",NewIP,Cns_MAX_BYTES_IP);
/***** Get plugin data from the database *****/ /***** Get plugin data from the database *****/
Plg_GetDataOfPluginByCod (Plg_EditingPlg); Plg_GetDataOfPluginByCod (Plg_EditingPlg);
@ -851,7 +870,7 @@ static void Plg_PutFormToCreatePlugin (void)
/***** Plugin IP address *****/ /***** Plugin IP address *****/
HTM_TD_Begin ("class=\"CM\""); HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_TEXT ("IP",Par_MAX_CHARS_IP,Plg_EditingPlg->IP, HTM_INPUT_TEXT ("IP",Cns_MAX_CHARS_IP,Plg_EditingPlg->IP,
HTM_DONT_SUBMIT_ON_CHANGE, HTM_DONT_SUBMIT_ON_CHANGE,
"size=\"10\" class=\"INPUT_%s\"" "size=\"10\" class=\"INPUT_%s\""
" required=\"required\"", " required=\"required\"",
@ -910,23 +929,13 @@ void Plg_ReceiveFormNewPlg (void)
Plg_EditingPluginConstructor (); Plg_EditingPluginConstructor ();
/***** Get parameters from form *****/ /***** Get parameters from form *****/
/* Get plugin name */ /* Get plugin name, description, logo, application key, URL, IP address */
Par_GetParToText ("Name",Plg_EditingPlg->Name,Plg_MAX_BYTES_PLUGIN_NAME); Par_GetParToText ("Name" ,Plg_EditingPlg->Name ,Plg_MAX_BYTES_PLUGIN_NAME);
/* Get plugin description */
Par_GetParToText ("Description",Plg_EditingPlg->Description,Plg_MAX_BYTES_PLUGIN_DESCRIPTION); Par_GetParToText ("Description",Plg_EditingPlg->Description,Plg_MAX_BYTES_PLUGIN_DESCRIPTION);
Par_GetParToText ("Logo" ,Plg_EditingPlg->Logo ,Plg_MAX_BYTES_PLUGIN_LOGO);
/* Get plugin logo */ Par_GetParToText ("AppKey" ,Plg_EditingPlg->AppKey ,Plg_MAX_BYTES_PLUGIN_APP_KEY);
Par_GetParToText ("Logo",Plg_EditingPlg->Logo,Plg_MAX_BYTES_PLUGIN_LOGO); Par_GetParToText ("URL" ,Plg_EditingPlg->URL ,Cns_MAX_BYTES_WWW);
Par_GetParToText ("IP" ,Plg_EditingPlg->IP ,Cns_MAX_BYTES_IP);
/* Get plugin application key */
Par_GetParToText ("AppKey",Plg_EditingPlg->AppKey,Plg_MAX_BYTES_PLUGIN_APP_KEY);
/* Get plugin URL */
Par_GetParToText ("URL",Plg_EditingPlg->URL,Cns_MAX_BYTES_WWW);
/* Get plugin IP address */
Par_GetParToText ("IP",Plg_EditingPlg->IP,Par_MAX_BYTES_IP);
if (Plg_EditingPlg->Name[0]) // If there's a plugin name if (Plg_EditingPlg->Name[0]) // If there's a plugin name
{ {
@ -963,12 +972,8 @@ void Plg_ReceiveFormNewPlg (void)
static void Plg_EditingPluginConstructor (void) static void Plg_EditingPluginConstructor (void)
{ {
/***** Pointer must be NULL *****/
if (Plg_EditingPlg != NULL)
Err_WrongPluginExit ();
/***** Allocate memory for plugin *****/ /***** Allocate memory for plugin *****/
if ((Plg_EditingPlg = malloc (sizeof (*Plg_EditingPlg))) == NULL) if ((Plg_EditingPlg = malloc (sizeof (struct Plg_Plugin))) == NULL)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
/***** Reset plugin *****/ /***** Reset plugin *****/

View File

@ -57,7 +57,7 @@ struct Plg_Plugin
char Logo[Plg_MAX_BYTES_PLUGIN_LOGO + 1]; char Logo[Plg_MAX_BYTES_PLUGIN_LOGO + 1];
char AppKey[Plg_MAX_BYTES_PLUGIN_APP_KEY + 1]; char AppKey[Plg_MAX_BYTES_PLUGIN_APP_KEY + 1];
char URL[Cns_MAX_BYTES_WWW + 1]; char URL[Cns_MAX_BYTES_WWW + 1];
char IP[Par_MAX_BYTES_IP + 1]; char IP[Cns_MAX_BYTES_IP + 1];
}; };
/*****************************************************************************/ /*****************************************************************************/
@ -67,7 +67,6 @@ struct Plg_Plugin
void Plg_ListPlugins (void); void Plg_ListPlugins (void);
void Plg_EditPlugins (void); void Plg_EditPlugins (void);
bool Plg_GetDataOfPluginByCod (struct Plg_Plugin *Plg); bool Plg_GetDataOfPluginByCod (struct Plg_Plugin *Plg);
void Plg_FreeListPlugins (void);
long Plg_GetParamPlgCod (void); long Plg_GetParamPlgCod (void);
void Plg_RemovePlugin (void); void Plg_RemovePlugin (void);
void Plg_RenamePlugin (void); void Plg_RenamePlugin (void);

View File

@ -127,7 +127,7 @@ void Plg_DB_ChangeURL (long PlgCod,
/*****************************************************************************/ /*****************************************************************************/
void Plg_DB_ChangeIP (long PlgCod, void Plg_DB_ChangeIP (long PlgCod,
const char NewIP[Par_MAX_BYTES_IP + 1]) const char NewIP[Cns_MAX_BYTES_IP + 1])
{ {
DB_QueryUPDATE ("can not update the IP address of a plugin", DB_QueryUPDATE ("can not update the IP address of a plugin",
"UPDATE plg_plugins" "UPDATE plg_plugins"

View File

@ -47,7 +47,7 @@ void Plg_DB_ChangeAppKey (long PlgCod,
void Plg_DB_ChangeURL (long PlgCod, void Plg_DB_ChangeURL (long PlgCod,
const char NewURL[Cns_MAX_BYTES_WWW + 1]); const char NewURL[Cns_MAX_BYTES_WWW + 1]);
void Plg_DB_ChangeIP (long PlgCod, void Plg_DB_ChangeIP (long PlgCod,
const char NewIP[Par_MAX_BYTES_IP + 1]); const char NewIP[Cns_MAX_BYTES_IP + 1]);
unsigned Plg_DB_GetListPlugins (MYSQL_RES **mysql_res); unsigned Plg_DB_GetListPlugins (MYSQL_RES **mysql_res);
unsigned Plg_DB_GetDataOfPluginByCod (MYSQL_RES **mysql_res,long PlgCod); unsigned Plg_DB_GetDataOfPluginByCod (MYSQL_RES **mysql_res,long PlgCod);