142 Commits

Author SHA1 Message Date
shennetsind
6a2e86ce84 Follow up r15609, fixed gcc warnings
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15610 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-18 22:30:19 +00:00
lordttseven
930048790b * adjusted socket_max_client_packet to a more accurate (if guessed) value to prevent undefined client behavior (may only affect more recent clients?)
+ added a workaround for too large ZC_SKILLINFO_LIST packets resulting from all_skill group permission by sending excess skills one by one (bugreport:5348 and bugreport:5349)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15609 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-18 22:05:21 +00:00
gepard1984
26d7d34132 Socket init now gives meaningful error description if failed to set socket limit (tid:58887).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15574 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-02-13 20:17:45 +00:00
gepard1984
4d01a4f6e6 Added user-friendly socket error messages (bugreport:117).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15518 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-25 03:44:04 +00:00
shennetsind
dad1da6ed2 Fixed gm_all_skill, bugreport:5239
Removed broken skills from skill tree, so @allskill doesn't give resource errors when gm_all_skill is enabled.
Increased maximum client packet size drop limit (was limiting gm_all_skill unnecessarily since the client doesn't crash with it)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15462 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-15 04:50:51 +00:00
gepard1984
5b66b21b67 Sending to a broken socket will no longer cause SIGPIPE signal to be sent back on most *nix systems (those supporting MSG_NOSIGNAL flag) (bugreport:5224)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15415 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-09 22:47:11 +00:00
ai4rei
d0aafe2fdc * Added a check to WFIFOSET to detect zero-length 'sets' of packets, that could cause memory corruption (through code after WFIFOHEAD(fd,packet_len(cmd)) where the length is 0).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14995 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-11-17 23:41:13 +00:00
ai4rei
b13243b678 * Added a message indicating how many concurrent connections the server was compiled to support.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14978 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-10-16 09:56:30 +00:00
flaviojs
dd51e5d71a * Remove fds from the shortlist before processing.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14966 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-10-07 11:09:12 +00:00
flaviojs
967eaaa7a5 * Add consistency checks to the shortlist.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14953 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-09-05 16:18:27 +00:00
flaviojs
305dc5421a * Changed the warning message of when setrlimit fails to be more explicit.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14907 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-07-15 06:16:51 +00:00
flaviojs
13a4063735 * CMake: added search for math.h, added search for socket/nsl library. (tested with Solaris-201011-x86)
* Added missing include to socket.c.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14903 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-07-12 22:01:45 +00:00
ultramage
edcb998d59 Replaced custom type 'intptr' with standard 'intptr_t'.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14873 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-06-30 09:14:21 +00:00
flaviojs
b02133b422 * Merges from charmerge:
- Added DBMap::exists. (r14090)
- Added sv_parse_next, a stepped version of sv_parse (delim-separated parser). (r14100 r14104)
- Added missing fd check to do_close. (r14145)
- Normalized, refactored and restructured some code (in preparation for shutdown/reconnect code). (r14145 r14150)
- Changed the char select request code to allow the char-server to reject it. (player in map-server trying to go to char select) (r14150)
- Added shutdown support to the servers. (incomplete) (r14152)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14851 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-06-16 10:22:35 +00:00
ai4rei
953ddef5bb * Fixed memory corruption when amount of players online approached FD_SETSIZE (topic:262388, bugreport:4856, since r11897).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14781 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-04-09 01:39:46 +00:00
ai4rei
d82968afbf * Fixed a compile error when socket send shortlists are disabled (s->eof instead of s->flag.eof) (follow up to r11930).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14779 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-04-08 16:25:50 +00:00
ai4rei
7557d37013 * Various accumulated cleanups and fixes.
- Improved the compile speed for files which include common/socket.h on windows builds (related r10471).
- Moved FIFOSIZE_SERVERLINK define from common/mmo.h to common/socket.h (since it is a server connection FIFO size setting).
- Fixed script command 'areamobuseskill' canceling monster's skill cast before it determined it's new target, which could be 'none' (bugreport:3272, since r13897).
- Added a protection against attempts to read an empty backup / write to a full backup in skill_dance_switch as per TODO from r11347.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14690 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-01-31 12:39:54 +00:00
ai4rei
8fb6c1f646 * Fixed faulty WFIFO reallocation causing memory exhaustion (bugreport:4737, since r1816, related r11503, r11571, r11886 and r12232).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14689 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-01-31 11:30:57 +00:00
ai4rei
7a85df4fe0 * Resolving allow/deny IP rules not working (bugreport:2632).
- Fixed 'mask' being filled with 'ip' when standard mask was specified (since r9647).
- Fixed 'ip' and 'mask' (bit mask) being stored in wrong byte order (network order instead of host order) (since r10162).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14683 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-01-28 01:38:33 +00:00
ai4rei
ff135c1ee5 * Added an error message when a client connection exceeds the socket write buffer, so that it does not appear to be closed for no apparent reason (follow up to r13469).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14546 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-02 16:40:44 +00:00
ai4rei
10396bbbbf * Too large client packets, which would otherwise cause the client to crash, are now dropped and reported (bugreport:4391).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14503 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-11-25 23:06:06 +00:00
FlavioJS
8326096602 * Modified WFIFOSET to trigger a fatal error when trying to send a packet that is too big.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13539 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-20 05:53:50 +00:00
FlavioJS
672dbf2946 * Added a limit of 1MB of pending data in the write fifo for non-server sockets. Connections that go over the limit are closed.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13469 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-21 15:18:51 +00:00
FlavioJS
2fdf093539 * Made the socket limit not be set in cygwin, which has bogus behavior. (bugreport:1684)
* Made the socket limit be set to the maximum allowed value when setting to FD_SETSIZE fails.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12839 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-16 05:07:56 +00:00
FlavioJS
c9a3dc80bf * Added experimental code to set the socket limit at runtime.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12803 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-09 23:44:52 +00:00
FlavioJS
c880052f0f * Changed the data field of timers from int to intptr.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-21 21:34:31 +00:00
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