| 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 |
{ |
{ |
| 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"); |
| 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 |
{ |
{ |
| 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; |