summaryrefslogtreecommitdiff
path: root/src/txt-converter/login/login-converter.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/txt-converter/login/login-converter.c')
-rw-r--r--src/txt-converter/login/login-converter.c420
1 files changed, 225 insertions, 195 deletions
diff --git a/src/txt-converter/login/login-converter.c b/src/txt-converter/login/login-converter.c
index 22957ff..2836866 100644
--- a/src/txt-converter/login/login-converter.c
+++ b/src/txt-converter/login/login-converter.c
@@ -25,228 +25,258 @@
#include "../../common/version.h"
#include "../../common/db.h"
-int account_id_count = START_ACCOUNT_NUM;
-int server_num;
-int new_account_flag = 0;
-int login_port = 6900;
+int account_id_count = START_ACCOUNT_NUM;
+int server_num;
+int new_account_flag = 0;
+int login_port = 6900;
struct mmo_char_server server[MAX_SERVERS];
-int server_fd[MAX_SERVERS];
+int server_fd[MAX_SERVERS];
#define AUTH_FIFO_SIZE 256
-struct {
- int account_id,login_id1,login_id2;
- int sex,delflag;
+struct
+{
+ int account_id, login_id1, login_id2;
+ int sex, delflag;
} auth_fifo[AUTH_FIFO_SIZE];
-int auth_fifo_pos=0;
-struct {
- int account_id, sex;
- char userid[24], pass[24], lastlogin[24];
- int logincount;
- int state; // packet 0x006a value + 1 (0: compte OK)
- char email[40]; // e-mail (by default: a@a.com)
- char error_message[20]; // Message of error code #6 = Your are Prohibited to log in until %s (packet 0x006a)
- time_t ban_until_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban)
- time_t connect_until_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited)
- char last_ip[16]; // save of last IP of connection
- char memo[255]; // a memo field
- int account_reg2_num;
- struct global_reg account_reg2[ACCOUNT_REG2_NUM];
-} *auth_dat;
-int auth_num=0,auth_max=0;
-
-char login_account_id[256]="account_id";
-char login_userid[256]="userid";
-char login_user_pass[256]="user_pass";
-char login_db[256]="login";
+int auth_fifo_pos = 0;
+struct
+{
+ int account_id, sex;
+ char userid[24], pass[24], lastlogin[24];
+ int logincount;
+ int state; // packet 0x006a value + 1 (0: compte OK)
+ char email[40]; // e-mail (by default: a@a.com)
+ char error_message[20]; // Message of error code #6 = Your are Prohibited to log in until %s (packet 0x006a)
+ time_t ban_until_time; // # of seconds 1/1/1970 (timestamp): ban time limit of the account (0 = no ban)
+ time_t connect_until_time; // # of seconds 1/1/1970 (timestamp): Validity limit of the account (0 = unlimited)
+ char last_ip[16]; // save of last IP of connection
+ char memo[255]; // a memo field
+ int account_reg2_num;
+ struct global_reg account_reg2[ACCOUNT_REG2_NUM];
+} *auth_dat;
+int auth_num = 0, auth_max = 0;
+
+char login_account_id[256] = "account_id";
+char login_userid[256] = "userid";
+char login_user_pass[256] = "user_pass";
+char login_db[256] = "login";
static struct dbt *gm_account_db;
-int db_server_port = 3306;
+int db_server_port = 3306;
char db_server_ip[16] = "127.0.0.1";
char db_server_id[32] = "ragnarok";
char db_server_pw[32] = "ragnarok";
char db_server_logindb[32] = "ragnarok";
-int isGM(int account_id)
+int isGM (int account_id)
{
- struct gm_account *p;
- p = numdb_search(gm_account_db,account_id);
- if( p == NULL)
- return 0;
- return p->level;
+ struct gm_account *p;
+ p = numdb_search (gm_account_db, account_id);
+ if (p == NULL)
+ return 0;
+ return p->level;
}
-int read_gm_account()
+int read_gm_account ()
{
- char line[8192];
- struct gm_account *p;
- FILE *fp;
- int c=0;
-
- gm_account_db = numdb_init();
- printf("gm_account: read start\n");
-
- if( (fp=fopen_("conf/GM_account.txt","r"))==NULL )
- return 1;
- while(fgets(line,sizeof(line),fp)){
- if(line[0] == '/' && line[1] == '/')
- continue;
- p=malloc(sizeof(struct gm_account));
- if(p==NULL){
- printf("gm_account: out of memory!\n");
- exit(0);
- }
- if(sscanf(line,"%d %d",&p->account_id,&p->level) != 2 || p->level <= 0) {
- printf("gm_account: broken data [conf/GM_account.txt] line %d\n",c);
- }
- else {
- if(p->level > 99)
- p->level = 99;
- numdb_insert(gm_account_db,p->account_id,p);
- }
- c++;
- }
- fclose_(fp);
- printf("gm_account: read done (%d gm account ID)\n",c);
- return 0;
+ char line[8192];
+ struct gm_account *p;
+ FILE *fp;
+ int c = 0;
+
+ gm_account_db = numdb_init ();
+ printf ("gm_account: read start\n");
+
+ if ((fp = fopen_ ("conf/GM_account.txt", "r")) == NULL)
+ return 1;
+ while (fgets (line, sizeof (line), fp))
+ {
+ if (line[0] == '/' && line[1] == '/')
+ continue;
+ p = malloc (sizeof (struct gm_account));
+ if (p == NULL)
+ {
+ printf ("gm_account: out of memory!\n");
+ exit (0);
+ }
+ if (sscanf (line, "%d %d", &p->account_id, &p->level) != 2
+ || p->level <= 0)
+ {
+ printf ("gm_account: broken data [conf/GM_account.txt] line %d\n",
+ c);
+ }
+ else
+ {
+ if (p->level > 99)
+ p->level = 99;
+ numdb_insert (gm_account_db, p->account_id, p);
+ }
+ c++;
+ }
+ fclose_ (fp);
+ printf ("gm_account: read done (%d gm account ID)\n", c);
+ return 0;
}
-int mmo_auth_init(void)
+int mmo_auth_init (void)
{
- MYSQL mysql_handle;
- char tmpsql[1024];
- MYSQL_RES* sql_res ;
- MYSQL_ROW sql_row ;
-
- mysql_init(&mysql_handle);
- if(!mysql_real_connect(&mysql_handle, db_server_ip, db_server_id, db_server_pw,
- db_server_logindb ,db_server_port, (char *)NULL, 0)) {
- //pointer check
- printf("%s\n",mysql_error(&mysql_handle));
- exit(1);
- }
- else {
- printf ("connect success!\n");
- }
- printf ("convert start...\n");
-
- FILE *fp;
- int account_id, logincount, user_level, state, n, i;
- char line[2048], userid[2048], pass[2048], lastlogin[2048], sex, email[2048], error_message[2048], last_ip[2048], memo[2048];
- time_t ban_until_time;
- time_t connect_until_time;
- char t_uid[256];
-
- fp=fopen_("save/account.txt","r");
- auth_dat=malloc(sizeof(auth_dat[0])*256);
- auth_max=256;
- if(fp==NULL)
- return 0;
- while(fgets(line,1023,fp)!=NULL){
-
- if(line[0]=='/' && line[1]=='/')
- continue;
-
- i = sscanf(line, "%d\t%[^\t]\t%[^\t]\t%[^\t]\t%c\t%d\t%d\t"
- "%[^\t]\t%[^\t]\t%ld\t%[^\t]\t%[^\t]\t%ld%n",
- &account_id, userid, pass, lastlogin, &sex, &logincount, &state,
- email, error_message, &connect_until_time, last_ip, memo, &ban_until_time, &n);
-
- sprintf(tmpsql, "SELECT `%s`,`%s`,`%s`,`lastlogin`,`logincount`,`sex`,`connect_until`,`last_ip`,`ban_until`,`state`"
- " FROM `%s` WHERE `%s`='%s'", login_account_id, login_userid, login_user_pass, login_db, login_userid, t_uid);
-
- if(mysql_query(&mysql_handle, tmpsql) ) {
- printf("DB server Error - %s\n", mysql_error(&mysql_handle) );
- }
- user_level = isGM(account_id);
- printf ("userlevel: %s (%d)- %d\n",userid, account_id, user_level);
- sql_res = mysql_store_result(&mysql_handle) ;
- sql_row = mysql_fetch_row(sql_res); //row fetching
- if (!sql_row) //no row -> insert
- sprintf(tmpsql, "INSERT INTO `login` (`account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`) VALUES (%d, '%s', '%s', '%s', '%c', %d, 'user@athena', %d);",account_id , userid, pass,lastlogin,sex,logincount, user_level);
- else //row reside -> updating
- sprintf(tmpsql, "UPDATE `login` SET `account_id`='%d', `userid`='%s', `user_pass`='%s', `lastlogin`='%s', `sex`='%c', `logincount`='%d', `email`='user@athena', `level`='%d'\nWHERE `account_id`='%d';",account_id , userid, pass,lastlogin,sex,logincount, user_level, account_id);
- printf ("Query: %s\n",tmpsql);
- mysql_free_result(sql_res) ; //resource free
- if(mysql_query(&mysql_handle, tmpsql) ) {
- printf("DB server Error - %s\n", mysql_error(&mysql_handle) );
- }
- }
- fclose_(fp);
-
- printf ("convert end...\n");
-
- return 0;
+ MYSQL mysql_handle;
+ char tmpsql[1024];
+ MYSQL_RES *sql_res;
+ MYSQL_ROW sql_row;
+
+ mysql_init (&mysql_handle);
+ if (!mysql_real_connect
+ (&mysql_handle, db_server_ip, db_server_id, db_server_pw,
+ db_server_logindb, db_server_port, (char *) NULL, 0))
+ {
+ //pointer check
+ printf ("%s\n", mysql_error (&mysql_handle));
+ exit (1);
+ }
+ else
+ {
+ printf ("connect success!\n");
+ }
+ printf ("convert start...\n");
+
+ FILE *fp;
+ int account_id, logincount, user_level, state, n, i;
+ char line[2048], userid[2048], pass[2048], lastlogin[2048], sex,
+ email[2048], error_message[2048], last_ip[2048], memo[2048];
+ time_t ban_until_time;
+ time_t connect_until_time;
+ char t_uid[256];
+
+ fp = fopen_ ("save/account.txt", "r");
+ auth_dat = malloc (sizeof (auth_dat[0]) * 256);
+ auth_max = 256;
+ if (fp == NULL)
+ return 0;
+ while (fgets (line, 1023, fp) != NULL)
+ {
+
+ if (line[0] == '/' && line[1] == '/')
+ continue;
+
+ i = sscanf (line, "%d\t%[^\t]\t%[^\t]\t%[^\t]\t%c\t%d\t%d\t"
+ "%[^\t]\t%[^\t]\t%ld\t%[^\t]\t%[^\t]\t%ld%n",
+ &account_id, userid, pass, lastlogin, &sex, &logincount,
+ &state, email, error_message, &connect_until_time,
+ last_ip, memo, &ban_until_time, &n);
+
+ sprintf (tmpsql,
+ "SELECT `%s`,`%s`,`%s`,`lastlogin`,`logincount`,`sex`,`connect_until`,`last_ip`,`ban_until`,`state`"
+ " FROM `%s` WHERE `%s`='%s'", login_account_id, login_userid,
+ login_user_pass, login_db, login_userid, t_uid);
+
+ if (mysql_query (&mysql_handle, tmpsql))
+ {
+ printf ("DB server Error - %s\n", mysql_error (&mysql_handle));
+ }
+ user_level = isGM (account_id);
+ printf ("userlevel: %s (%d)- %d\n", userid, account_id, user_level);
+ sql_res = mysql_store_result (&mysql_handle);
+ sql_row = mysql_fetch_row (sql_res); //row fetching
+ if (!sql_row) //no row -> insert
+ sprintf (tmpsql,
+ "INSERT INTO `login` (`account_id`, `userid`, `user_pass`, `lastlogin`, `sex`, `logincount`, `email`, `level`) VALUES (%d, '%s', '%s', '%s', '%c', %d, 'user@athena', %d);",
+ account_id, userid, pass, lastlogin, sex, logincount,
+ user_level);
+ else //row reside -> updating
+ sprintf (tmpsql,
+ "UPDATE `login` SET `account_id`='%d', `userid`='%s', `user_pass`='%s', `lastlogin`='%s', `sex`='%c', `logincount`='%d', `email`='user@athena', `level`='%d'\nWHERE `account_id`='%d';",
+ account_id, userid, pass, lastlogin, sex, logincount,
+ user_level, account_id);
+ printf ("Query: %s\n", tmpsql);
+ mysql_free_result (sql_res); //resource free
+ if (mysql_query (&mysql_handle, tmpsql))
+ {
+ printf ("DB server Error - %s\n", mysql_error (&mysql_handle));
+ }
+ }
+ fclose_ (fp);
+
+ printf ("convert end...\n");
+
+ return 0;
}
// アカウントデ??ベ?スの書き込み
-void nowork(void)
+void nowork (void)
{
- //null
+ //null
}
-int login_config_read(const char *cfgName){
- int i;
- char line[1024], w1[1024], w2[1024];
- FILE *fp;
-
- fp=fopen_(cfgName,"r");
-
- if(fp==NULL){
- printf("file not found: %s\n", cfgName);
- return 1;
- }
- printf ("start reading configuration...\n");
- while(fgets(line, 1020, fp)){
- if(line[0] == '/' && line[1] == '/')
- continue;
-
- i=sscanf(line,"%[^:]:%s", w1, w2);
- if(i!=2)
- continue;
-
-
- //add for DB connection
- if(strcmpi(w1,"db_server_ip")==0){
- strcpy(db_server_ip, w2);
- printf ("set db_server_ip : %s\n",w2);
- }
- else if(strcmpi(w1,"db_server_port")==0){
- db_server_port=atoi(w2);
- printf ("set db_server_port : %s\n",w2);
- }
- else if(strcmpi(w1,"db_server_id")==0){
- strcpy(db_server_id, w2);
- printf ("set db_server_id : %s\n",w2);
- }
- else if(strcmpi(w1,"db_server_pw")==0){
- strcpy(db_server_pw, w2);
- printf ("set db_server_pw : %s\n",w2);
- }
- else if(strcmpi(w1,"db_server_logindb")==0){
- strcpy(db_server_logindb, w2);
- printf ("set db_server_logindb : %s\n",w2);
- }
- }
- fclose_(fp);
- printf ("End reading configuration...\n");
- return 0;
+int login_config_read (const char *cfgName)
+{
+ int i;
+ char line[1024], w1[1024], w2[1024];
+ FILE *fp;
+
+ fp = fopen_ (cfgName, "r");
+
+ if (fp == NULL)
+ {
+ printf ("file not found: %s\n", cfgName);
+ return 1;
+ }
+ printf ("start reading configuration...\n");
+ while (fgets (line, 1020, fp))
+ {
+ if (line[0] == '/' && line[1] == '/')
+ continue;
+
+ i = sscanf (line, "%[^:]:%s", w1, w2);
+ if (i != 2)
+ continue;
+
+ //add for DB connection
+ if (strcmpi (w1, "db_server_ip") == 0)
+ {
+ strcpy (db_server_ip, w2);
+ printf ("set db_server_ip : %s\n", w2);
+ }
+ else if (strcmpi (w1, "db_server_port") == 0)
+ {
+ db_server_port = atoi (w2);
+ printf ("set db_server_port : %s\n", w2);
+ }
+ else if (strcmpi (w1, "db_server_id") == 0)
+ {
+ strcpy (db_server_id, w2);
+ printf ("set db_server_id : %s\n", w2);
+ }
+ else if (strcmpi (w1, "db_server_pw") == 0)
+ {
+ strcpy (db_server_pw, w2);
+ printf ("set db_server_pw : %s\n", w2);
+ }
+ else if (strcmpi (w1, "db_server_logindb") == 0)
+ {
+ strcpy (db_server_logindb, w2);
+ printf ("set db_server_logindb : %s\n", w2);
+ }
+ }
+ fclose_ (fp);
+ printf ("End reading configuration...\n");
+ return 0;
}
-int do_init(int argc,char **argv)
+int do_init (int argc, char **argv)
{
- char input;
- login_config_read( (argc>1)?argv[1]:LOGIN_CONF_NAME );
- read_gm_account();
-
- printf("\nWarning : Make sure you backup your databases before continuing!\n");
- printf("\nDo you wish to convert your Login Database to SQL? (y/n) : ");
- input=getchar();
- if(input == 'y' || input == 'Y')
- mmo_auth_init();
-
- exit(0);
+ char input;
+ login_config_read ((argc > 1) ? argv[1] : LOGIN_CONF_NAME);
+ read_gm_account ();
+
+ printf
+ ("\nWarning : Make sure you backup your databases before continuing!\n");
+ printf ("\nDo you wish to convert your Login Database to SQL? (y/n) : ");
+ input = getchar ();
+ if (input == 'y' || input == 'Y')
+ mmo_auth_init ();
+
+ exit (0);
}
-
-