| 2 |
* |
* |
| 3 |
* $Revision$ |
* $Revision$ |
| 4 |
* $Log$ |
* $Log$ |
| 5 |
|
* Revision 1.18 2004/11/30 05:46:32 aga |
| 6 |
|
* ・sessionからremoteHostを削除. |
| 7 |
|
* |
| 8 |
* Revision 1.17 2004/11/27 09:35:49 youi |
* Revision 1.17 2004/11/27 09:35:49 youi |
| 9 |
* isActivatedを定義. |
* isActivatedを定義. |
| 10 |
* activateを定義. |
* activateを定義. |
| 989 |
* セッションを作成しxoops_vpaccount_sessionに書き込む。 sessionid_tをsessionに返す。 |
* セッションを作成しxoops_vpaccount_sessionに書き込む。 sessionid_tをsessionに返す。 |
| 990 |
* |
* |
| 991 |
* @param uid xoops_usersのuid |
* @param uid xoops_usersのuid |
|
* @param remoteHost remote ip (host order) |
|
| 992 |
* @param session sessionid_tを受け取るためのポインタ。 |
* @param session sessionid_tを受け取るためのポインタ。 |
| 993 |
* @return RES_OK 成功 |
* @return RES_OK 成功 |
| 994 |
* @return RES_DB_QUERY_ERROR DB問い合わせ中のエラー |
* @return RES_DB_QUERY_ERROR DB問い合わせ中のエラー |
| 995 |
*/ |
*/ |
| 996 |
static result_t addSession( userid_t uid, unsigned long remoteHost, sessionid_t* session ) |
static result_t addSession( userid_t uid, sessionid_t* session ) |
| 997 |
{ |
{ |
| 998 |
result_t ret; |
result_t ret; |
| 999 |
string sql = "INSERT INTO " + dbprefix + "_vpaccount_session (uid,remote_host) values (" + |
string sql = "INSERT INTO " + dbprefix + "_vpaccount_session (uid) values (" + |
| 1000 |
unsignedIntToString(uid) + "," + unsignedIntToString((unsigned int)remoteHost) + ")"; |
unsignedIntToString(uid) + ")"; |
| 1001 |
if ( 0 == mysql_query( mysql, sql.c_str() ) ){ |
if ( 0 == mysql_query( mysql, sql.c_str() ) ){ |
| 1002 |
*session = (int)mysql_insert_id(mysql); |
*session = (int)mysql_insert_id(mysql); |
| 1003 |
ret = RES_OK; |
ret = RES_OK; |
| 1038 |
MYSQL_ROW row = mysql_fetch_row(result); |
MYSQL_ROW row = mysql_fetch_row(result); |
| 1039 |
if( row ){ |
if( row ){ |
| 1040 |
userid_t uid = atoi(row[0]); |
userid_t uid = atoi(row[0]); |
| 1041 |
ret = addSession( uid, 0, session ); |
ret = addSession( uid, session ); |
| 1042 |
}else{ |
}else{ |
| 1043 |
ret = RES_LOGIN_FAILURE; |
ret = RES_LOGIN_FAILURE; |
| 1044 |
} |
} |
| 1089 |
* |
* |
| 1090 |
* @param sessionid xoopsのsession_id |
* @param sessionid xoopsのsession_id |
| 1091 |
* @param uid xoops_usersのuid |
* @param uid xoops_usersのuid |
|
* @param remoteHost remote ip (host order) |
|
| 1092 |
* @param session sessionid_tを受け取るためのポインタ。 |
* @param session sessionid_tを受け取るためのポインタ。 |
| 1093 |
* @return RES_OK |
* @return RES_OK |
| 1094 |
* @return RES_ERROR |
* @return RES_ERROR |
| 1095 |
* @return RES_DB_QUERY_ERROR |
* @return RES_DB_QUERY_ERROR |
| 1096 |
* |
* |
| 1097 |
*/ |
*/ |
| 1098 |
result_t createSession( const char* sessionid, userid_t uid, unsigned long remoteHost, sessionid_t* session ) |
result_t createSession( const char* sessionid, userid_t uid, sessionid_t* session ) |
| 1099 |
{ |
{ |
| 1100 |
if( mysql == NULL ) return RES_DB_NOT_INITIALIZED; |
if( mysql == NULL ) return RES_DB_NOT_INITIALIZED; |
| 1101 |
|
|
| 1109 |
if( result ){ |
if( result ){ |
| 1110 |
MYSQL_ROW row = mysql_fetch_row(result); |
MYSQL_ROW row = mysql_fetch_row(result); |
| 1111 |
if( row ){ |
if( row ){ |
| 1112 |
ret = addSession( uid, remoteHost, session ); |
ret = addSession( uid, session ); |
| 1113 |
}else{ |
}else{ |
| 1114 |
ret = RES_ERROR; |
ret = RES_ERROR; |
| 1115 |
} |
} |
| 1140 |
result_t ret; |
result_t ret; |
| 1141 |
string sql; |
string sql; |
| 1142 |
|
|
| 1143 |
sql = "SELECT sid, uid, unix_timestamp(timestamp), remote_host from " + dbprefix + |
sql = "SELECT sid, uid, unix_timestamp(timestamp) from " + dbprefix + |
| 1144 |
"_vpaccount_session where sid=" + unsignedIntToString((unsigned int)sess_id); |
"_vpaccount_session where sid=" + unsignedIntToString((unsigned int)sess_id); |
| 1145 |
if( 0 == mysql_query( mysql, sql.c_str( ) ) ){ |
if( 0 == mysql_query( mysql, sql.c_str( ) ) ){ |
| 1146 |
MYSQL_RES* result = mysql_store_result( mysql ); |
MYSQL_RES* result = mysql_store_result( mysql ); |
| 1151 |
p->setSessionID(sess_id); |
p->setSessionID(sess_id); |
| 1152 |
p->setUserID(atoi(row[1])); |
p->setUserID(atoi(row[1])); |
| 1153 |
p->setDate(atoi(row[2])); |
p->setDate(atoi(row[2])); |
|
p->setRemoteHost(atoi(row[3])); |
|
| 1154 |
*ppsession = p; |
*ppsession = p; |
| 1155 |
ret = RES_OK; |
ret = RES_OK; |
| 1156 |
}else{ |
}else{ |