Version 16.155.24

This commit is contained in:
Antonio Cañas Vargas 2017-03-13 14:22:36 +01:00
parent 7a8a6cc9ec
commit e524c33078
29 changed files with 222 additions and 200 deletions

View File

@ -910,7 +910,7 @@ CREATE TABLE IF NOT EXISTS social_comments (
PubCod BIGINT NOT NULL, PubCod BIGINT NOT NULL,
Content LONGTEXT NOT NULL, Content LONGTEXT NOT NULL,
ImageName VARCHAR(43) NOT NULL, ImageName VARCHAR(43) NOT NULL,
ImageTitle VARCHAR(255) NOT NULL, ImageTitle VARCHAR(2047) NOT NULL,
ImageURL VARCHAR(255) NOT NULL, ImageURL VARCHAR(255) NOT NULL,
UNIQUE INDEX(PubCod), UNIQUE INDEX(PubCod),
FULLTEXT(Content)) ENGINE = MYISAM; FULLTEXT(Content)) ENGINE = MYISAM;
@ -958,7 +958,7 @@ CREATE TABLE IF NOT EXISTS social_posts (
PstCod INT NOT NULL AUTO_INCREMENT, PstCod INT NOT NULL AUTO_INCREMENT,
Content LONGTEXT NOT NULL, Content LONGTEXT NOT NULL,
ImageName VARCHAR(43) NOT NULL, ImageName VARCHAR(43) NOT NULL,
ImageTitle VARCHAR(255) NOT NULL, ImageTitle VARCHAR(2047) NOT NULL,
ImageURL VARCHAR(255) NOT NULL, ImageURL VARCHAR(255) NOT NULL,
UNIQUE INDEX(PstCod), UNIQUE INDEX(PstCod),
FULLTEXT(Content)) ENGINE = MYISAM; FULLTEXT(Content)) ENGINE = MYISAM;

View File

@ -552,7 +552,7 @@ bool Acc_CreateMyNewAccountAndLogIn (void)
{ {
char NewNicknameWithoutArroba[Nck_MAX_BYTES_NICKNAME_FROM_FORM + 1]; char NewNicknameWithoutArroba[Nck_MAX_BYTES_NICKNAME_FROM_FORM + 1];
char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1]; char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1];
char NewEncryptedPassword[Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
if (Acc_GetParamsNewAccount (NewNicknameWithoutArroba,NewEmail,NewEncryptedPassword)) if (Acc_GetParamsNewAccount (NewNicknameWithoutArroba,NewEmail,NewEncryptedPassword))
{ {
@ -562,7 +562,7 @@ bool Acc_CreateMyNewAccountAndLogIn (void)
/***** Set password to the password typed by the user *****/ /***** Set password to the password typed by the user *****/
Str_Copy (Gbl.Usrs.Me.UsrDat.Password,NewEncryptedPassword, Str_Copy (Gbl.Usrs.Me.UsrDat.Password,NewEncryptedPassword,
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
/***** User does not exist in the platform, so create him/her! *****/ /***** User does not exist in the platform, so create him/her! *****/
Acc_CreateNewUsr (&Gbl.Usrs.Me.UsrDat, Acc_CreateNewUsr (&Gbl.Usrs.Me.UsrDat,
@ -966,7 +966,7 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
extern const char *Txt_Briefcase_of_THE_USER_X_has_been_removed; extern const char *Txt_Briefcase_of_THE_USER_X_has_been_removed;
extern const char *Txt_Photo_of_THE_USER_X_has_been_removed; extern const char *Txt_Photo_of_THE_USER_X_has_been_removed;
extern const char *Txt_Record_card_of_THE_USER_X_has_been_removed; extern const char *Txt_Record_card_of_THE_USER_X_has_been_removed;
char Query[1024]; char Query[128];
bool PhotoRemoved = false; bool PhotoRemoved = false;
/***** Remove the works zones of the user in all courses *****/ /***** Remove the works zones of the user in all courses *****/
@ -982,8 +982,7 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
Grp_RemUsrFromAllGrps (UsrDat,QuietOrVerbose); Grp_RemUsrFromAllGrps (UsrDat,QuietOrVerbose);
/***** Remove user's requests for inscription *****/ /***** Remove user's requests for inscription *****/
sprintf (Query,"DELETE FROM crs_usr_requests" sprintf (Query,"DELETE FROM crs_usr_requests WHERE UsrCod='%ld'",
" WHERE UsrCod='%ld'",
UsrDat->UsrCod); UsrDat->UsrCod);
DB_QueryDELETE (Query,"can not remove user's requests for inscription"); DB_QueryDELETE (Query,"can not remove user's requests for inscription");
@ -991,8 +990,7 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
Dup_RemoveUsrFromDuplicated (UsrDat->UsrCod); Dup_RemoveUsrFromDuplicated (UsrDat->UsrCod);
/***** Remove user from the table of courses and users *****/ /***** Remove user from the table of courses and users *****/
sprintf (Query,"DELETE FROM crs_usr" sprintf (Query,"DELETE FROM crs_usr WHERE UsrCod='%ld'",
" WHERE UsrCod='%ld'",
UsrDat->UsrCod); UsrDat->UsrCod);
DB_QueryDELETE (Query,"can not remove a user from all courses"); DB_QueryDELETE (Query,"can not remove a user from all courses");
@ -1004,8 +1002,7 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
} }
/***** Remove user as administrator of any degree *****/ /***** Remove user as administrator of any degree *****/
sprintf (Query,"DELETE FROM admin" sprintf (Query,"DELETE FROM admin WHERE UsrCod='%ld'",
" WHERE UsrCod='%ld'",
UsrDat->UsrCod); UsrDat->UsrCod);
DB_QueryDELETE (Query,"can not remove a user as administrator"); DB_QueryDELETE (Query,"can not remove a user as administrator");

View File

@ -4782,7 +4782,7 @@ static void Act_FormStartInternal (Act_Action_t NextAction,bool PutParameterLoca
const char *Id,const char *Anchor,const char *OnSubmit) const char *Id,const char *Anchor,const char *OnSubmit)
{ {
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES]; extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
char ParamsStr[256 + 256 + Ses_LENGTH_SESSION_ID + 256]; char ParamsStr[256 + 256 + Ses_BYTES_SESSION_ID + 256];
if (!Gbl.Form.Inside) if (!Gbl.Form.Inside)
{ {
@ -4818,12 +4818,12 @@ static void Act_FormStartInternal (Act_Action_t NextAction,bool PutParameterLoca
} }
} }
// Params should have space for 256 + 256 + Ses_LENGTH_SESSION_ID + 256 bytes // Params should have space for 256 + 256 + Ses_BYTES_SESSION_ID + 256 bytes
void Act_SetParamsForm (char *ParamsStr,Act_Action_t NextAction, void Act_SetParamsForm (char *ParamsStr,Act_Action_t NextAction,
bool PutParameterLocationIfNoSesion) bool PutParameterLocationIfNoSesion)
{ {
char ParamAction[256]; char ParamAction[256];
char ParamSession[256 + Ses_LENGTH_SESSION_ID]; char ParamSession[256 + Ses_BYTES_SESSION_ID];
char ParamLocation[256]; char ParamLocation[256];
ParamAction[0] = '\0'; ParamAction[0] = '\0';

View File

@ -2282,7 +2282,8 @@ void Att_RegisterStudentsInAttEvent (void)
Ptr = Gbl.Usrs.Select.Std; Ptr = Gbl.Usrs.Select.Std;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrData.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,UsrData.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&UsrData); Usr_GetUsrCodFromEncryptedUsrCod (&UsrData);
if (UsrData.UsrCod > 0) // Student exists in database if (UsrData.UsrCod > 0) // Student exists in database
/***** Mark student to not be removed *****/ /***** Mark student to not be removed *****/
@ -2836,7 +2837,8 @@ static void Att_GetListSelectedUsrCods (unsigned NumStdsInList,long **LstSelecte
NumStd < NumStdsInList && *Ptr; NumStd < NumStdsInList && *Ptr;
NumStd++) NumStd++)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat); Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat);
(*LstSelectedUsrCods)[NumStd] = UsrDat.UsrCod; (*LstSelectedUsrCods)[NumStd] = UsrDat.UsrCod;
} }

View File

@ -189,7 +189,7 @@ static unsigned Cal_GetParamFirstDayOfWeek (void)
void Cal_DrawCurrentMonth (void) void Cal_DrawCurrentMonth (void)
{ {
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES]; extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
char ParamsStr[256 + 256 + Ses_LENGTH_SESSION_ID + 256]; char ParamsStr[256 + 256 + Ses_BYTES_SESSION_ID + 256];
/***** Get list of holidays *****/ /***** Get list of holidays *****/
if (!Gbl.Hlds.LstIsRead) if (!Gbl.Hlds.LstIsRead)
@ -289,7 +289,7 @@ static void Cal_DrawCalendar (Act_Action_t ActionSeeCalendar,
{ {
extern const char *Hlp_Calendar; extern const char *Hlp_Calendar;
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES]; extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
char ParamsStr[256 + 256 + Ses_LENGTH_SESSION_ID + 256]; char ParamsStr[256 + 256 + Ses_BYTES_SESSION_ID + 256];
/***** Get list of holidays *****/ /***** Get list of holidays *****/
if (!Gbl.Hlds.LstIsRead) if (!Gbl.Hlds.LstIsRead)

View File

@ -200,6 +200,8 @@
// TODO: Subject in msg_content and msg_content_deleted should be VARCHAR(255) in order to be copied directly to SummaryStr // TODO: Subject in msg_content and msg_content_deleted should be VARCHAR(255) in order to be copied directly to SummaryStr
// TODO: Check how to get a summary of a social post or comments // TODO: Check how to get a summary of a social post or comments
// TODO: Check default values for ImageName, ImageTitle and ImageURL in database tables
// TODO: En la agenda debe poder repetirse el nombre del evento // TODO: En la agenda debe poder repetirse el nombre del evento
// TODO: Cuando hay un fallo al rellenar el formulario de nuevo evento en la agenda se borran los datos // TODO: Cuando hay un fallo al rellenar el formulario de nuevo evento en la agenda se borran los datos
@ -207,15 +209,20 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.155.23 (2017-03-13)" #define Log_PLATFORM_VERSION "SWAD 16.155.24 (2017-03-13)"
#define CSS_FILE "swad16.147.css" #define CSS_FILE "swad16.147.css"
#define JS_FILE "swad16.144.js" #define JS_FILE "swad16.144.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/* /*
Version 16.155.23:Mar 13, 2017 Adjusting size of database fields. (216957 lines) Version 16.155.24:Mar 13, 2017 Adjusting size of database fields. (216988 lines)
2 changes necessary in database: 2 changes necessary in database:
ALTER TABLE social_comments CHANGE COLUMN ImageTitle ImageTitle VARCHAR(2047) NOT NULL;
ALTER TABLE social_posts CHANGE COLUMN ImageTitle ImageTitle VARCHAR(2047) NOT NULL;
Version 16.155.23:Mar 13, 2017 Adjusting size of database fields. (216957 lines)
4 changes necessary in database:
ALTER TABLE plugins CHANGE COLUMN Name Name VARCHAR(511) NOT NULL; ALTER TABLE plugins CHANGE COLUMN Name Name VARCHAR(511) NOT NULL;
ALTER TABLE plugins CHANGE COLUMN Description Description VARCHAR(2047) NOT NULL; ALTER TABLE plugins CHANGE COLUMN Description Description VARCHAR(2047) NOT NULL;
ALTER TABLE plugins CHANGE COLUMN Logo Logo VARCHAR(31) NOT NULL; ALTER TABLE plugins CHANGE COLUMN Logo Logo VARCHAR(31) NOT NULL;

View File

@ -641,7 +641,7 @@ void Con_UpdateMeInConnectedList (void)
void Con_RemoveOldConnected (void) void Con_RemoveOldConnected (void)
{ {
char Query[512]; char Query[256];
/***** Remove old users from connected list *****/ /***** Remove old users from connected list *****/
sprintf (Query,"DELETE FROM connected WHERE UsrCod NOT IN" sprintf (Query,"DELETE FROM connected WHERE UsrCod NOT IN"

View File

@ -1160,7 +1160,7 @@ mysql> DESCRIBE forum_post;
"NumNotif INT NOT NULL DEFAULT 0," "NumNotif INT NOT NULL DEFAULT 0,"
"Subject TEXT NOT NULL," // Cns_MAX_BYTES_SUBJECT "Subject TEXT NOT NULL," // Cns_MAX_BYTES_SUBJECT
"Content LONGTEXT NOT NULL," // Cns_MAX_BYTES_LONG_TEXT "Content LONGTEXT NOT NULL," // Cns_MAX_BYTES_LONG_TEXT
"ImageName VARCHAR(43) NOT NULL," // Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 "ImageName VARCHAR(43) NOT NULL," // Img_BYTES_NAME
"ImageTitle VARCHAR(2047) NOT NULL," // Img_MAX_BYTES_TITLE "ImageTitle VARCHAR(2047) NOT NULL," // Img_MAX_BYTES_TITLE
"ImageURL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW "ImageURL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
"UNIQUE INDEX(PstCod)," "UNIQUE INDEX(PstCod),"
@ -1246,7 +1246,7 @@ mysql> DESCRIBE hidden_params;
4 rows in set (0.00 sec) 4 rows in set (0.00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS hidden_params (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS hidden_params ("
"SessionId CHAR(43) NOT NULL," "SessionId CHAR(43) NOT NULL," // Ses_BYTES_SESSION_ID
"Action INT NOT NULL," "Action INT NOT NULL,"
"ParamName VARCHAR(255) NOT NULL," "ParamName VARCHAR(255) NOT NULL,"
"ParamValue TEXT NOT NULL," "ParamValue TEXT NOT NULL,"
@ -1565,7 +1565,7 @@ mysql> DESCRIBE msg_content;
"MsgCod INT NOT NULL AUTO_INCREMENT," "MsgCod INT NOT NULL AUTO_INCREMENT,"
"Subject TEXT NOT NULL," "Subject TEXT NOT NULL,"
"Content LONGTEXT NOT NULL," "Content LONGTEXT NOT NULL,"
"ImageName VARCHAR(43) NOT NULL DEFAULT ''," // Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 "ImageName VARCHAR(43) NOT NULL DEFAULT ''," // Img_BYTES_NAME
"ImageTitle VARCHAR(2047) NOT NULL DEFAULT ''," // Img_MAX_BYTES_TITLE "ImageTitle VARCHAR(2047) NOT NULL DEFAULT ''," // Img_MAX_BYTES_TITLE
"ImageURL VARCHAR(255) NOT NULL DEFAULT ''," // Cns_MAX_BYTES_WWW "ImageURL VARCHAR(255) NOT NULL DEFAULT ''," // Cns_MAX_BYTES_WWW
"UNIQUE INDEX(MsgCod)," "UNIQUE INDEX(MsgCod),"
@ -1590,7 +1590,7 @@ mysql> DESCRIBE msg_content_deleted;
"MsgCod INT NOT NULL," "MsgCod INT NOT NULL,"
"Subject TEXT NOT NULL," "Subject TEXT NOT NULL,"
"Content LONGTEXT NOT NULL," "Content LONGTEXT NOT NULL,"
"ImageName VARCHAR(43) NOT NULL DEFAULT ''," // Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 "ImageName VARCHAR(43) NOT NULL DEFAULT ''," // Img_BYTES_NAME
"ImageTitle VARCHAR(2047) NOT NULL DEFAULT ''," // Img_MAX_BYTES_TITLE "ImageTitle VARCHAR(2047) NOT NULL DEFAULT ''," // Img_MAX_BYTES_TITLE
"ImageURL VARCHAR(255) NOT NULL DEFAULT ''," // Cns_MAX_BYTES_WWW "ImageURL VARCHAR(255) NOT NULL DEFAULT ''," // Cns_MAX_BYTES_WWW
"UNIQUE INDEX(MsgCod)," "UNIQUE INDEX(MsgCod),"
@ -1823,7 +1823,7 @@ mysql> DESCRIBE pending_passwd;
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS pending_passwd (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS pending_passwd ("
"UsrCod INT NOT NULL," "UsrCod INT NOT NULL,"
"PendingPassword CHAR(86) COLLATE latin1_bin NOT NULL," // Pwd_MAX_BYTES_ENCRYPTED_PASSWORD "PendingPassword CHAR(86) COLLATE latin1_bin NOT NULL," // Pwd_BYTES_ENCRYPTED_PASSWORD
"DateAndTime DATETIME NOT NULL," "DateAndTime DATETIME NOT NULL,"
"PRIMARY KEY (UsrCod))"); "PRIMARY KEY (UsrCod))");
@ -1902,49 +1902,49 @@ mysql> DESCRIBE sessions;
18 rows in set (0,00 sec) 18 rows in set (0,00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS sessions (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS sessions ("
"SessionId CHAR(43) NOT NULL," "SessionId CHAR(43) NOT NULL," // Ses_BYTES_SESSION_ID
"UsrCod INT NOT NULL," "UsrCod INT NOT NULL,"
"Password CHAR(86) COLLATE latin1_bin NOT NULL," "Password CHAR(86) COLLATE latin1_bin NOT NULL," // Pwd_BYTES_ENCRYPTED_PASSWORD
"Role TINYINT NOT NULL DEFAULT 0," "Role TINYINT NOT NULL DEFAULT 0,"
"CtyCod INT NOT NULL DEFAULT -1," "CtyCod INT NOT NULL DEFAULT -1,"
"InsCod INT NOT NULL DEFAULT -1," "InsCod INT NOT NULL DEFAULT -1,"
"CtrCod INT NOT NULL DEFAULT -1," "CtrCod INT NOT NULL DEFAULT -1,"
"DegCod INT NOT NULL DEFAULT -1," "DegCod INT NOT NULL DEFAULT -1,"
"CrsCod INT NOT NULL DEFAULT -1," "CrsCod INT NOT NULL DEFAULT -1,"
"LastTime DATETIME NOT NULL," "LastTime DATETIME NOT NULL,"
"LastRefresh DATETIME NOT NULL," "LastRefresh DATETIME NOT NULL,"
"FirstPubCod BIGINT NOT NULL DEFAULT 0," "FirstPubCod BIGINT NOT NULL DEFAULT 0,"
"LastPubCod BIGINT NOT NULL DEFAULT 0," "LastPubCod BIGINT NOT NULL DEFAULT 0,"
"LastPageMsgRcv INT NOT NULL DEFAULT 1," "LastPageMsgRcv INT NOT NULL DEFAULT 1,"
"LastPageMsgSnt INT NOT NULL DEFAULT 1," "LastPageMsgSnt INT NOT NULL DEFAULT 1,"
"WhatToSearch TINYINT NOT NULL DEFAULT 0," "WhatToSearch TINYINT NOT NULL DEFAULT 0,"
"SearchStr VARCHAR(2047) NOT NULL DEFAULT ''," // Sch_MAX_BYTES_STRING_TO_FIND "SearchStr VARCHAR(2047) NOT NULL DEFAULT ''," // Sch_MAX_BYTES_STRING_TO_FIND
"SideCols TINYINT NOT NULL DEFAULT 3," "SideCols TINYINT NOT NULL DEFAULT 3,"
"UNIQUE INDEX(SessionId)," "UNIQUE INDEX(SessionId),"
"INDEX(UsrCod))"); "INDEX(UsrCod))");
/***** Table social_comments *****/ /***** Table social_comments *****/
/* /*
mysql> DESCRIBE social_comments; mysql> DESCRIBE social_comments;
+------------+--------------+------+-----+---------+-------+ +------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra | | Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+ +------------+---------------+------+-----+---------+-------+
| PubCod | bigint(20) | NO | PRI | NULL | | | PubCod | bigint(20) | NO | PRI | NULL | |
| Content | longtext | NO | MUL | NULL | | | Content | longtext | NO | MUL | NULL | |
| ImageName | varchar(43) | NO | | NULL | | | ImageName | varchar(43) | NO | | NULL | |
| ImageTitle | varchar(255) | NO | | NULL | | | ImageTitle | varchar(2047) | NO | | NULL | |
| ImageURL | varchar(255) | NO | | NULL | | | ImageURL | varchar(255) | NO | | NULL | |
+------------+--------------+------+-----+---------+-------+ +------------+---------------+------+-----+---------+-------+
5 rows in set (0.00 sec) 5 rows in set (0,00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_comments (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_comments ("
"PubCod BIGINT NOT NULL," "PubCod BIGINT NOT NULL,"
"Content LONGTEXT NOT NULL," "Content LONGTEXT NOT NULL,"
"ImageName VARCHAR(43) NOT NULL," "ImageName VARCHAR(43) NOT NULL," // Img_BYTES_NAME
"ImageTitle VARCHAR(255) NOT NULL," "ImageTitle VARCHAR(2047) NOT NULL," // Img_MAX_BYTES_TITLE
"ImageURL VARCHAR(255) NOT NULL," "ImageURL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
"UNIQUE INDEX(PubCod)," "UNIQUE INDEX(PubCod),"
"FULLTEXT(Content)) ENGINE = MYISAM;"); "FULLTEXT(Content)) ENGINE = MYISAM;");
/***** Table social_comments_fav *****/ /***** Table social_comments_fav *****/
/* /*
@ -1960,13 +1960,13 @@ mysql> DESCRIBE social_comments_fav;
4 rows in set (0.00 sec) 4 rows in set (0.00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_comments_fav (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_comments_fav ("
"FavCod BIGINT AUTO_INCREMENT," "FavCod BIGINT AUTO_INCREMENT,"
"PubCod BIGINT NOT NULL," "PubCod BIGINT NOT NULL,"
"UsrCod INT NOT NULL," "UsrCod INT NOT NULL,"
"TimeFav DATETIME NOT NULL," // Not used. For future use "TimeFav DATETIME NOT NULL," // Not used. For future use
"UNIQUE INDEX(FavCod)," "UNIQUE INDEX(FavCod),"
"UNIQUE INDEX(PubCod,UsrCod)," "UNIQUE INDEX(PubCod,UsrCod),"
"INDEX(UsrCod))"); "INDEX(UsrCod))");
/***** Table social_notes *****/ /***** Table social_notes *****/
/* /*
@ -1985,17 +1985,17 @@ mysql> DESCRIBE social_notes;
7 rows in set (0.00 sec) 7 rows in set (0.00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_notes (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_notes ("
"NotCod BIGINT NOT NULL AUTO_INCREMENT," "NotCod BIGINT NOT NULL AUTO_INCREMENT,"
"NoteType TINYINT NOT NULL," "NoteType TINYINT NOT NULL,"
"Cod INT NOT NULL DEFAULT -1," "Cod INT NOT NULL DEFAULT -1,"
"UsrCod INT NOT NULL," "UsrCod INT NOT NULL,"
"HieCod INT NOT NULL DEFAULT -1," "HieCod INT NOT NULL DEFAULT -1,"
"Unavailable ENUM('N','Y') NOT NULL DEFAULT 'N'," "Unavailable ENUM('N','Y') NOT NULL DEFAULT 'N',"
"TimeNote DATETIME NOT NULL," "TimeNote DATETIME NOT NULL,"
"UNIQUE INDEX(NotCod)," "UNIQUE INDEX(NotCod),"
"INDEX(NoteType,Cod)," "INDEX(NoteType,Cod),"
"INDEX(UsrCod)," "INDEX(UsrCod),"
"INDEX(TimeNote))"); "INDEX(TimeNote))");
/***** Table social_notes_fav *****/ /***** Table social_notes_fav *****/
/* /*
@ -2011,36 +2011,36 @@ mysql> DESCRIBE social_notes_fav;
4 rows in set (0.00 sec) 4 rows in set (0.00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_notes_fav (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_notes_fav ("
"FavCod BIGINT AUTO_INCREMENT," "FavCod BIGINT AUTO_INCREMENT,"
"NotCod BIGINT NOT NULL," "NotCod BIGINT NOT NULL,"
"UsrCod INT NOT NULL," "UsrCod INT NOT NULL,"
"TimeFav DATETIME NOT NULL," // Not used. For future use "TimeFav DATETIME NOT NULL," // Not used. For future use
"UNIQUE INDEX(FavCod)," "UNIQUE INDEX(FavCod),"
"UNIQUE INDEX(NotCod,UsrCod)," "UNIQUE INDEX(NotCod,UsrCod),"
"INDEX(UsrCod))"); "INDEX(UsrCod))");
/***** Table social_posts *****/ /***** Table social_posts *****/
/* /*
mysql> DESCRIBE social_posts; mysql> DESCRIBE social_posts;
+------------+--------------+------+-----+---------+----------------+ +------------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra | | Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+ +------------+---------------+------+-----+---------+----------------+
| PstCod | int(11) | NO | PRI | NULL | auto_increment | | PstCod | int(11) | NO | PRI | NULL | auto_increment |
| Content | longtext | NO | MUL | NULL | | | Content | longtext | NO | MUL | NULL | |
| ImageName | varchar(43) | NO | | NULL | | | ImageName | varchar(43) | NO | | NULL | |
| ImageTitle | varchar(255) | NO | | NULL | | | ImageTitle | varchar(2047) | NO | | NULL | |
| ImageURL | varchar(255) | NO | | NULL | | | ImageURL | varchar(255) | NO | | NULL | |
+------------+--------------+------+-----+---------+----------------+ +------------+---------------+------+-----+---------+----------------+
5 rows in set (0.00 sec) 5 rows in set (0,00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_posts (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_posts ("
"PubCod INT NOT NULL AUTO_INCREMENT," "PubCod INT NOT NULL AUTO_INCREMENT,"
"Content LONGTEXT NOT NULL," "Content LONGTEXT NOT NULL,"
"ImageName VARCHAR(43) NOT NULL," "ImageName VARCHAR(43) NOT NULL," // Img_BYTES_NAME
"ImageTitle VARCHAR(255) NOT NULL," "ImageTitle VARCHAR(2047) NOT NULL," // Img_MAX_BYTES_TITLE
"ImageURL VARCHAR(255) NOT NULL," "ImageURL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
"UNIQUE INDEX(PubCod)," "UNIQUE INDEX(PubCod),"
"FULLTEXT(Content)) ENGINE = MYISAM;"); "FULLTEXT(Content)) ENGINE = MYISAM;");
/***** Table social_pubs *****/ /***** Table social_pubs *****/
/* /*
@ -2057,16 +2057,16 @@ mysql> DESCRIBE social_pubs;
5 rows in set (0.00 sec) 5 rows in set (0.00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_pubs (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_pubs ("
"PubCod BIGINT NOT NULL AUTO_INCREMENT," "PubCod BIGINT NOT NULL AUTO_INCREMENT,"
"NotCod BIGINT NOT NULL," "NotCod BIGINT NOT NULL,"
"PublisherCod INT NOT NULL," "PublisherCod INT NOT NULL,"
"PubType TINYINT NOT NULL," "PubType TINYINT NOT NULL,"
"TimePublish DATETIME NOT NULL," "TimePublish DATETIME NOT NULL,"
"UNIQUE INDEX(PubCod)," "UNIQUE INDEX(PubCod),"
"INDEX(NotCod,PublisherCod,PubType)," "INDEX(NotCod,PublisherCod,PubType),"
"INDEX(PublisherCod)," "INDEX(PublisherCod),"
"INDEX(PubType)," "INDEX(PubType),"
"INDEX(TimePublish))"); "INDEX(TimePublish))");
/***** Table social_timelines *****/ /***** Table social_timelines *****/
/* /*
@ -2080,9 +2080,9 @@ mysql> DESCRIBE social_timelines;
2 rows in set (0.00 sec) 2 rows in set (0.00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_timelines (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS social_timelines ("
"SessionId CHAR(43) NOT NULL," "SessionId CHAR(43) NOT NULL," // Ses_BYTES_SESSION_ID
"NotCod BIGINT NOT NULL," "NotCod BIGINT NOT NULL,"
"UNIQUE INDEX(SessionId,NotCod))"); "UNIQUE INDEX(SessionId,NotCod))");
/***** Table sta_degrees *****/ /***** Table sta_degrees *****/
/* /*
@ -2559,7 +2559,7 @@ mysql> DESCRIBE usr_data;
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_data (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_data ("
"UsrCod INT NOT NULL AUTO_INCREMENT," "UsrCod INT NOT NULL AUTO_INCREMENT,"
"EncryptedUsrCod CHAR(43) NOT NULL DEFAULT ''," "EncryptedUsrCod CHAR(43) NOT NULL DEFAULT '',"
"Password CHAR(86) COLLATE latin1_bin NOT NULL DEFAULT ''," "Password CHAR(86) COLLATE latin1_bin NOT NULL DEFAULT ''," // Pwd_BYTES_ENCRYPTED_PASSWORD
"Surname1 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT ''," "Surname1 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',"
"Surname2 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT ''," "Surname2 VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',"
"FirstName VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT ''," "FirstName VARCHAR(32) COLLATE latin1_spanish_ci NOT NULL DEFAULT '',"

View File

@ -469,7 +469,7 @@ static long For_InsertForumPst (long ThrCod,long UsrCod,
if ((Query = malloc (512 + if ((Query = malloc (512 +
strlen (Subject) + strlen (Subject) +
strlen (Content) + strlen (Content) +
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + Img_BYTES_NAME +
Img_MAX_BYTES_TITLE + Img_MAX_BYTES_TITLE +
Cns_MAX_BYTES_WWW)) == NULL) Cns_MAX_BYTES_WWW)) == NULL)
Lay_ShowErrorAndExit ("Not enough memory to store database query."); Lay_ShowErrorAndExit ("Not enough memory to store database query.");

View File

@ -166,7 +166,7 @@ struct Globals
unsigned NumSessions; unsigned NumSessions;
bool IsOpen; bool IsOpen;
bool HasBeenDisconnected; bool HasBeenDisconnected;
char Id[Ses_LENGTH_SESSION_ID + 1]; char Id[Ses_BYTES_SESSION_ID + 1];
long UsrCod; long UsrCod;
} Session; } Session;
@ -295,8 +295,8 @@ struct Globals
bool RoleHasChanged; // Set when I have changed my role bool RoleHasChanged; // Set when I have changed my role
char UsrIdLogin[Cns_MAX_BYTES_EMAIL_ADDRESS + 1]; // String to store the ID, nickname or email entered in the user's login char UsrIdLogin[Cns_MAX_BYTES_EMAIL_ADDRESS + 1]; // String to store the ID, nickname or email entered in the user's login
char LoginPlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1]; char LoginPlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1];
char LoginEncryptedPassword[Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char LoginEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
char PendingPassword[Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char PendingPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
char PathDir[PATH_MAX + 1]; char PathDir[PATH_MAX + 1];
bool Logged; bool Logged;
bool IBelongToCurrentIns; bool IBelongToCurrentIns;

View File

@ -144,7 +144,7 @@ void Img_GetImageNameTitleAndURLFromRow (const char *Name,
/***** Copy image name to struct *****/ /***** Copy image name to struct *****/
Str_Copy (Image->Name,Name, Str_Copy (Image->Name,Name,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Img_BYTES_NAME);
/***** Set status of image file *****/ /***** Set status of image file *****/
Image->Status = Image->Name[0] ? Img_NAME_STORED_IN_DB : Image->Status = Image->Name[0] ? Img_NAME_STORED_IN_DB :

View File

@ -31,6 +31,8 @@
/***************************** Public constants ******************************/ /***************************** Public constants ******************************/
/*****************************************************************************/ /*****************************************************************************/
#define Img_BYTES_NAME Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64
#define Img_MAX_CHARS_TITLE (128 - 1) // 127 #define Img_MAX_CHARS_TITLE (128 - 1) // 127
#define Img_MAX_BYTES_TITLE ((Img_MAX_CHARS_TITLE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047 #define Img_MAX_BYTES_TITLE ((Img_MAX_CHARS_TITLE + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
@ -91,7 +93,7 @@ struct Image
{ {
Img_Action_t Action; Img_Action_t Action;
Img_FileStatus_t Status; Img_FileStatus_t Status;
char Name[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]; char Name[Img_BYTES_NAME + 1];
char *Title; // Title/attribution (it must be initialized to NULL char *Title; // Title/attribution (it must be initialized to NULL
// in order to not trying to free it when no memory allocated) // in order to not trying to free it when no memory allocated)
char *URL; // URL, i.e. link to original big photo or video char *URL; // URL, i.e. link to original big photo or video

View File

@ -720,7 +720,8 @@ void Msg_RecMsgFromUsr (void)
NumRecipients = 0; NumRecipients = 0;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDstData.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDstData.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDstData); Usr_GetUsrCodFromEncryptedUsrCod (&UsrDstData);
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDstData)) // Get recipient's data from the database if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDstData)) // Get recipient's data from the database
{ {
@ -1288,7 +1289,7 @@ static long Msg_InsertNewMsg (const char *Subject,const char *Content,
if ((Query = malloc (512 + if ((Query = malloc (512 +
strlen (Subject) + strlen (Subject) +
strlen (Content) + strlen (Content) +
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + Img_BYTES_NAME +
Img_MAX_BYTES_TITLE)) == NULL) Img_MAX_BYTES_TITLE)) == NULL)
Lay_ShowErrorAndExit ("Not enough memory to store database query."); Lay_ShowErrorAndExit ("Not enough memory to store database query.");

View File

@ -657,7 +657,7 @@ void Pag_GetParamPagNum (Pag_WhatPaginate_t WhatPaginate)
void Pag_SaveLastPageMsgIntoSession (Pag_WhatPaginate_t WhatPaginate,unsigned NumPage) void Pag_SaveLastPageMsgIntoSession (Pag_WhatPaginate_t WhatPaginate,unsigned NumPage)
{ {
char Query[128 + Ses_LENGTH_SESSION_ID]; char Query[128 + Ses_BYTES_SESSION_ID];
/***** Save last page of received/sent messages *****/ /***** Save last page of received/sent messages *****/
sprintf (Query,"UPDATE sessions SET %s='%u' WHERE SessionId='%s'", sprintf (Query,"UPDATE sessions SET %s='%u' WHERE SessionId='%s'",
@ -673,7 +673,7 @@ void Pag_SaveLastPageMsgIntoSession (Pag_WhatPaginate_t WhatPaginate,unsigned Nu
unsigned Pag_GetLastPageMsgFromSession (Pag_WhatPaginate_t WhatPaginate) unsigned Pag_GetLastPageMsgFromSession (Pag_WhatPaginate_t WhatPaginate)
{ {
char Query[128 + Ses_LENGTH_SESSION_ID]; char Query[128 + Ses_BYTES_SESSION_ID];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned long NumRows; unsigned long NumRows;

View File

@ -735,7 +735,7 @@ void Par_GetMainParameters (void)
} }
/***** Get session identifier, if exists *****/ /***** Get session identifier, if exists *****/
Par_GetParToText ("ses",Gbl.Session.Id,Ses_LENGTH_SESSION_ID); Par_GetParToText ("ses",Gbl.Session.Id,Ses_BYTES_SESSION_ID);
if (Gbl.Session.Id[0]) if (Gbl.Session.Id[0])
{ {
/***** Get user's code, password, current degree and current course from stored session *****/ /***** Get user's code, password, current degree and current course from stored session *****/
@ -750,7 +750,7 @@ void Par_GetMainParameters (void)
else else
{ {
// Try old parameter "IdSes" (allowed for compatibility, to be removed soon) // Try old parameter "IdSes" (allowed for compatibility, to be removed soon)
Par_GetParToText ("IdSes",Gbl.Session.Id,Ses_LENGTH_SESSION_ID); Par_GetParToText ("IdSes",Gbl.Session.Id,Ses_BYTES_SESSION_ID);
if (Gbl.Session.Id[0]) if (Gbl.Session.Id[0])
{ {
/***** Get user's code, password, current degree and current course from stored session *****/ /***** Get user's code, password, current degree and current course from stored session *****/

View File

@ -119,7 +119,7 @@ bool Pwd_CheckPendingPassword (void)
/* Get encrypted pending password */ /* Get encrypted pending password */
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);
Str_Copy (Gbl.Usrs.Me.PendingPassword,row[0], Str_Copy (Gbl.Usrs.Me.PendingPassword,row[0],
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
} }
else else
Gbl.Usrs.Me.PendingPassword[0] = '\0'; Gbl.Usrs.Me.PendingPassword[0] = '\0';
@ -138,7 +138,7 @@ bool Pwd_CheckPendingPassword (void)
void Pwd_AssignMyPendingPasswordToMyCurrentPassword (void) void Pwd_AssignMyPendingPasswordToMyCurrentPassword (void)
{ {
char Query[128 + Pwd_MAX_BYTES_ENCRYPTED_PASSWORD]; char Query[128 + Pwd_BYTES_ENCRYPTED_PASSWORD];
/***** Update my current password in database *****/ /***** Update my current password in database *****/
sprintf (Query,"UPDATE usr_data SET Password='%s'" sprintf (Query,"UPDATE usr_data SET Password='%s'"
@ -149,7 +149,7 @@ void Pwd_AssignMyPendingPasswordToMyCurrentPassword (void)
/***** Update my current password *****/ /***** Update my current password *****/
Str_Copy (Gbl.Usrs.Me.UsrDat.Password,Gbl.Usrs.Me.PendingPassword, Str_Copy (Gbl.Usrs.Me.UsrDat.Password,Gbl.Usrs.Me.PendingPassword,
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -163,7 +163,7 @@ void Pwd_ActChgMyPwd1 (void)
extern const char *Txt_You_have_not_entered_your_password_correctly; extern const char *Txt_You_have_not_entered_your_password_correctly;
char PlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1]; char PlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1];
char NewPlainPassword[2][Pwd_MAX_BYTES_PLAIN_PASSWORD + 1]; char NewPlainPassword[2][Pwd_MAX_BYTES_PLAIN_PASSWORD + 1];
char NewEncryptedPassword[Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
/***** Get plain password from form *****/ /***** Get plain password from form *****/
Par_GetParToText ("UsrPwd",PlainPassword,Pwd_MAX_BYTES_PLAIN_PASSWORD); Par_GetParToText ("UsrPwd",PlainPassword,Pwd_MAX_BYTES_PLAIN_PASSWORD);
@ -189,7 +189,7 @@ void Pwd_ActChgMyPwd1 (void)
if (Pwd_SlowCheckIfPasswordIsGood (NewPlainPassword[0],NewEncryptedPassword,Gbl.Usrs.Me.UsrDat.UsrCod)) // New password is good? if (Pwd_SlowCheckIfPasswordIsGood (NewPlainPassword[0],NewEncryptedPassword,Gbl.Usrs.Me.UsrDat.UsrCod)) // New password is good?
{ {
Str_Copy (Gbl.Usrs.Me.UsrDat.Password,NewEncryptedPassword, Str_Copy (Gbl.Usrs.Me.UsrDat.Password,NewEncryptedPassword,
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
Ses_UpdateSessionDataInDB (); Ses_UpdateSessionDataInDB ();
Enr_UpdateUsrData (&Gbl.Usrs.Me.UsrDat); Enr_UpdateUsrData (&Gbl.Usrs.Me.UsrDat);
sprintf (Gbl.Message,"%s",Txt_Your_password_has_been_changed_successfully); sprintf (Gbl.Message,"%s",Txt_Your_password_has_been_changed_successfully);
@ -457,7 +457,7 @@ static void Pwd_CreateANewPassword (char PlainPassword[Pwd_MAX_BYTES_PLAIN_PASSW
void Pwd_SetMyPendingPassword (char PlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1]) void Pwd_SetMyPendingPassword (char PlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1])
{ {
char Query[256 + Pwd_MAX_BYTES_ENCRYPTED_PASSWORD]; char Query[256 + Pwd_BYTES_ENCRYPTED_PASSWORD];
/***** Encrypt my pending password *****/ /***** Encrypt my pending password *****/
Cry_EncryptSHA512Base64 (PlainPassword,Gbl.Usrs.Me.PendingPassword); Cry_EncryptSHA512Base64 (PlainPassword,Gbl.Usrs.Me.PendingPassword);
@ -487,7 +487,7 @@ void Pwd_UpdateOtherPwd1 (void)
extern const char *Txt_The_X_password_has_been_changed_successfully; extern const char *Txt_The_X_password_has_been_changed_successfully;
extern const char *Txt_User_not_found_or_you_do_not_have_permission_; extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
char NewPlainPassword[2][Pwd_MAX_BYTES_PLAIN_PASSWORD + 1]; char NewPlainPassword[2][Pwd_MAX_BYTES_PLAIN_PASSWORD + 1];
char NewEncryptedPassword[Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
Gbl.Usrs.Error = true; Gbl.Usrs.Error = true;
@ -511,7 +511,7 @@ void Pwd_UpdateOtherPwd1 (void)
{ {
/* Update other user's data */ /* Update other user's data */
Str_Copy (Gbl.Usrs.Other.UsrDat.Password,NewEncryptedPassword, Str_Copy (Gbl.Usrs.Other.UsrDat.Password,NewEncryptedPassword,
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
Enr_UpdateUsrData (&Gbl.Usrs.Other.UsrDat); Enr_UpdateUsrData (&Gbl.Usrs.Other.UsrDat);
sprintf (Gbl.Message,Txt_The_X_password_has_been_changed_successfully, sprintf (Gbl.Message,Txt_The_X_password_has_been_changed_successfully,
@ -926,7 +926,7 @@ bool Pwd_GetConfirmationOnDangerousAction (void)
extern const char *Txt_You_have_not_confirmed_the_action; extern const char *Txt_You_have_not_confirmed_the_action;
extern const char *Txt_You_have_not_entered_your_password_correctly; extern const char *Txt_You_have_not_entered_your_password_correctly;
char PlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1]; char PlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1];
char EncryptedPassword[Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char EncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
/***** Get if consent has been done *****/ /***** Get if consent has been done *****/
if (!Par_GetParToBool ("Consent")) if (!Par_GetParToBool ("Consent"))

View File

@ -37,7 +37,7 @@
#define Pwd_MAX_CHARS_PLAIN_PASSWORD (256 - 1) #define Pwd_MAX_CHARS_PLAIN_PASSWORD (256 - 1)
#define Pwd_MAX_BYTES_PLAIN_PASSWORD Pwd_MAX_CHARS_PLAIN_PASSWORD #define Pwd_MAX_BYTES_PLAIN_PASSWORD Pwd_MAX_CHARS_PLAIN_PASSWORD
#define Pwd_MAX_BYTES_ENCRYPTED_PASSWORD Cry_LENGTH_ENCRYPTED_STR_SHA512_BASE64 #define Pwd_BYTES_ENCRYPTED_PASSWORD Cry_LENGTH_ENCRYPTED_STR_SHA512_BASE64
/*****************************************************************************/ /*****************************************************************************/
/***************************** Public prototypes *****************************/ /***************************** Public prototypes *****************************/

View File

@ -79,7 +79,7 @@ void Plg_ListPlugins (void)
extern const char *Txt_Plugin; extern const char *Txt_Plugin;
unsigned NumPlg; unsigned NumPlg;
struct Plugin *Plg; struct Plugin *Plg;
char URL[Cns_MAX_BYTES_WWW + Ses_LENGTH_SESSION_ID + 1]; char URL[Cns_MAX_BYTES_WWW + Ses_BYTES_SESSION_ID + 1];
if (Gbl.Usrs.Me.LoggedRole != Rol_SYS_ADM) if (Gbl.Usrs.Me.LoggedRole != Rol_SYS_ADM)
{ {

View File

@ -1007,7 +1007,8 @@ void Rec_ListRecordsGsts (void)
Ptr = Gbl.Usrs.Select.All; Ptr = Gbl.Usrs.Select.All;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat); Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat);
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat)) // Get from the database the data of the student if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat)) // Get from the database the data of the student
{ {
@ -1170,7 +1171,8 @@ static void Rec_ListRecordsStds (Rec_SharedRecordViewType_t ShaTypeOfView,
Ptr = Gbl.Usrs.Select.All; Ptr = Gbl.Usrs.Select.All;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat); Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat);
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat)) // Get from the database the data of the student if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat)) // Get from the database the data of the student
if (Usr_CheckIfUsrBelongsToCrs (UsrDat.UsrCod, if (Usr_CheckIfUsrBelongsToCrs (UsrDat.UsrCod,
@ -1366,7 +1368,8 @@ void Rec_ListRecordsTchs (void)
Ptr = Gbl.Usrs.Select.All; Ptr = Gbl.Usrs.Select.All;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat); Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat);
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat)) // Get from the database the data of the student if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat)) // Get from the database the data of the student
if (Usr_CheckIfUsrBelongsToCrs (UsrDat.UsrCod, if (Usr_CheckIfUsrBelongsToCrs (UsrDat.UsrCod,

View File

@ -1343,7 +1343,7 @@ static void Sch_SaveLastSearchIntoSession (void)
{ {
char Query[256 + char Query[256 +
Sch_MAX_BYTES_STRING_TO_FIND + Sch_MAX_BYTES_STRING_TO_FIND +
Ses_LENGTH_SESSION_ID]; Ses_BYTES_SESSION_ID];
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
{ {

View File

@ -81,7 +81,7 @@ void Ses_CreateSession (void)
{ {
/***** Create a unique name for the session *****/ /***** Create a unique name for the session *****/
Str_Copy (Gbl.Session.Id,Gbl.UniqueNameEncrypted, Str_Copy (Gbl.Session.Id,Gbl.UniqueNameEncrypted,
Ses_LENGTH_SESSION_ID); Ses_BYTES_SESSION_ID);
/***** Check that session is not open *****/ /***** Check that session is not open *****/
if (Ses_CheckIfSessionExists (Gbl.Session.Id)) if (Ses_CheckIfSessionExists (Gbl.Session.Id))
@ -105,7 +105,7 @@ void Ses_CreateSession (void)
bool Ses_CheckIfSessionExists (const char *IdSes) bool Ses_CheckIfSessionExists (const char *IdSes)
{ {
char Query[512]; char Query[128 + Ses_BYTES_SESSION_ID];
/***** Get if session already exists in database *****/ /***** Get if session already exists in database *****/
sprintf (Query,"SELECT COUNT(*) FROM sessions WHERE SessionId='%s'", sprintf (Query,"SELECT COUNT(*) FROM sessions WHERE SessionId='%s'",
@ -154,7 +154,9 @@ void Ses_CloseSession (void)
void Ses_InsertSessionInDB (void) void Ses_InsertSessionInDB (void)
{ {
char Query[1024]; char Query[1024 +
Ses_BYTES_SESSION_ID +
Pwd_BYTES_ENCRYPTED_PASSWORD];
/***** Insert session in the database *****/ /***** Insert session in the database *****/
if (Gbl.Search.WhatToSearch == Sch_SEARCH_UNKNOWN) if (Gbl.Search.WhatToSearch == Sch_SEARCH_UNKNOWN)
@ -185,7 +187,9 @@ void Ses_InsertSessionInDB (void)
void Ses_UpdateSessionDataInDB (void) void Ses_UpdateSessionDataInDB (void)
{ {
char Query[1024]; char Query[1024 +
Pwd_BYTES_ENCRYPTED_PASSWORD +
Ses_BYTES_SESSION_ID];
/***** Update session in database *****/ /***** Update session in database *****/
sprintf (Query,"UPDATE sessions SET UsrCod='%ld',Password='%s',Role='%u'," sprintf (Query,"UPDATE sessions SET UsrCod='%ld',Password='%s',Role='%u',"
@ -210,11 +214,10 @@ void Ses_UpdateSessionDataInDB (void)
void Ses_UpdateSessionLastRefreshInDB (void) void Ses_UpdateSessionLastRefreshInDB (void)
{ {
char Query[512]; char Query[128 + Ses_BYTES_SESSION_ID];
/***** Update session in database *****/ /***** Update session in database *****/
sprintf (Query,"UPDATE sessions SET LastRefresh=NOW()" sprintf (Query,"UPDATE sessions SET LastRefresh=NOW() WHERE SessionId='%s'",
" WHERE SessionId='%s'",
Gbl.Session.Id); Gbl.Session.Id);
DB_QueryUPDATE (Query,"can not update session"); DB_QueryUPDATE (Query,"can not update session");
} }
@ -225,7 +228,7 @@ void Ses_UpdateSessionLastRefreshInDB (void)
static void Ses_RemoveSessionFromDB (void) static void Ses_RemoveSessionFromDB (void)
{ {
char Query[512]; char Query[128 + Ses_BYTES_SESSION_ID];
/***** Remove current session *****/ /***** Remove current session *****/
sprintf (Query,"DELETE FROM sessions WHERE SessionId='%s'", sprintf (Query,"DELETE FROM sessions WHERE SessionId='%s'",
@ -267,7 +270,7 @@ void Ses_RemoveExpiredSessions (void)
bool Ses_GetSessionData (void) bool Ses_GetSessionData (void)
{ {
char Query[512]; char Query[256 + Ses_BYTES_SESSION_ID];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned UnsignedNum; unsigned UnsignedNum;
@ -290,7 +293,7 @@ bool Ses_GetSessionData (void)
/***** Get password (row[1]) *****/ /***** Get password (row[1]) *****/
Str_Copy (Gbl.Usrs.Me.LoginEncryptedPassword,row[1], Str_Copy (Gbl.Usrs.Me.LoginEncryptedPassword,row[1],
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
/***** Get logged user type (row[2]) *****/ /***** Get logged user type (row[2]) *****/
if (sscanf (row[2],"%u",&Gbl.Usrs.Me.RoleFromSession) != 1) if (sscanf (row[2],"%u",&Gbl.Usrs.Me.RoleFromSession) != 1)
@ -353,7 +356,7 @@ void Ses_InsertHiddenParInDB (Act_Action_t Action,const char *ParamName,const ch
if (!Ses_CheckIfHiddenParIsAlreadyInDB (Action,ParamName)) if (!Ses_CheckIfHiddenParIsAlreadyInDB (Action,ParamName))
{ {
/***** Allocate space for query *****/ /***** Allocate space for query *****/
MaxLength = 256 + Ses_LENGTH_SESSION_ID + strlen (ParamName) + strlen (ParamValue); MaxLength = 256 + Ses_BYTES_SESSION_ID + strlen (ParamName) + strlen (ParamValue);
if ((Query = (char *) malloc (MaxLength + 1)) == NULL) if ((Query = (char *) malloc (MaxLength + 1)) == NULL)
Lay_ShowErrorAndExit ("Not enough memory for query."); Lay_ShowErrorAndExit ("Not enough memory for query.");
@ -377,7 +380,7 @@ void Ses_InsertHiddenParInDB (Act_Action_t Action,const char *ParamName,const ch
void Ses_RemoveHiddenParFromThisSession (void) void Ses_RemoveHiddenParFromThisSession (void)
{ {
char Query[128 + Ses_LENGTH_SESSION_ID]; char Query[128 + Ses_BYTES_SESSION_ID];
if (Gbl.Session.IsOpen && // There is an open session if (Gbl.Session.IsOpen && // There is an open session
!Gbl.HiddenParamsInsertedIntoDB) // No params just inserted !Gbl.HiddenParamsInsertedIntoDB) // No params just inserted
@ -395,7 +398,7 @@ void Ses_RemoveHiddenParFromThisSession (void)
void Ses_RemoveHiddenParFromExpiredSessions (void) void Ses_RemoveHiddenParFromExpiredSessions (void)
{ {
char Query[512]; char Query[256];
/***** Remove hidden parameters from expired sessions *****/ /***** Remove hidden parameters from expired sessions *****/
sprintf (Query,"DELETE FROM hidden_params" sprintf (Query,"DELETE FROM hidden_params"

View File

@ -33,7 +33,7 @@
/***************************** Public constants ******************************/ /***************************** Public constants ******************************/
/*****************************************************************************/ /*****************************************************************************/
#define Ses_LENGTH_SESSION_ID Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 #define Ses_BYTES_SESSION_ID Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64
#define Con_MIN_TIME_TO_REFRESH_CONNECTED_IN_MS (Cfg_MIN_TIME_TO_REFRESH_CONNECTED * 1000L) // Refresh period of connected users in miliseconds #define Con_MIN_TIME_TO_REFRESH_CONNECTED_IN_MS (Cfg_MIN_TIME_TO_REFRESH_CONNECTED * 1000L) // Refresh period of connected users in miliseconds
#define Con_MAX_TIME_TO_REFRESH_CONNECTED_IN_MS (Cfg_MAX_TIME_TO_REFRESH_CONNECTED * 1000L) // Refresh period of connected users in miliseconds #define Con_MAX_TIME_TO_REFRESH_CONNECTED_IN_MS (Cfg_MAX_TIME_TO_REFRESH_CONNECTED * 1000L) // Refresh period of connected users in miliseconds

View File

@ -803,7 +803,7 @@ static void Soc_BuildQueryToGetTimeline (Soc_TimelineUsrOrGbl_t TimelineUsrOrGbl
static long Soc_GetPubCodFromSession (const char *FieldName) static long Soc_GetPubCodFromSession (const char *FieldName)
{ {
char Query[128 + Ses_LENGTH_SESSION_ID]; char Query[128 + Ses_BYTES_SESSION_ID];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
long PubCod; long PubCod;
@ -831,7 +831,7 @@ static long Soc_GetPubCodFromSession (const char *FieldName)
static void Soc_UpdateLastPubCodIntoSession (void) static void Soc_UpdateLastPubCodIntoSession (void)
{ {
char Query[256 + Ses_LENGTH_SESSION_ID]; char Query[256 + Ses_BYTES_SESSION_ID];
/***** Update last publishing code *****/ /***** Update last publishing code *****/
sprintf (Query,"UPDATE sessions" sprintf (Query,"UPDATE sessions"
@ -847,7 +847,7 @@ static void Soc_UpdateLastPubCodIntoSession (void)
static void Soc_UpdateFirstPubCodIntoSession (long FirstPubCod) static void Soc_UpdateFirstPubCodIntoSession (long FirstPubCod)
{ {
char Query[128 + Ses_LENGTH_SESSION_ID]; char Query[128 + Ses_BYTES_SESSION_ID];
/***** Update last publishing code *****/ /***** Update last publishing code *****/
sprintf (Query,"UPDATE sessions SET FirstPubCod='%ld' WHERE SessionId='%s'", sprintf (Query,"UPDATE sessions SET FirstPubCod='%ld' WHERE SessionId='%s'",
@ -2293,8 +2293,9 @@ static long Soc_ReceiveSocialPost (void)
/***** Allocate space for query *****/ /***** Allocate space for query *****/
if ((Query = malloc (256 + if ((Query = malloc (256 +
strlen (Content) + strlen (Content) +
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + Img_BYTES_NAME +
Img_MAX_BYTES_TITLE)) == NULL) Img_MAX_BYTES_TITLE +
Cns_MAX_BYTES_WWW)) == NULL)
Lay_ShowErrorAndExit ("Not enough memory to store database query."); Lay_ShowErrorAndExit ("Not enough memory to store database query.");
/***** Check if image is received and processed *****/ /***** Check if image is received and processed *****/
@ -2444,7 +2445,7 @@ static unsigned long Soc_GetNumCommentsInSocialNote (long NotCod)
static void Soc_WriteCommentsInSocialNote (const struct SocialNote *SocNot) static void Soc_WriteCommentsInSocialNote (const struct SocialNote *SocNot)
{ {
char Query[512]; char Query[1024];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned long NumComments; unsigned long NumComments;
@ -2995,8 +2996,9 @@ static long Soc_ReceiveComment (void)
/***** Allocate space for query *****/ /***** Allocate space for query *****/
if ((Query = malloc (256 + if ((Query = malloc (256 +
strlen (Content) + strlen (Content) +
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + Img_BYTES_NAME +
Img_MAX_BYTES_TITLE)) == NULL) Img_MAX_BYTES_TITLE +
Cns_MAX_BYTES_WWW)) == NULL)
Lay_ShowErrorAndExit ("Not enough memory to store database query."); Lay_ShowErrorAndExit ("Not enough memory to store database query.");
/***** Check if image is received and processed *****/ /***** Check if image is received and processed *****/
@ -4494,7 +4496,7 @@ static void Soc_GetDataOfSocialNotByCod (struct SocialNote *SocNot)
static void Soc_GetDataOfSocialComByCod (struct SocialComment *SocCom) static void Soc_GetDataOfSocialComByCod (struct SocialComment *SocCom)
{ {
char Query[512]; char Query[1024];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
@ -4714,7 +4716,7 @@ void Soc_ClearOldTimelinesDB (void)
static void Soc_ClearTimelineThisSession (void) static void Soc_ClearTimelineThisSession (void)
{ {
char Query[128 + Ses_LENGTH_SESSION_ID]; char Query[128 + Ses_BYTES_SESSION_ID];
/***** Remove social timeline for this session *****/ /***** Remove social timeline for this session *****/
sprintf (Query,"DELETE FROM social_timelines WHERE SessionId='%s'", sprintf (Query,"DELETE FROM social_timelines WHERE SessionId='%s'",
@ -4728,7 +4730,7 @@ static void Soc_ClearTimelineThisSession (void)
static void Soc_AddNotesJustRetrievedToTimelineThisSession (void) static void Soc_AddNotesJustRetrievedToTimelineThisSession (void)
{ {
char Query[256 + Ses_LENGTH_SESSION_ID]; char Query[256 + Ses_BYTES_SESSION_ID];
sprintf (Query,"INSERT IGNORE INTO social_timelines" sprintf (Query,"INSERT IGNORE INTO social_timelines"
" (SessionId,NotCod)" " (SessionId,NotCod)"

View File

@ -1299,7 +1299,8 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse)
Ptr = Gbl.Usrs.Select.All; Ptr = Gbl.Usrs.Select.All;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat); Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat);
if (UsrDat.UsrCod > 0) if (UsrDat.UsrCod > 0)
{ {

View File

@ -112,8 +112,8 @@ action="https://localhost/swad/es" method="post">
void Str_InsertLinks (char *Txt,unsigned long MaxLength,size_t MaxCharsURLOnScreen) void Str_InsertLinks (char *Txt,unsigned long MaxLength,size_t MaxCharsURLOnScreen)
{ {
extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES]; extern const char *Txt_STR_LANG_ID[1 + Txt_NUM_LANGUAGES];
char ParamsStr[256 + 256 + Ses_LENGTH_SESSION_ID + 256]; char ParamsStr[256 + 256 + Ses_BYTES_SESSION_ID + 256];
char Anchor1Nick[256 + 256 + 256 + Ses_LENGTH_SESSION_ID + 256 + 256]; char Anchor1Nick[256 + 256 + 256 + Ses_BYTES_SESSION_ID + 256 + 256];
char Anchor2Nick[256 + Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64]; char Anchor2Nick[256 + Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64];
size_t TxtLength; size_t TxtLength;
size_t TxtLengthWithInsertedAnchors; size_t TxtLengthWithInsertedAnchors;

View File

@ -691,7 +691,7 @@ static bool Tst_CheckIfNextTstAllowed (void)
static void Tst_SetTstStatus (unsigned NumTst,Tst_Status_t TstStatus) static void Tst_SetTstStatus (unsigned NumTst,Tst_Status_t TstStatus)
{ {
char Query[512]; char Query[512 + Ses_BYTES_SESSION_ID];
/***** Delete old status from expired sessions *****/ /***** Delete old status from expired sessions *****/
sprintf (Query,"DELETE FROM tst_status" sprintf (Query,"DELETE FROM tst_status"
@ -6021,7 +6021,7 @@ static void Tst_InsertOrUpdateQstIntoDB (void)
if ((Query = malloc (512 + if ((Query = malloc (512 +
Gbl.Test.Stem.Length + Gbl.Test.Stem.Length +
Gbl.Test.Feedback.Length + Gbl.Test.Feedback.Length +
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + Img_BYTES_NAME +
Img_MAX_BYTES_TITLE)) == NULL) Img_MAX_BYTES_TITLE)) == NULL)
Lay_ShowErrorAndExit ("Not enough memory to store database query."); Lay_ShowErrorAndExit ("Not enough memory to store database query.");
@ -7089,7 +7089,8 @@ void Tst_ShowUsrsTestResults (void)
Ptr = Gbl.Usrs.Select.All; Ptr = Gbl.Usrs.Select.All;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,Gbl.Usrs.Other.UsrDat.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,Gbl.Usrs.Other.UsrDat.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&Gbl.Usrs.Other.UsrDat); Usr_GetUsrCodFromEncryptedUsrCod (&Gbl.Usrs.Other.UsrDat);
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat)) // Get of the database the data of the user if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat)) // Get of the database the data of the user
if (Usr_CheckIfUsrBelongsToCrs (Gbl.Usrs.Other.UsrDat.UsrCod, if (Usr_CheckIfUsrBelongsToCrs (Gbl.Usrs.Other.UsrDat.UsrCod,

View File

@ -487,7 +487,7 @@ void Usr_GetUsrDataFromUsrCod (struct UsrData *UsrDat)
/* Get encrypted password */ /* Get encrypted password */
Str_Copy (UsrDat->Password,row[1], Str_Copy (UsrDat->Password,row[1],
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
/* Get roles */ /* Get roles */
UsrDat->RoleInCurrentCrsDB = Rol_GetRoleInCrs (Gbl.CurrentCrs.Crs.CrsCod,UsrDat->UsrCod); UsrDat->RoleInCurrentCrsDB = Rol_GetRoleInCrs (Gbl.CurrentCrs.Crs.CrsCod,UsrDat->UsrCod);
@ -4886,7 +4886,7 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
/* Get encrypted password (row[2]) */ /* Get encrypted password (row[2]) */
Str_Copy (UsrInList->Password,row[2], Str_Copy (UsrInList->Password,row[2],
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
/* Get user's surname 1 (row[3]) */ /* Get user's surname 1 (row[3]) */
Str_Copy (UsrInList->Surname1,row[3], Str_Copy (UsrInList->Surname1,row[3],
@ -5401,7 +5401,8 @@ bool Usr_FindUsrCodInListOfSelectedUsrs (const char *EncryptedUsrCodToFind)
Ptr = Gbl.Usrs.Select.All; Ptr = Gbl.Usrs.Select.All;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
if (!strcmp (EncryptedUsrCodToFind,EncryptedUsrCod)) if (!strcmp (EncryptedUsrCodToFind,EncryptedUsrCod))
return true; // Found! return true; // Found!
} }
@ -5423,7 +5424,8 @@ unsigned Usr_CountNumUsrsInListOfSelectedUsrs (void)
Ptr = Gbl.Usrs.Select.All; Ptr = Gbl.Usrs.Select.All;
while (*Ptr) while (*Ptr)
{ {
Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Par_GetNextStrUntilSeparParamMult (&Ptr,UsrDat.EncryptedUsrCod,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64);
Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat); Usr_GetUsrCodFromEncryptedUsrCod (&UsrDat);
if (UsrDat.UsrCod > 0) if (UsrDat.UsrCod > 0)
NumUsrs++; NumUsrs++;

View File

@ -126,7 +126,7 @@ struct UsrData
unsigned Num; unsigned Num;
} IDs; } IDs;
char Nickname [Nck_MAX_BYTES_NICKNAME_WITHOUT_ARROBA + 1]; char Nickname [Nck_MAX_BYTES_NICKNAME_WITHOUT_ARROBA + 1];
char Password [Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char Password [Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
Rol_Role_t RoleInCurrentCrsDB; Rol_Role_t RoleInCurrentCrsDB;
int Roles; // Check always if filled/calculated int Roles; // Check always if filled/calculated
// >=0 ==> filled/calculated // >=0 ==> filled/calculated
@ -185,7 +185,7 @@ struct UsrInList
{ {
long UsrCod; long UsrCod;
char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]; char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1];
char Password[Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char Password[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
char Surname1 [Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1]; char Surname1 [Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1];
char Surname2 [Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1]; char Surname2 [Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1];
char FirstName[Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1]; char FirstName[Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1];

View File

@ -192,7 +192,7 @@ Svc_Role_t Svc_RolRole_to_SvcRole[Rol_NUM_ROLES] =
Svc_ROLE_UNKNOWN, // Rol_SYS_ADM Svc_ROLE_UNKNOWN, // Rol_SYS_ADM
}; };
#define Svc_LENGTH_WS_KEY Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 #define Svc_BYTES_WS_KEY Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64
/*****************************************************************************/ /*****************************************************************************/
/********************************* Data types ********************************/ /********************************* Data types ********************************/
@ -204,11 +204,11 @@ Svc_Role_t Svc_RolRole_to_SvcRole[Rol_NUM_ROLES] =
static int Svc_GetPlgCodFromAppKey (const char *appKey); static int Svc_GetPlgCodFromAppKey (const char *appKey);
static int Svc_CheckIdSession (const char *IdSession); static int Svc_CheckIdSession (const char *IdSession);
static int Svc_CheckWSKey (char WSKey[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]); static int Svc_CheckWSKey (char WSKey[Svc_BYTES_WS_KEY + 1]);
static int Svc_CheckCourseAndGroupCodes (long CrsCod,long GrpCod); static int Svc_CheckCourseAndGroupCodes (long CrsCod,long GrpCod);
static int Svc_GenerateNewWSKey (long UsrCod, static int Svc_GenerateNewWSKey (long UsrCod,
char WSKey[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]); char WSKey[Svc_BYTES_WS_KEY + 1]);
static int Svc_RemoveOldWSKeys (void); static int Svc_RemoveOldWSKeys (void);
static int Svc_GetCurrentDegCodFromCurrentCrsCod (void); static int Svc_GetCurrentDegCodFromCurrentCrsCod (void);
static bool Svc_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod); static bool Svc_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod);
@ -281,7 +281,7 @@ void Svc_Exit (const char *DetailErrorMessage)
static int Svc_GetPlgCodFromAppKey (const char *appKey) static int Svc_GetPlgCodFromAppKey (const char *appKey)
{ {
char Query[256 + Plg_MAX_BYTES_PLUGIN_APP_KEY]; char Query[128 + Plg_MAX_BYTES_PLUGIN_APP_KEY];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
@ -326,7 +326,7 @@ static int Svc_CheckIdSession (const char *IdSession)
{ {
const char *Ptr; const char *Ptr;
unsigned i; unsigned i;
char Query[512]; char Query[128 + Ses_BYTES_SESSION_ID];
/***** Check if pointer is NULL *****/ /***** Check if pointer is NULL *****/
if (IdSession == NULL) if (IdSession == NULL)
@ -335,7 +335,7 @@ static int Svc_CheckIdSession (const char *IdSession)
"Session identifier is a null pointer"); "Session identifier is a null pointer");
/***** Check length of session identifier *****/ /***** Check length of session identifier *****/
if (strlen (IdSession) != Ses_LENGTH_SESSION_ID) if (strlen (IdSession) != Ses_BYTES_SESSION_ID)
return soap_sender_fault (Gbl.soap, return soap_sender_fault (Gbl.soap,
"Bad session identifier", "Bad session identifier",
"The length of the session identifier is wrong"); "The length of the session identifier is wrong");
@ -371,9 +371,9 @@ static int Svc_CheckIdSession (const char *IdSession)
/************** Check if a web service key exists in database ****************/ /************** Check if a web service key exists in database ****************/
/*****************************************************************************/ /*****************************************************************************/
static int Svc_CheckWSKey (char WSKey[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]) static int Svc_CheckWSKey (char WSKey[Svc_BYTES_WS_KEY + 1])
{ {
char Query[512]; char Query[128 + Svc_BYTES_WS_KEY];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
@ -443,7 +443,7 @@ static int Svc_CheckCourseAndGroupCodes (long CrsCod,long GrpCod)
/*****************************************************************************/ /*****************************************************************************/
static int Svc_GenerateNewWSKey (long UsrCod, static int Svc_GenerateNewWSKey (long UsrCod,
char WSKey[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]) char WSKey[Svc_BYTES_WS_KEY + 1])
{ {
int ReturnCode; int ReturnCode;
char Query[512]; char Query[512];
@ -454,7 +454,7 @@ static int Svc_GenerateNewWSKey (long UsrCod,
/***** Create a unique name for the key *****/ /***** Create a unique name for the key *****/
Str_Copy (WSKey,Gbl.UniqueNameEncrypted, Str_Copy (WSKey,Gbl.UniqueNameEncrypted,
Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64); Svc_BYTES_WS_KEY);
/***** Check that key does not exist in database *****/ /***** Check that key does not exist in database *****/
sprintf (Query,"SELECT COUNT(*) FROM ws_keys WHERE WSKey='%s'", sprintf (Query,"SELECT COUNT(*) FROM ws_keys WHERE WSKey='%s'",
@ -644,7 +644,7 @@ int swad__createAccount (struct soap *soap,
struct swad__createAccountOutput *createAccountOut) // output struct swad__createAccountOutput *createAccountOut) // output
{ {
char NewNicknameWithoutArroba[Nck_MAX_BYTES_NICKNAME_FROM_FORM + 1]; char NewNicknameWithoutArroba[Nck_MAX_BYTES_NICKNAME_FROM_FORM + 1];
char NewEncryptedPassword[Pwd_MAX_BYTES_ENCRYPTED_PASSWORD + 1]; char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
int Result; int Result;
int ReturnCode; int ReturnCode;
@ -653,7 +653,7 @@ int swad__createAccount (struct soap *soap,
Gbl.WebService.Function = Svc_createAccount; Gbl.WebService.Function = Svc_createAccount;
/***** Allocate space for strings *****/ /***** Allocate space for strings *****/
createAccountOut->wsKey = (char *) soap_malloc (Gbl.soap,Svc_LENGTH_WS_KEY + 1); createAccountOut->wsKey = (char *) soap_malloc (Gbl.soap,Svc_BYTES_WS_KEY + 1);
/***** Default values returned on error *****/ /***** Default values returned on error *****/
createAccountOut->userCode = 0; // Undefined error createAccountOut->userCode = 0; // Undefined error
@ -681,7 +681,7 @@ int swad__createAccount (struct soap *soap,
/***** Set password to the password typed by the user *****/ /***** Set password to the password typed by the user *****/
Str_Copy (Gbl.Usrs.Me.UsrDat.Password,NewEncryptedPassword, Str_Copy (Gbl.Usrs.Me.UsrDat.Password,NewEncryptedPassword,
Pwd_MAX_BYTES_ENCRYPTED_PASSWORD); Pwd_BYTES_ENCRYPTED_PASSWORD);
/***** User does not exist in the platform, so create him/her! *****/ /***** User does not exist in the platform, so create him/her! *****/
Acc_CreateNewUsr (&Gbl.Usrs.Me.UsrDat, Acc_CreateNewUsr (&Gbl.Usrs.Me.UsrDat,
@ -783,7 +783,7 @@ int swad__loginByUserPasswordKey (struct soap *soap,
Gbl.WebService.Function = Svc_loginByUserPasswordKey; Gbl.WebService.Function = Svc_loginByUserPasswordKey;
/***** Allocate space for strings *****/ /***** Allocate space for strings *****/
loginByUserPasswordKeyOut->wsKey = (char *) soap_malloc (Gbl.soap,Svc_LENGTH_WS_KEY + 1); loginByUserPasswordKeyOut->wsKey = (char *) soap_malloc (Gbl.soap,Svc_BYTES_WS_KEY + 1);
loginByUserPasswordKeyOut->userNickname = (char *) soap_malloc (Gbl.soap,Nck_MAX_BYTES_NICKNAME_WITHOUT_ARROBA + 1); loginByUserPasswordKeyOut->userNickname = (char *) soap_malloc (Gbl.soap,Nck_MAX_BYTES_NICKNAME_WITHOUT_ARROBA + 1);
loginByUserPasswordKeyOut->userID = (char *) soap_malloc (Gbl.soap,ID_MAX_BYTES_USR_ID + 1); loginByUserPasswordKeyOut->userID = (char *) soap_malloc (Gbl.soap,ID_MAX_BYTES_USR_ID + 1);
loginByUserPasswordKeyOut->userFirstname = (char *) soap_malloc (Gbl.soap,Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1); loginByUserPasswordKeyOut->userFirstname = (char *) soap_malloc (Gbl.soap,Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1);
@ -937,7 +937,7 @@ int swad__loginBySessionKey (struct soap *soap,
struct swad__loginBySessionKeyOutput *loginBySessionKeyOut) // output struct swad__loginBySessionKeyOutput *loginBySessionKeyOut) // output
{ {
int ReturnCode; int ReturnCode;
char Query[512]; char Query[256 + Ses_BYTES_SESSION_ID];
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
unsigned NumRows; unsigned NumRows;
@ -949,7 +949,7 @@ int swad__loginBySessionKey (struct soap *soap,
Gbl.WebService.Function = Svc_loginBySessionKey; Gbl.WebService.Function = Svc_loginBySessionKey;
/***** Allocate space for strings *****/ /***** Allocate space for strings *****/
loginBySessionKeyOut->wsKey = (char *) soap_malloc (Gbl.soap,Svc_LENGTH_WS_KEY + 1); loginBySessionKeyOut->wsKey = (char *) soap_malloc (Gbl.soap,Svc_BYTES_WS_KEY + 1);
loginBySessionKeyOut->userNickname = (char *) soap_malloc (Gbl.soap,Nck_MAX_BYTES_NICKNAME_WITHOUT_ARROBA + 1); loginBySessionKeyOut->userNickname = (char *) soap_malloc (Gbl.soap,Nck_MAX_BYTES_NICKNAME_WITHOUT_ARROBA + 1);
loginBySessionKeyOut->userID = (char *) soap_malloc (Gbl.soap,ID_MAX_BYTES_USR_ID + 1); loginBySessionKeyOut->userID = (char *) soap_malloc (Gbl.soap,ID_MAX_BYTES_USR_ID + 1);
loginBySessionKeyOut->userFirstname = (char *) soap_malloc (Gbl.soap,Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1); loginBySessionKeyOut->userFirstname = (char *) soap_malloc (Gbl.soap,Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME + 1);
@ -993,7 +993,8 @@ int swad__loginBySessionKey (struct soap *soap,
// Now, we know that sessionID is a valid session identifier // Now, we know that sessionID is a valid session identifier
/***** Query data of the session from database *****/ /***** Query data of the session from database *****/
sprintf (Query,"SELECT UsrCod,DegCod,CrsCod FROM sessions" sprintf (Query,"SELECT UsrCod,DegCod,CrsCod FROM sessions"
" WHERE SessionId='%s'",sessionID); " WHERE SessionId='%s'",
sessionID);
if ((NumRows = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get session data")) == 1) // Session found in table of sessions if ((NumRows = (unsigned) DB_QuerySELECT (Query,&mysql_res,"can not get session data")) == 1) // Session found in table of sessions
{ {
row = mysql_fetch_row (mysql_res); row = mysql_fetch_row (mysql_res);