/[LeafOK_CVS]/lbbs/src/user_list.c
ViewVC logotype

Diff of /lbbs/src/user_list.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.13 by sysadm, Wed Oct 22 14:42:08 2025 UTC Revision 1.14 by sysadm, Wed Oct 22 16:12:50 2025 UTC
# Line 124  int user_list_load(MYSQL *db, USER_LIST Line 124  int user_list_load(MYSQL *db, USER_LIST
124          MYSQL_ROW row;          MYSQL_ROW row;
125          char sql[SQL_BUFFER_LEN];          char sql[SQL_BUFFER_LEN];
126          int ret = 0;          int ret = 0;
127          int i;          int i = 0;
128          int32_t last_uid = -1;          int32_t last_uid = -1;
129            size_t intro_buf_offset = 0L;
130            size_t intro_len;
131    
132          if (db == NULL || p_list == NULL)          if (db == NULL || p_list == NULL)
133          {          {
# Line 139  int user_list_load(MYSQL *db, USER_LIST Line 141  int user_list_load(MYSQL *db, USER_LIST
141          }          }
142    
143          snprintf(sql, sizeof(sql),          snprintf(sql, sizeof(sql),
144                           "SELECT user_list.UID AS UID, username, nickname, gender, gender_pub, life, exp, "                           "SELECT user_list.UID AS UID, username, nickname, gender, gender_pub, life, exp, visit_count, "
145                           "UNIX_TIMESTAMP(signup_dt), UNIX_TIMESTAMP(last_login_dt), UNIX_TIMESTAMP(birthday) "                           "UNIX_TIMESTAMP(signup_dt), UNIX_TIMESTAMP(last_login_dt), UNIX_TIMESTAMP(birthday), `introduction` "
146                           "FROM user_list INNER JOIN user_pubinfo ON user_list.UID = user_pubinfo.UID "                           "FROM user_list INNER JOIN user_pubinfo ON user_list.UID = user_pubinfo.UID "
147                           "INNER JOIN user_reginfo ON user_list.UID = user_reginfo.UID "                           "INNER JOIN user_reginfo ON user_list.UID = user_reginfo.UID "
148                           "WHERE enable ORDER BY username");                           "WHERE enable ORDER BY username");
# Line 159  int user_list_load(MYSQL *db, USER_LIST Line 161  int user_list_load(MYSQL *db, USER_LIST
161                  goto cleanup;                  goto cleanup;
162          }          }
163    
164            intro_buf_offset = 0;
165          i = 0;          i = 0;
166          while ((row = mysql_fetch_row(rs)))          while ((row = mysql_fetch_row(rs)))
167          {          {
# Line 173  int user_list_load(MYSQL *db, USER_LIST Line 176  int user_list_load(MYSQL *db, USER_LIST
176                  p_list->users[i].gender_pub = (int8_t)(row[4] == NULL ? 0 : atoi(row[4]));                  p_list->users[i].gender_pub = (int8_t)(row[4] == NULL ? 0 : atoi(row[4]));
177                  p_list->users[i].life = (row[5] == NULL ? 0 : atoi(row[5]));                  p_list->users[i].life = (row[5] == NULL ? 0 : atoi(row[5]));
178                  p_list->users[i].exp = (row[6] == NULL ? 0 : atoi(row[6]));                  p_list->users[i].exp = (row[6] == NULL ? 0 : atoi(row[6]));
179                  p_list->users[i].signup_dt = (row[7] == NULL ? 0 : atol(row[7]));                  p_list->users[i].visit_count = (row[7] == NULL ? 0 : atoi(row[7]));
180                  p_list->users[i].last_login_dt = (row[8] == NULL ? 0 : atol(row[8]));                  p_list->users[i].signup_dt = (row[8] == NULL ? 0 : atol(row[8]));
181                  p_list->users[i].birthday = (row[9] == NULL ? 0 : atol(row[9]));                  p_list->users[i].last_login_dt = (row[9] == NULL ? 0 : atol(row[9]));
182                    p_list->users[i].birthday = (row[10] == NULL ? 0 : atol(row[10]));
183                    intro_len = strlen((row[11] == NULL ? "" : row[11]));
184                    if (intro_len >= sizeof(p_list->user_intro_buf) - 1 - intro_buf_offset)
185                    {
186                            log_error("OOM for user introduction: len=%d, i=%d\n", intro_len, i);
187                            break;
188                    }
189                    memcpy(p_list->user_intro_buf + intro_buf_offset,
190                               (row[11] == NULL ? "" : row[11]),
191                               intro_len + 1);
192                    p_list->users[i].intro = p_list->user_intro_buf + intro_buf_offset;
193                    intro_buf_offset += (intro_len + 1);
194    
195                  // index                  // index
196                  index_uid[i].uid = p_list->users[i].uid;                  index_uid[i].uid = p_list->users[i].uid;


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1