Commit Graph

116 Commits

Author SHA1 Message Date
ultramage
cdb70a3a4c Altered socket code to do a graceful connection shutdown when exiting.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12251 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-27 20:21:27 +00:00
ultramage
f4347446d4 * Removed code in socket.c that tries to avoid send buffer overloading, as there is a scenario (many players and charserver disconnect) where mass char saving produces huge ammounts of data to send (see r11503)
* Cleaned up player respawning code (bugreport:1022)
* Increased the max amount of different autocast skills from 5 to 10
* Added a missing function declaration, for real this time (followup to r12229)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12232 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-22 18:19:11 +00:00
FlavioJS
e8c226e1f3 * Forgotten update to the definition of script command 'input'.
* Enabled DEBUG_MEMMGR only in DEBUG mode. 
* Made autotrading characters be kicked instead of reporting double login.
* Made create_session initialize session_data to NULL.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12218 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-19 16:55:13 +00:00
ultramage
3934f11180 Reverting r12212. As expected, Linux is incompatible.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12213 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-17 19:11:02 +00:00
ultramage
8ae50f44b4 Made unix interface enumeration work with dynamic sockaddr lengths (BSD, for example). Complain if it doesn't compile. (bugreport:765)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12212 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-17 13:10:20 +00:00
ultramage
5ce5cdb524 Added a missing client update when the mute status is manually cancelled by a GM
(followup to r12079)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12169 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-03 17:30:53 +00:00
skotlex
96dfe6b827 - Cleaned socket.c to use flag.server when detecting inter-server connections.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12147 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-29 11:04:21 +00:00
ultramage
65834585a8 Modified showmsg code to not attach a timestamp to MSG_NONE-type messages, 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://svn.code.sf.net/p/rathena/svn/trunk@12020 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-06 14:19:26 +00:00
FlavioJS
4dcf5bb0b9 * Tweeked the declaration and initialization defines for vectors.
* Made do_sockets leave the for loop as soon as the readable number of sockets returned by select is found.
* Made all posix compliant systems that support it and FreeBSD >= 5.1 (implements it but doesn't have the posix defines) use the precise and consistent tick() implementation.
* Minor tweek to HEAP_SEARCH (same variable can be used in from and to).
* Fixed the map server not exiting when make_listen_bind fails and returns -1.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11983 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-27 03:35:57 +00:00
ultramage
5790585d16 * Added flag.server to indicate interserver sockets
- replaces the previous way (setting 'client_addr' to 0)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11930 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-17 13:23:34 +00:00
FlavioJS
02d21582a6 * Abstracted the windows socket code so that all fd's are in the range [1,FD_SETSIZE[. (bugreport:604)
- The socket of a fd is forgotten when executing sClose, so things that depend on the socket (like sFD_CLR) must be executed before closing.
* Replaced the fd_set of the short list with a custom implementation (works like the linux fd_set).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11897 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-13 16:32:58 +00:00
skotlex
11c0438e85 - The interserver outgoing buffer now gets flushed when it reaches 512KB of data stored on it.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11886 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-10 19:13:12 +00:00
ultramage
0f6d747991 Fixed socket.c using time() incorrectly, causing stall timer desynchronization (bugreport:394)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11702 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-09 21:23:02 +00:00
ultramage
ac33a63e54 * Added names to the SC_ and SI_ enums, now they can be used to properly indicate where such values are to be used (replaces usage of 'int')
* removed MIN_/MAX_PORTAL_MEMO, set MAX_MEMOPOINTS from 10 to 3
* removed support for @go-ing to your memo points
* simplified the overly verbose @memo command; now re-uses pc_memo()
* cleaned up pc_memo(), now uses semi-correct packet replies
* Minor code cleaning/formatting

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11625 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-31 13:20:48 +00:00
ultramage
d091f1cf05 * Cleaned up some messy guild code (more to come)
* Cleaned up the mail code, no more pointless dynamic allocation
* Added upgrade_svn11548.sql to convert the mail table to new format
* Updated vs7 and vs6 project files
* Increased the max. send buffer size to 5M since 1M is not enough
* Please complain if something stops working ^^;

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11571 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-24 12:14:18 +00:00
ultramage
33decb0759 Fixed a small mistake in r11503 causing a fatal error&exit on unix when you try to do a graceful exit (by ctrl+c for example)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11538 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-21 13:37:46 +00:00
ultramage
2c2af57a84 * Removed commented-out code for check_fake_id()
* Merged improved/cleaned up (WiP) code for clif_parse_WisMessage
* Removed the requirement to provide a character name in the message string when calling is_atcommand() (needed for the previous fix)
- currently both ways work, but old will be removed in the upcoming command cleanup so please adjust your custom code if you use this!
* Added clif_process_message(), an unified way to validate all four types of player message packets and retrieve their components
* Applied the new checking function to clif code, this fixes various length mismatches caused by incomplete code in r11386 (bugreport:198)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11507 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18 12:49:49 +00:00
ultramage
0bbf505d59 * Merged do_sendrecv() and do_parse() into do_sockets()
* 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://svn.code.sf.net/p/rathena/svn/trunk@11503 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17 20:24:48 +00:00
ultramage
3d7a129b90 Using predefined constants as parameters to the exit() function.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11501 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17 17:20:01 +00:00
FlavioJS
65642f6f1c * Merged the tmpsql branch:
- 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://svn.code.sf.net/p/rathena/svn/trunk@11245 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-20 11:09:36 +00:00
ultramage
8be64bc3b4 * Added support for character rename packet (only dummy code for now)
* Added support for langtype-12 char deletion packet (tested, works)
* Synchronized txt/sql charserver code a bit
* Adjusted motd.txt to not crash new clients
* Removed some dead code from the charserver (see r352)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10909 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-07-25 16:45:09 +00:00
ultramage
1ed7f6c584 Cleaned up some parts of the code.
Removed obsolete script function 'hasitems'.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10838 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-07-01 15:26:53 +00:00
ultramage
dfdb5368c7 Corrected some weird fgets() statements, plus reformatted them
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10616 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-05-25 15:21:53 +00:00
FlavioJS
82b3153800 * Adapted the shortlist to use a static array instead of a linked list and enabled it.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10507 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-05-09 04:24:33 +00:00
FlavioJS
71f29c0445 * Added Buuyo-Tama's shortlist for send/eof sockets (defined out for now).
* Replaced toupper/tolower in ladmin by TOUPPER/TOLOWER defines.

Shortlist:
It's a list of sockets that have data to send and/or are ready for eof processing.
It aims to reduce the amount of time spent on do_sendrecv, where it was spending ~13.5% of execution time on a server with 1k users at WoE.
thanks to Buuyo-tama for the profile info and code

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10506 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-05-09 03:18:16 +00:00
FlavioJS
bc088a5ad8 * Removed the dependency on winsock.h for definitions, it's all winsock2.h now.
* Minor documentation/re-coding in chat.c.
* More work on ticket #41.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10471 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-05-05 14:50:07 +00:00
ultramage
f94d4fc532 * Ladmin fixes
- Added vs8 project file for ladmin
- Replaced all occurences of printf in ladmin.c with ShowMessage
- Fixed ladmin working with ips using the wrong byte orer
* Fixed @jumpto displaying the incorrect player name
* Added more safeguards to socket.c against socket ids out of range

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10409 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-29 14:34:02 +00:00
ultramage
b1ccbcdba7 - Added ntows() to properly handle that client port number deficiency
- Adjusted the packet_db array for a more consistent look
- Reorganized some entries in packet_db.txt
- Fixed a small scripts_custom.conf typo

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10296 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-20 21:57:33 +00:00
ultramage
cf77f95ed1 fixed makefile typo, maps_athena typo, svn:eol-style native for some files
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10238 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-12 17:37:38 +00:00
toms
9f6d32d8de Removed an ugly cast in socket.c
Fixed Makefile (-Wno-unused-parameter was added twice with gcc4)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10205 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-10 14:34:04 +00:00
ultramage
5d3ea3da27 * Played around with MinGW a bit today...
- adjusted code so that it handles mingw-specific compatibility problems
- adjusted the makefile, mingw is not a subset of cygwin
* As an experiment Corrected many /W4 warnings on the txt login server

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10192 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-09 00:46:55 +00:00
ultramage
24db1473f4 - Added function str2ip() to do platform-safe conversions
- Removed a bunch of unused stuff
- Moved SIGILL to unix-only defines since tests and docs show that Windows doesn't issue SIGILL
- Fixed several annoying compilation warnings

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10177 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-07 12:06:25 +00:00
ultramage
8dc1b77f03 * Made a crazy attempt to at least partially synchronize login&char code
* Major edit to the way the servers handle ip addresses, making them obey the "host byte order inside, network byte order outside" rule
- hopefully covered all entry- and exit-points for IP address data
- discovered several places where Gravity's client breaks the convention, will need to come up with a suitable countermeasure for that
- other than that, the code should be portable, except for printing and ipban mask testing (those still assume a specific byte order)
- tested both txt and sql in all usual situations; tested single- and multi-server setups, all seems to work (but watch out for hidden bugs!)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10162 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-05 18:49:57 +00:00
ultramage
a167b6ae62 * Some source code cleaning
- Fixed the badly worded messages during mapserver startup
- Cleaned up socket config reading
- Split resolve_hostbyname() into 2 separate functions for clarity
- Moved the probably obsolete LOWER/UPPER macros to db.c (TODO: remove)
- Moved the badly placed compare_item() function to storage.c (see r779)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10119 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-02 13:46:11 +00:00
skotlex
258746a5f9 - Modified waiting_disconnect on the login server to hold the timer id of the 'set offline' timer.
- connect_client will no longer accept connections when their number is greater than FD_SETSIZE to prevent crashes on packet parsing.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10110 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-01 16:25:34 +00:00
FlavioJS
2b42ec13cf - Added info on packet 0x86 (simple move packet). Not usable until a clear separation between entering sight/leaving sight/walking in sight is done.
- Propagating const char* from the script engine.
- ".gat" is appended to the map name before sending the changemapserver packet to the client.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9979 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-09 01:49:50 +00:00
ultramage
5625383530 More tweaks to socket.c to simplify the code
- many generic cleanups - reformatting, useless code removal, etc
- made the mode_neg setting a compile-time decision, not a run-time one
- removed the silly frame_size setting (there since r1)
- added some TODOs to http://www.eathena.ws/board/index.php?showtopic=127988

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9954 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-04 21:06:28 +00:00
ultramage
84cb63e650 Minor stuff (typos, socket.c, junk in login reply packet)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9886 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-21 13:09:22 +00:00
ultramage
1aa9c5ceca - Fixed the new socket code, which was triggering the inactivity timeout on the servers' listening sockets
- Fixed the TURBO code not working since r4468 (parse func never called)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9826 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-08 16:36:48 +00:00
ultramage
0729d61b56 * More aggressive cleaning up of the socket code
- removed unused session_data2 entry in sd
- added a new create_session() function, helps keep things cleaner (although it's ad-hoc and not perfect, since this is C)
- undid r4978 since it was getting in the way (re-add it if you need it)
- added defines for the recv, send and parse func pointers
- added null functions for the three actions, and made create_session() calls use those instead of NULL pointers; insignificant penalty and now:
- since all three funcs are always initialized, removed all those NULL checks 
- removed the efd set, since as the people from the developernet forums pointed out, it's only for out-of-band data and NOT for error checking (in fact, select() bails out without giving any info if it errors out)
- reorganized the randomly placed socket.c contents somewhat

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9822 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-08 01:33:40 +00:00
ultramage
3e4bef37b7 Wiped out the poorly written parse code from r2211
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9819 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07 20:30:22 +00:00
ultramage
148f3fca88 Cleaning up of the socket code
- Shuffled includes around for files that were leeching off of socket.h
- Added code that enforces standard shutdown behavior for sockets

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9817 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07 19:34:54 +00:00
FlavioJS
c46f3cf135 - Removed deprecated console code.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9815 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-07 06:25:00 +00:00
skotlex
d65e051707 - Added a wrapper to delete_timer so it prints out from where the invocation was done.
- Fixed some unsigned warnings.
- Fixed Splash attacks consuming 2 ammo on each attack.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9718 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-26 18:49:46 +00:00
ultramage
e034ce07bb Typo hunt
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9684 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-21 12:12:04 +00:00
FlavioJS
78ec0c3b38 yup, i need to rest... (also, copy-paste is eeeevil)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9649 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-12 20:28:11 +00:00
FlavioJS
fa8de3cb7e ups
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9648 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-12 17:15:53 +00:00
FlavioJS
a7ee9a9961 - Cleaned up the ip rules/DDoS section of the code. (the allow,deny and deny,allow cases were switched)
- Updated the information about ip rules and DDoS protection in packet_athena.conf and commented out the line "allow: all" so connections are rejected when a DDoS is detected.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9647 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-12 13:51:38 +00:00
FlavioJS
4b78fc3c9f - Changes to script buildin functions:
* functions checking if a player is attached as soon as possible.
  * functions that required a player attached and would crash if none was 
    there terminate the script now. (others keep the current behaviour to 
    maintain full backward compatibility)
  * removed the unused flag argument in guildskill.
  * bonus,bonus2,bonus3,bonus4 use the same function now (remains the same 
    script-wise)
  * added an optional parameter to setcart,setfalcon,setriding so it's 
    possible to remove the cart/falcon/mount or select a specific cart
  * other cleanups

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9636 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-09 17:31:13 +00:00
ultramage
b0aa97039b Unimportant cleanups
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-08 16:50:54 +00:00