Jan Vidar Krey
2f830d3132
Cleaned up error handling.
2012-10-17 15:39:48 +02:00
Jan Vidar Krey
5884983a2f
Return -1 as error for recv/send only to signal socket has closed, use a number < -1 for socket errors.
2012-10-17 15:02:32 +02:00
Jan Vidar Krey
c43acd97bd
Fixed accept/connect state event propagation.
...
Also removed some unused states and flags.
2012-10-17 09:25:15 +02:00
Jan Vidar Krey
b1f2c93738
Reworked the error handling of non-blocking reads and writes.
...
This should prevent busy loops where the socket is makred readable
but we are really only looking for it to become writable.
2012-10-17 09:16:02 +02:00
Jan Vidar Krey
50912bdf75
More work on splitting out OpenSSL specific bits.
2012-10-15 20:39:03 +02:00
Boris Pek
ddfbb919a7
Fix build in Debian GNU/kFreeBSD.
2012-10-14 02:13:10 +03:00
Jan Vidar Krey
f3922bb3e0
Work on splitting out OpenSSL cleanly.
2012-10-12 14:24:03 +02:00
Jan Vidar Krey
f20c42d05f
Wrapped everything OpenSSL related in a SSL_USE_OPENSSL check macro.
2012-10-02 23:59:11 +02:00
Jan Vidar Krey
3ea38c59af
Better reporting using the !stats command.
2012-10-02 23:59:11 +02:00
Jan Vidar Krey
50292cb8c9
Update the network statistics every 10 seconds instead of 60 seconds.
2012-10-02 23:59:11 +02:00
Jan Vidar Krey
e4fc91dde1
Made the network statistics work again.
2012-10-02 23:59:11 +02:00
Jan Vidar Krey
8086d89e23
Better formatting of byte sizes.
2012-10-02 23:59:11 +02:00
Jan Vidar Krey
cc2ead8136
Use util's format_size.
2012-10-09 10:20:58 +02:00
Jan Vidar Krey
10d8157477
Added a utility function to convert an arbitrary byte size into a human readable string.
...
E.g. 849484 becomes "829.57 KB".
2012-10-09 10:20:12 +02:00
Jan Vidar Krey
0a7cb86014
Fixed a crash in plugin mod_chat_only.
2012-10-09 10:02:08 +02:00
Jan Vidar Krey
2e8c99b7ec
Refurbished the ADC hub stress-tester tool; adcrush
2012-10-02 23:59:11 +02:00
Jan Vidar Krey
cb6236691b
Added more functionality to the ADC client test code.
2012-10-02 23:59:11 +02:00
Jan Vidar Krey
5136525abc
Added API to construct ADC messages with source and destination.
2012-10-02 23:59:11 +02:00
Tillmann Karras
16ee65422d
Fix cbuffer initialization
...
If no data was appended, cbuf_get() would return a pointer to
uninitialized memory. Now it returns a pointer to a string of zero
length.
2012-10-03 22:40:33 +02:00
Jan Vidar Krey
f0b11dadf1
Refurbished adcrush (hub stress tester).
2012-10-03 13:51:07 +02:00
Jan Vidar Krey
61073bd304
Fix rare protocol parse error due to incorrect recv queue handling.
2012-10-03 13:49:50 +02:00
Jan Vidar Krey
20a847e1b4
Moved the ipcalc code to the network directory.
2012-10-03 12:59:05 +02:00
Jan Vidar Krey
a90807fccb
Fix version auto generation.
2012-10-03 12:02:35 +02:00
Jan Vidar Krey
089966d918
Fix ADC client send queue.
2012-10-03 11:44:07 +02:00
Jan Vidar Krey
e95a892fb7
MSVC compile warnings fixed.
2012-10-02 22:47:43 +02:00
Jan Vidar Krey
62d14a9c52
Plugin compile fixes for windows systems.
2012-10-02 21:42:58 +02:00
Jan Vidar Krey
37e78eada1
Replaced the GNU makefiles with CMake.
2012-10-02 15:49:27 +02:00
Jan Vidar Krey
5b4467acd5
Minor stuff on the uhub-admin tool based on the changes in the ADC client code.
2012-09-28 15:52:39 +02:00
Jan Vidar Krey
ff2e2a3d4c
Misc ADC client fixes.
2012-09-28 15:51:39 +02:00
Jan Vidar Krey
a599b29b9d
Added more complete API for dealing with ADC messages.
...
- Added a construct method which would take a fourcc and a source.
- Added an unescape function that would write into pre-allocated memory.
2012-09-28 15:49:46 +02:00
Jan Vidar Krey
fc52f0e030
Renamed the hub_sendq and hub_recvq to ioq_send and ioq_recv.
2012-09-28 09:24:04 +02:00
Jan Vidar Krey
35bfefa717
Fix debug output typo.
2012-09-27 15:29:19 +02:00
Jan Vidar Krey
845aefc941
Decouple hub and user manager more cleanly.
2012-09-27 15:29:00 +02:00
Jan Vidar Krey
4fcf3ffc83
Add support for configuration options that depend on certain #ifdefs.
2012-09-27 15:28:46 +02:00
Blair Bonnett
3f777ce5e2
Fix msg_check_escapes() so it allows escaped backslashes.
...
If a valid escape (\n, \s, or \\) is found, increment the pointer
marking the start of the next search so we don't start looking at the
escaped character. The old behaviour was a problem for messages
containing slashes -- the escaped slash would be looked at in the next
pass and so the following character would be treated as an escape,
causing the message to be dropped for having "an invalid ADC escape".
2012-09-17 23:31:20 +12:00
Jan Vidar Krey
fb11589bb0
Drop all ADC messages containing illegal ADC escapes.
2012-08-07 11:55:29 +02:00
Jan Vidar Krey
cba0121574
ADCH++ had a security bug that allowed UCMD extension to be relayed.
...
uhub did not have this security bug since the hub did not advertise support for the
UCMD extension, but the message was still correctly relayed as specified in the
protocol specification.
However, this commit adds support for the UCMD extension, but only to the extent
that uhub will advertise it and uhub will also drop any such CMD message
generated by a client and will (currently) never issues a CMD message by itself.
2012-07-30 00:08:12 +02:00
Yorhel
b9005b1724
core/probe.c: Fix TLS probe when handshake version != SSL version
...
GnuTLS sends a handshake with SSL 3.0 (0x0300) in the outer packet, but
mentions TLS 1.2 (0x0303) in the Client Hello. There's no real need for
uhub to validate these fields, as OpenSSL should do that itself already.
Just use the version mentioned in Client Hello for logging output.
2012-06-02 14:46:47 +02:00
Jan Vidar Krey
571abddd98
Cleaned up code generator for config file parsing.
2012-05-23 23:37:42 +02:00
Jan Vidar Krey
3ae6da4a64
Print error message in case of shutting down due to errors loading plugins.
2012-05-14 23:35:53 +02:00
Jan Vidar Krey
f3754fb4e4
Fix Windows file read discrepancy.
2012-05-14 23:33:54 +02:00
Tilka
274f17bce0
use "I64u" instead of PRIu64 on Windows
2012-05-11 16:45:07 +02:00
Tilka
8365278cbf
fix uhub_itoa() and uhub_ulltoa()
2012-05-10 23:24:42 +02:00
Tilka
eb49174ab3
marked plugin callbacks that are not called yet
2012-05-10 01:37:20 +02:00
Tilka
9e52ea7eff
add on_change_nick() to struct plugin_funcs
...
It's not called anywhere yet.
Also reorder some typedefs, rename the ip check functions and add
struct {hub,plugin}_user parameter to on_check_ip_late(). Not sure where
to insert a call to that...
2012-05-09 23:33:03 +02:00
Tilka
05fd6bb723
minimal changes
2012-05-09 23:27:06 +02:00
Jan Vidar Krey
c5516b5729
Merge branch 'master' of https://github.com/Tilka/uhub
2012-05-06 23:15:06 +02:00
Jan Vidar Krey
3aaabbc543
Fix issue with QUI messages being allowed through the hub
2012-05-06 23:09:02 +02:00
Tilka
ccb66ced4f
don't show error on SIGTERM in select() backend
2012-05-05 01:10:24 +02:00
Tilka
d49127b507
changed all calls to assert() to uhub_assert()
2012-05-02 21:06:46 +02:00
Jan Vidar Krey
ccded3f642
Don't strip the U4/U6 port numbers if updated after login.
2012-05-02 20:45:31 +02:00
Jan Vidar Krey
216757a1f4
Fix compile issue with double typedefs.
2012-05-02 00:29:26 +02:00
Jan Vidar Krey
458c7fa741
Remove list assertion when removing element that is not in the list.
...
Breaks autotest.
2012-05-01 20:40:27 +02:00
Jan Vidar Krey
74ca5a0a33
Cleaned up command handling code, by splitting into multiple files.
2012-05-01 20:15:49 +02:00
Tilka
e4cf01ff1f
OMG OPTIMIZED
2012-04-21 16:56:22 +02:00
Tilka
b72f5a407a
fix double free
2012-04-21 16:51:41 +02:00
Tilka
776f7d0bff
use "0" instead of "false"
...
otherwise compilation breaks when using a C90 compiler
2012-04-21 13:35:06 +02:00
Tilka
27ceb7ad33
fix use of uninitialized struct ip_range
2012-04-21 09:46:50 +02:00
Tilka
c5036a3ff8
fix random crashes upon !reload
...
A struct plugin_hub_internals was falsely casted to struct
plugin_callback_data. This caused the contained commands list pointer to point to
a struct hub_info and commands->size took the value of a pointer to a struct
net_connection. Since size is increased/decreased every time an item is
added to/removed from the list, this resulted in some funny crashes.
This fix is a little dirty as it exports some internals.
2012-04-21 09:22:06 +02:00
Tilka
832277f653
fix command syntax
2012-04-21 06:08:36 +02:00
Tilka
c525e59fa5
use arg parser in !broadcast
2012-04-21 01:56:26 +02:00
Jan Vidar Krey
781f22edab
Fixed tiny memory leak on reload/shutdown.
2012-04-19 20:05:37 +02:00
Jan Vidar Krey
55030935a7
Merge https://github.com/Tilka/uhub
2012-04-19 23:17:39 +02:00
Tilka
4f0c8e0356
fix multiple optional arguments
...
Assuming the argument definition "?xy", it was previously not possible
to specify only x. Also, the syntax will now be shown as "[x [y]]"
instead of "[x] [y]".
2012-04-19 03:06:52 +02:00
Tilka
e925db2b98
small cleanup
2012-04-19 02:56:27 +02:00
Tilka
e408ae3eba
automatically clean up plugin commands
2012-04-19 02:53:43 +02:00
Jan Vidar Krey
1dba731cc3
Fix bug #158 - Added plugin for setting topic (hub description).
...
Load plugin mod_topic, and it will provide 3 new user commands:
!topic - set new topic
!cleartopic - reset the topic (use default hub description)
!showtopic - show the current topic
2012-04-19 00:33:38 +02:00
Jan Vidar Krey
df7bbc094f
Command arguments handling + cleanups
...
Fix bug #185 - Args of !commands lost/damaged.
All string arguments were incorrectly freed after being added to the argument list for a command.
Instead this fix makes sure it is properly copied into a new string, and by doing so this requires
a new API for dealing with hub command arguments in a type safe manner, and also allows for each
argument to be cleaned up properly when the command is no longer needed.
This also fixes issues with parse errors for certain types, and optional arguments (previously it was impossible
to tell the difference for an integer with value 0 or if no integer was given).
All arguments can now be accessed through the new functions
hub_command_arg_reset() and hub_command_arg_next().
These functions are also exposed to plug-ins.
The argument type notations for 'n' has changed to mean nick (string),
and 'u' is used for a user (struct hub_user - must be online).
2012-04-18 23:03:05 +02:00
Jan Vidar Krey
5068fe8351
Cygwin/Mingw32 compile fixes.
2012-01-25 00:20:59 +01:00
Jan Vidar Krey
8607b40278
Fix bug #180 - Crash after signal SIGHUP.
2012-01-19 02:58:20 +01:00
Jan Vidar Krey
a9b5c6db38
Fixed minor issues found with static code analyzis (Clang).
2012-01-13 01:31:34 +01:00
Jan Vidar Krey
ff639d87c3
Disable SQL debugging output.
2012-01-10 02:21:22 +01:00
Jan Vidar Krey
5edf2b60d4
Fixed bug #179 - !broadcast command does not work properly.
2012-01-10 02:21:22 +01:00
Jan Vidar Krey
eee2636582
Added a chat only hub plugin that disables searching and connection setup.
...
This also deprecates the built-in chat_only configuration option.
If you need this functionality, then load the mod_chat_only plugin (if it is loaded then only operators
are able to search, connect, etc).
2012-01-09 20:58:19 +01:00
Jan Vidar Krey
ca3782c570
Merge branch 'mod_chat_history_work'
...
Conflicts:
doc/plugins.conf
2012-01-03 23:22:41 +01:00
Jan Vidar Krey
875f55a401
Added a chat history plugin.
...
The mod_chat_history plugin provides chat history for all public chat messages.
Can be configured in the following ways:
- history_max: max number of messages stored in history
- history_default: the default number of messages to be returned when invoking !history
- history_connect: if > 0, then this number of messages is automatically sent when connecting to the hub
Removed the built-in !history command in favour of the mod_chat_history plug-in.
Make sure we unescape all chat messages before forwarding any of them to plugins.
Update example plugins.conf in documentation directory.
2012-01-03 23:22:41 +01:00
Jan Vidar Krey
a9ed03cf38
Cleaned up the mod_welcome parse failure code.
2012-01-02 12:54:35 +01:00
Jan Vidar Krey
7b392acbf5
Format the help list appropriately (as in older versions).
2011-12-28 10:45:02 +01:00
Jan Vidar Krey
66c77d5170
Don't broadcast the \!example command when issuing it (mod_example.c bug).
2011-12-28 10:44:03 +01:00
Jan Vidar Krey
1700a27619
Fix bug #173 - Fix the command parsing errors.
2011-12-22 01:49:21 +01:00
Jan Vidar Krey
fe15c4cb58
Fix VS2010 build issues.
2011-12-22 01:39:40 +01:00
Jan Vidar Krey
ecedd44fee
Added %c substitution to mod_welcome to print the current user credentials.
2011-12-22 00:14:34 +00:00
Jan Vidar Krey
24e2c2090e
Fix welcome plugin handle, and build issues.
2011-12-21 23:50:23 +00:00
Jan Vidar Krey
2a190859bd
Remove the configuration options 'file_motd' and 'file_rules'. Use mod_welcome instead.
2011-12-21 14:44:37 +01:00
Jan Vidar Krey
88dd1341d2
Started working on mod_welcome which will replace the built-in file_motd and file_rules configuration options.
2011-12-21 14:31:29 +01:00
Jan Vidar Krey
b24d4b85cd
Split out the command buffer code to a generic buffer.
2011-12-21 13:53:53 +01:00
Jan Vidar Krey
f34f0328a3
Removed the PLUGIN_SUPPORT code, since plugin support is now mandatory.
2011-12-21 10:48:37 +01:00
Jan Vidar Krey
f31fc65e1d
VS2010 fixes.
2011-12-21 01:42:21 +01:00
Jan Vidar Krey
7325b15786
Fix bug #174 - Wrong check for fdatasync() availability.
2011-12-21 00:55:22 +01:00
Jan Vidar Krey
ec3afc3a44
Added a simple tool to create and manipulate the uhub sqlite authentication database.
2011-12-20 16:20:54 +01:00
Jan Vidar Krey
ba26f4c5e2
Update copyright notices and added licenses to files that were missing it.
2011-12-19 10:54:47 +01:00
Jan Vidar Krey
68dc3cafc7
Removed unused files.
2011-12-19 10:51:45 +01:00
Jan Vidar Krey
583900cec5
Fix compile warning about unused result for write() function.
2011-12-19 00:40:02 +01:00
Jan Vidar Krey
93caa9b3c1
Fix compile warning about uninitiaized variable.
2011-12-19 00:36:53 +01:00
Jan Vidar Krey
f2cb84180a
Refactored command parsing.
...
Allows for automatically tested command parsing by splitting parsing
and invokation of the commands.
2011-12-19 00:34:45 +01:00
Jan Vidar Krey
fc5e09aa9e
fixup! Fix bug #171 - Race condition could allow two users with same CID or nick to enter the hub.
2011-12-12 12:03:28 +01:00
Jan Vidar Krey
b4779bfb12
Fix bug #171 - Race condition could allow two users with same CID or nick to enter the hub.
2011-12-11 13:38:36 +01:00
Jan Vidar Krey
6d609e18a2
Windows/VS2010 fixes.
2011-12-11 12:53:09 +01:00
Jan Vidar Krey
ebd3ccf98e
Disable the kqueue backend because it crashes under certain circumstances (see bug #169 ).
2011-12-09 17:01:02 +01:00
Jan Vidar Krey
aec89fc125
Fix memory leaks when parsing user commands.
2011-12-09 16:54:48 +01:00
Jan Vidar Krey
9377fb537a
Fix memory leak when unloading plugins.
2011-12-09 16:39:19 +01:00
Jan Vidar Krey
afda1d7b9d
Added a LOG_PLUGIN macro for plugin output debug messages.
...
Converted all TRACE messages related to plugins to LOG_PLUGIN.
2011-12-09 16:38:11 +01:00
Jan Vidar Krey
2352e5a0dd
Fix memory leak for built-in commands.
2011-12-09 16:35:42 +01:00
Jan Vidar Krey
1dc79c641c
Cleanup: do not use strcat().
2011-12-09 15:58:58 +01:00
Jan Vidar Krey
41824ce2bf
Fix compile issues on debian ports for GNU Hurd and Linux for s390.
2011-12-09 14:31:02 +01:00
Jan Vidar Krey
65c2652a22
Fix build errors on the Debian kfreebsd port.
2011-12-09 14:24:21 +01:00
Jan Vidar Krey
fb89307b0a
fixup! Fix compiler warnings using gcc 4.6.
2011-12-09 14:21:16 +01:00
Jan Vidar Krey
7825c413d4
fixup! Added support for dynamic commands.
2011-12-09 13:04:05 +01:00
Jan Vidar Krey
318163c066
Added support for dynamic commands.
...
Dynamic commands are user commands that can be added dynamically to
the hub by a plugin.
The example plugin (mod_example.c) adds a !example command that when
invoked send a message to the user who invoked it.
2011-12-09 10:29:50 +01:00
Jan Vidar Krey
e972b03f38
Fix SSL disconnect memory leak.
2011-12-02 13:03:17 +01:00
Jan Vidar Krey
9f16298688
Fix minor valgrind issues
...
- Fix valgrind invalid write of 1 byte.
- Fix a few plugin related memory leaks.
2011-12-01 15:14:01 +01:00
Jan Vidar Krey
c17b43e77f
Fix bug #144 - Count SSL traffic in !stats. But this does not include the SSL overhead.
2011-11-30 14:54:54 +01:00
Jan Vidar Krey
675e6af3ba
Don't print warnings about known extensions that don't affect the hub at all (DHT0).
2011-11-30 14:14:36 +01:00
Jan Vidar Krey
2396d8555c
Fix bug #167 - Build errors on OpenBSD.
...
- Don't link with -ldl, as it is not needed in most cases
- Don't compile plugins if USE_PLUGINS=NO
- Fix warning about missing newline at end of getopt.h
- Removed the O_NOATIME open() flag from the logging plugin.
- Removed the O_LARGEFILE open() flag. _FILE_OFFSET_BITS is 64.
- Use fsync() if fdatasync() is not available for log file writing.
- Replaced some sprintf() with snprintf() due to compiler warnings (though, they were length limited otherwise).
- Replaced two occurences of strcpy() with memcpy().
2011-11-30 13:43:39 +01:00
Jan Vidar Krey
9981acca08
Supply sid with user information in adcclient test code.
2011-11-30 12:32:59 +01:00
Jan Vidar Krey
99e644597d
Cleaned up the ADC client test code.
...
Now works with ADCS (not very well tested, though)
2011-11-29 16:39:09 +01:00
Jan Vidar Krey
3a39a36fbb
Fix for bug #166 - TLS crash.
2011-11-29 10:19:43 +01:00
Jan Vidar Krey
1102a86463
Adcrush fixes.
2011-11-28 16:36:45 +01:00
Jan Vidar Krey
bad4512a37
Fix compiler warnings using gcc 4.6.
2011-11-28 16:30:35 +01:00
Jan Vidar Krey
3b4a199673
Fix null pointer crash while encountering configuration file errors during parsing.
2011-10-17 09:50:14 +02:00
Jan Vidar Krey
39572c3684
Made plugin loading work properly on Windows.
2011-09-08 01:00:32 +02:00
Jan Vidar Krey
33b94d8eb4
Removed unused functions - prevents compile warnings.
2011-09-07 10:02:43 +02:00
Jan Vidar Krey
324bfcd2c8
Added plugin loader routines for windows.
2011-09-07 00:31:38 +02:00
Jan Vidar Krey
800f6a70f9
Added description to plugin_hub_info (an empty struct causes warning on VS2010).
2011-09-05 23:40:57 +02:00
Jan Vidar Krey
70f13158d3
Merge branch 'master' of github.com:janvidar/uhub
2011-09-05 23:34:05 +02:00
Jan Vidar Krey
9327615448
Compile warning fix.
2011-09-05 23:16:15 +02:00
Jan Vidar Krey
ebe54bcf27
Added plugin events for server wide events (mostly for logging).
2011-08-16 15:11:15 +02:00
Jan Vidar Krey
998f5a57e2
Fix bug #152 - disable self-registering
2011-08-16 15:09:02 +02:00
Jan Vidar Krey
472c489ae1
Fix bug #154 - plugin system is disabled silently if one plugin fails to initialize.
2011-08-16 14:46:11 +02:00
Jan Vidar Krey
bba7c0d05b
Require setting the file name via file=/path/to/file for log file.
2011-08-16 14:33:15 +02:00
Jan Vidar Krey
169b8a4a75
Added option to redirect from adc:// to adcs:// if tls is required.
2011-08-16 12:11:04 +02:00
Jan Vidar Krey
f13bcd8c28
Minor compile fixes.
2011-08-16 12:08:21 +02:00
Jan Vidar Krey
a79fcd796e
Shutdown SSL on close.
2011-08-16 12:07:17 +02:00
Jan Vidar Krey
474e2be308
Fix stupid mistake.
2011-08-16 12:06:44 +02:00
Jan Vidar Krey
47cf3326fd
Don't do SSL_clear unless the SSL object is initialized.
2011-08-16 12:06:34 +02:00
Jan Vidar Krey
3353049ae3
Several SSL/TLS related memory leak fixes.
2011-08-16 12:06:17 +02:00
Jan Vidar Krey
3ccce614d0
Fix SSL/TLS related memory leak.
2011-08-16 12:04:14 +02:00
Jan Vidar Krey
e30505b54e
Fix 100% CPU issue with SSL connections.
2011-08-16 12:04:03 +02:00
Jan Vidar Krey
3bc764adf5
Winsock fixes.
2011-08-08 00:12:50 +02:00
Jan Vidar Krey
6becadc984
Compile fix for gcc.
2011-02-05 17:18:08 +01:00
Jan Vidar Krey
d01813ef48
Added project files for Visual Studio 2010.
2011-02-05 17:13:26 +01:00
Jan Vidar Krey
e5bb7057de
Windows fixes.
2011-02-05 17:11:23 +01:00
Jan Vidar Krey
bf4ad5624a
Visual Studio compile fixes.
2011-01-12 16:58:18 +01:00
Jan Vidar Krey
03b4252ab5
Link fix in case not everything is linked as one binary.
2011-01-06 12:25:28 +01:00
Jan Vidar Krey
4c238dd946
Fix compile warning.
2011-01-03 00:12:40 +01:00
Jan Vidar Krey
9b57279628
Many Visual C++ compile warnings and errors fixed.
2011-01-03 00:03:07 +01:00
Jan Vidar Krey
adb6641a17
PATCH: Redirect did not work properly (Thanks MiMic)
...
The SID was not included in the redirect and it was thus an
incorrect ADC message which were discarded by most clients.
2010-12-29 14:40:23 +01:00
Jan Vidar Krey
67eabb5a98
Fix #157 : calculation of limits for min/max share on 32 bit architectures.
2010-12-20 23:18:41 +01:00
Jan Vidar Krey
4ede1b2d8a
Fix for bug #156
2010-12-20 11:52:15 +01:00
Jan Vidar Krey
b993e97bb4
Fix bug in config parser where 'foo=bar' did not work, but 'foo = bar' did work due to extra whitespace between tokens.
2010-11-18 22:43:48 +01:00