summaryrefslogtreecommitdiff
path: root/src/login/login.c
AgeCommit message (Collapse)AuthorFilesLines
2009-09-20Disabled ip checking during auth, since it lead to a lot of confusion.ultramage1-2/+2
This essentially reverts the default behavior to before r10021. Re-enabling should only be reconsidered after the subnet mechanism is made fully automatic. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14069 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-04-01* Removed online_check config options. (always active now)FlavioJS1-49/+30
* Clarified char_maintenance config option. * Changed packet 0x2712. (added request_id) * Changed packet 0x2713. (added sex, request_id, version, clienttype; removed email, expiration time, gmlevel) * Delayed user count check and mmo_char_send006b to when the account data arrives. * Created auxiliary function MD5_Salt. (split from a future commit that was getting to big for my taste) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13652 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-14* Added client login packets 0x01fa and 0x027c.FlavioJS1-19/+38
* Other minor cleanups. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13449 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-19* Added global sql settings 'sql.*' to inter_athena.conf.FlavioJS1-34/+4
* Made account, ipban and loginlog use the global sql settings when the hostname is empty. * Commented 'ipban.sql.*' and 'account.sql.*' so they default to the global settings. * Removed deprecated settings 'case_sensitive' and 'add_to_unlimited_account' from in login_athena.conf. * Made inter_athena.conf be imported from login_athena.conf instead of being handled separate. * Changed ipban to get the failed login attempts of an ip from loginlog (respects if loginlog is enabled or not). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13092 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-09Fixed login printing raw passwdenc passwords to console (bugreport:826).ultramage1-6/+6
Added strlib function bin2hex(). Cleaned up the md5calc interface a bit. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13055 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-01Removed unused guardian hp columns from the guild castles table in main.sql ↵ultramage1-1/+1
(should have been done in r11915). Corrected incorrect use of the datetime column in the `login` table (bugreport:1962). Refreshed txt account savefile. Cleaned up some random minor source code glitches. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13030 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-27Added code to md5 password received from charserver before comparing them ↵ultramage1-0/+2
with the database (compatibility with previous implementation where 'S' passwords need to be hashed too) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13008 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-26Merged the /loginmerge branch (topic:192754)ultramage1-1311/+722
* the login server storage, ipban and logging systems have been abstracted and now provide a common interface; the rest has been merged into a single login server core (no more login/login_sql duplicity) * storage systems are now added via compiler options (WITH_SQL / WITH_TXT) * multiple storage engines can be compiled in at the same time, and the config option account.engine defines which one will be used. * due to MySQL autoincrement limitations, accounts with id '0' will not be supported; account IDs from this point on should start from '1'. * login_log() functions now again record IP addresses in dotted format, not as 4-byte integers (undo from r6868). * removed config options that defined column names in the login table * removed `memo` and `error message` columns from login db/savefile * moved `loginlog` table to the logs database * added sql files upgrade_svn12975.sql and upgrade_svn12975_log.sql * due to changes to the login table layout, I added an !optional! sql file (upgrade_svn12975_view.sql) that will provide a certain degree of backwards compatibility with existing software; read the instructions inside carefully! * moved third-party includes/libs to a separate directory * updated project files / makefiles Changed the way GM levels are handled * removed conf/gm_account.txt * added the gm level column to the txt savefile (after 'email' column) * gm level information is now transferred along with account data For open problems see bugreport:1889. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13000 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-27Corrected r12662 where a guild break would trigger the OnGuildBreak event ↵ultramage1-1/+1
for all castles (even of other guilds). Corrected some x64 compilation warnings in ers/malloc files. cleaned up a case of bad variable reuse. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12666 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-21* Changed the data field of timers from int to intptr.FlavioJS1-6/+6
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-12TXT code has been re uploaded. Please note this does not change the fact ↵Kevin1-0/+2362
that TXT support has been dropped. There is no guarantee the code base will be managed and it will in the near future be REMOVED. If there is in ANY way TXT support in the future, it will be abstracted through a sql interface so only the sql code has to be maintained. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12572 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-12I live in a giant bucket.Kevin1-2362/+0
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12570 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-10Modified the charservers to use a DBMap instead of a cyclic array for auth data.ultramage1-9/+0
Merged the auth fix from r12473 to TXT as well. Removed the no-op from r12547. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12551 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-10Login server will now correctly keep online account information and properly ↵Kevin1-0/+9
disconnect double login attempts. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12547 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-05Reverted my recent changes to trunk.ultramage1-178/+1943
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12493 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-05Added back the login_log() function for txt (removed in r11826).ultramage1-0/+7
Merged the logging functionality for txt and sql. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12489 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-04Added login.c to hold most of the common functionality of the login server.ultramage1-0/+590
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12479 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-04Preparations for the login server TXT/SQL mergeultramage1-2362/+0
- copied the sql login server code to /src/login - merged the login server header files - moved the account savefile name config setting to inter_athena.conf and renamed it to match the other settings git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12478 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-04Removed commented-out TXT-only login-server code that was supposed to ↵ultramage1-15/+0
prevent reconnection when changing account data (bugreport:1281) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12474 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-03Renamed 'connect_until_time' to 'expiration_time'.ultramage1-32/+32
Renamed 'ban_until_time' to 'unban_time'. this also applies to login table columns (see upgrade_svn12464.sql). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12464 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-30Yet more login server stuff:ultramage1-179/+184
* jA data structure compatibility renaming / adjustments * mmo_account -> login_session_data, auth_data -> mmo_account * made gender variable usage consistent for the entire login server * rewrote TXT's new account creation procedure to match SQL's git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12450 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-29Fixed a compilation issue with r12446 (C can't handle non-constant ↵ultramage1-1/+3
initializers for static variables). Switched trunk's VS9 project files back to "Compile as C code" (topic:183217). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12448 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-28Some more txt/sql login server synchronization:ultramage1-473/+77
- removed the option to specify multiple IPs/subnets for 'ladminallowip' - removed the @gm command and all associated management code - removed the 'save unknown packets' code - removed the lengthy TXT ipban code (which was essentially a copy of what's already handled by the socket layer/packet_athena.conf) - implemented 'start_limited_time' in SQL (expiration for new accounts) - applied some missing TXT changes from the last update git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12446 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-27Partial rewrite of the login server's auth system.ultramage1-160/+206
* replaced the cyclic, size-limited auth_fifo data structure with the more appropriate DBMap-based alternative (stops some erratic behavior) * added code to simulate the pseudo-status "online on login server" * auth data will now expire after 30 seconds instead of persisting * better-than-aegis handling of login cancellation (the server will wipe all previous auth data instead of making you wait for it to expire) * proper status message - no more generic "rejected from server", now you'll get "the server still recognizes your last connection" * fixed a typo in r10110 which caused disconnect timer removal to fail * split off some parsing code to login_auth_ok() and login_auth_failed() * extended the auth confirmation packet so that the login_id1/2 values are sent along with the associated account id (stops charserver from making wrong choices if two incoming sessions have the same account id) * fixed a bug in the disconnect part of the main charserver parsing loop, where a non-authed client would erase the online db entry for a client that's already online, thus bypassing any dual-login checks * added code to stop the waiting_disconnect timer when the associated online entry is removed right away, instead of doing checks later * removed code that would periodically wipe the online status of clients that are in the auth process (producing yet more erratic behavior) * commented out some TXT-only reconnect prevention code (bugreport:1281) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12441 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-26Adjusted eAthena code to compile cleanly in C++ mode.ultramage1-7/+7
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12436 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-25Added proper checks to adoption processing (followup to r12428).ultramage1-12/+17
Cleaned up some code / fixed some typos. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12432 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-11Patched a mistake in r12043 that caused inter-server connection problems ↵ultramage1-0/+1
when check_client_version was enabled. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12055 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-10Another round of login server cleaningultramage1-250/+249
* fixed passwordencrypt on SQL not behaving correctly (since r10753) * corrected some column lengths in the login db (username, password,...) * fixed some places which used wfifo without first reallocating it * removed interserver packet 0x7532 (Request to end connection), as there was no code that actually sent this packet * moved RFIFOSKIP actions to execute as soon as possible git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12043 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-06Modified showmsg code to not attach a timestamp to MSG_NONE-type messages, ↵ultramage1-10/+9
generated by ShowMessage(). It now works exactly like printf(). Removed/replaced all printf calls in the code. Added a new flag to setting 'console_silent', for filtering debug messages. Silenced the "Broken pipe found" and "Server running in debug mode" messages. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12020 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-17* Added flag.server to indicate interserver socketsultramage1-3/+3
- replaces the previous way (setting 'client_addr' to 0) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11930 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-16Some more guild code reformatting (moved do_init_guild() to the end of ↵ultramage1-3/+3
guild.c, cleaned up and documented the castle/guild/member lookup functions, fixed a compilation warning...) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11917 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-11Fixed a mistake in r11876 that prevented the login server from doing auth ↵ultramage1-1/+1
correctly due to an incorrect IP being used in the process. The whole thing should be reverted when there is a proper flag to identify interserver connections. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11888 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-09small fix to the server's packet parsing code to display server IPs correctly.ultramage1-3/+4
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11876 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-02Fixed charserver unable to reestablish link to login server after a ↵ultramage1-4/+7
disconnect (yet another problem caused by r11826). Copied code from TXT to SQL to perform a graceful shutdown of all login server sockets while exiting. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11848 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-28Fixed a typo in r11826 messing up TXT gm account loading.ultramage1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11834 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-27* TXT/SQL login server code synchronizationultramage1-1666/+381
- exported several core structures to login.h - split off ladmin communication code from the TXT login server - removed all occurences of login_log(); a unified function should be added when SQL's loginlog_db logging code gets synced with TXT - removed conf setting login_log_filename - fixed ladmin getting timeouts since the ping system was changed - removed login/char server_fd[] arrays, added server[].fd instead git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11826 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-09* Re-worked the login-char-map packet spam mechanismultramage1-5/+13
- mapserver no longer sends entire user list to charserver every 10 seconds; similar change done to the char-login connection - user count updates are only sent when the value actually changes instead of servers polling each other every few seconds - the servers now prevent interserver connection timeout explicitly by sending ping/ack packet pairs instead of relying on the usercount polling to do so; keepalive is sent every 'stall_time'-2 seconds - removed the @refreshonline command as refresh happens automatically every 5 seconds git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11703 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-08* Changed EXIT_SUCCESS back to 0 in console.c to avoid an unnecessary include.FlavioJS1-2/+2
* Fixed gm_account_db not being deallocated in login-converter.c. * Refactoring names and documentation in db.h/db.c: - changed 'struct dbt' to 'struct DBMap' and 'DB' to 'DBMap*' - changed 'struct db' to 'struct DBMap_impl' and 'DB_impl' to 'DBMap_impl*' - changed COUNT to DB_COUNTSTAT and made it's existence not depend on DB_ENABLE_STATS - removed some @see links and corrected small typos in the documentation git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11698 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-19Removed some overly verbose messages from the TXT login server.ultramage1-121/+64
Fixed some signed/unsigned mismatches in the code. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11520 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18Fixed some gcc-specific stuff, silenced some more warningsultramage1-2/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11515 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17* Merged do_sendrecv() and do_parse() into do_sockets()ultramage1-0/+1
* Fixed subnet check message displaying incorrect ip addresses * client_addr will now be properly set to 0 for server connections * Removed socket code that attempts to cope with code bugs at runtime * Removed outdated copyright and version number from startup logo git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11503 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-06 * the mapserver won't exit when no mapcache is found, with use_grf: yesultramage1-1/+0
* Fixed some \r uses, now looks better; /thx to Ai4rei (topic:165952) * Removed that ridiculous spinner that displays during map/npc loading, and added a more informative progress indicator (idea from jA/eapp) * Checked/fixed/removed some old script and npc commands * cmdothernpc - a specialized 'donpcevent' with the event specified as two arguments * enablearena/disablearena - completely equivalent to enablewaitingroomevent & co. * inittimer/stoptimer - removed since its logic was incompatible with the code it depended on * Removed loads of code that supported these functions. Result: -100b per npc => -1,5MB of wasted memory * Fixed related npcs that erroneously used 'stoptimer' git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11374 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-04* Added MAX_HOTKEYS to supplement the HOTKEY_SAVING defineultramage1-1/+1
* Fixed a compile problem when hotkey saving is disabled (topic:167265) * Added script source error reporting to countitem() (topic:167165) * Removed integer mob skill state/target definition support (unused) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11353 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-30Removed redundant 'subnet' s_subnet structure variable.ultramage1-6/+6
Removed duplicate code from the sql charserver that somehow appeared after the tmpsql merge. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11333 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-20Added back SQL charserver listening socket code that got removed in the ↵ultramage1-41/+40
/tmpsql merge. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11251 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-20Synced TXT/SQL login server new account creation code. Removed some totally ↵ultramage1-79/+48
useless code. Removed '4'-letter min. password length restriction. Removed some code that (poorly) tries to cope with a broken database. Removed pointless '-3' and '-2' account states ('dynamic ban' mechanism), since `ipbanlist` does that already. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11250 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-20Synced some more :)ultramage1-70/+76
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11249 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-20Partially applied r10021 changes to TXT login server (login_config data ↵ultramage1-131/+190
structure). Synced TXT and SQL login server code. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11248 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-20* Merged the tmpsql branch:FlavioJS1-156/+144
- Abstraction for the sql code (sql.c/h). - New configure script and makefiles. - Restored txt zeny logging code. (r10814) - Rewrote mapserver's sql code - itemdb, mobdb, mapreg, logs. (r10814) - Fixed a precedence issue (&& and ) in char_sql/char.c. (r10833) - Improved db reading code a bit for consistency. (r11077) - Added separate atcommand for mail deletion. (r11077) - Corrected a few messages that said "new" instead of "unread". (r11077) - Broadcast (*) messages now use "*" as the target's name (not ""). (r11077) - Moved StringBuf code from utils.c/h to strlib.c/h. (r11084 r11117) - Some misc login server cleanups (reformatting etc). (r11136) - Corrected/modified some header entries. (r11141 r11147 11148) - Adjusted VS project files. (r11147) - Adjusted the way the sql charserver does item saving. (r11192) - Corrected usage of reserved keyword 'friend' in mmo.h. (r11192) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11245 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-13Wiped out every mention of RETCODE from /src.ultramage1-235/+235
The servers no longer save data using CRCRLF as line terminator on Windows. Closes bugreport:45. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11187 54d463be-8e91-2dee-dedb-b68131a5f0ec