Jan Vidar Krey
92b65a0e14
Created a connection establishment API.
...
This API provides transparent asynchronous DNS lookups
with both IPv4 and IPv6 support, and in addition will try
to connect to all addresses until one of them work.
This implements the "happy eyeballs" algorithm provided that the client supports IPv6
and that the DNS records provides both IPv6 and IPv4 addresses.
2013-02-05 22:40:20 +01:00
Jan Vidar Krey
4d438e1e90
Don't poll the connection monitor if there are no connections added.
...
This caused the backends to return an error code, which
in turn ended the mainloop. However, several other things
also might occur in the main loop, such as DNS lookups which
come prior to creating any connections that in turn would be monitored.
2013-02-05 22:38:13 +01:00
Jan Vidar Krey
2d2ccc0039
Merge branch 'async_dns_api'
2012-11-01 10:42:19 +01:00
Jan Vidar Krey
0a2f9c4b79
Merge branch 'autotest'
2012-11-01 10:40:51 +01:00
Jan Vidar Krey
ae62c35cb9
Disable SSL compression.
2012-11-01 10:39:31 +01:00
Jan Vidar Krey
38b19f633d
Fix memory leaks and report "host is not found" correctly.
2012-10-25 04:13:05 +02:00
Jan Vidar Krey
470c936e63
Converted the DNS resolver to work with the new threading API abstraction.
2012-10-25 00:40:16 +02:00
Jan Vidar Krey
793790d089
Initial implementation of an async DNS client API with getaddrinfo + pthreads.
2012-10-24 23:19:14 +02:00
Jan Vidar Krey
19559f4974
Make sure we count OpenSSL traffic for the byte IO statistics.
2012-10-18 11:40:18 +02:00
Jan Vidar Krey
c50eb90bee
Removed the last bits of OpenSSL code called directly
2012-10-17 20:53:05 +02:00
Jan Vidar Krey
1e0927f510
Update copyright year.
2012-10-17 20:00:52 +02:00
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
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
20a847e1b4
Moved the ipcalc code to the network directory.
2012-10-03 12:59:05 +02:00
Jan Vidar Krey
35bfefa717
Fix debug output typo.
2012-09-27 15:29:19 +02:00
Tilka
ccb66ced4f
don't show error on SIGTERM in select() backend
2012-05-05 01:10:24 +02:00
Tilka
e925db2b98
small cleanup
2012-04-19 02:56:27 +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
e972b03f38
Fix SSL disconnect memory leak.
2011-12-02 13:03:17 +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
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
bad4512a37
Fix compiler warnings using gcc 4.6.
2011-11-28 16:30:35 +01: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
a79fcd796e
Shutdown SSL on close.
2011-08-16 12:07:17 +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
e5bb7057de
Windows fixes.
2011-02-05 17:11:23 +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
1480b7e9c0
Fix bug #133 - Kqueue backend crash (BSD/OSX)
2010-05-28 15:22:33 +02:00
Jan Vidar Krey
77faac0494
Fixed some minor issues found during code review.
2010-05-25 22:47:30 +02:00
Jan Vidar Krey
b29f34af4a
FreeBSD kqueue backend fixes.
...
This fixes bug #126 - Core dump on FreeBSD with obsolete_clients=0
2010-04-22 16:11:50 +02:00
Jan Vidar Krey
076492f1b9
Fix some small memory leaks.
2010-04-21 18:34:55 +02:00
Jan Vidar Krey
8815118fde
Added flood control support.
...
This closes bug #79 : Flood control, and rate limits
2010-04-05 16:01:07 +02:00
Jan Vidar Krey
8bed952022
Fixed nasty hub freeze caused by timers being injected for the same timestamp as it is being removed from.
2010-03-23 01:06:04 +01:00
Jan Vidar Krey
c4604a7e94
Make code clearer.
2010-03-23 00:46:25 +01:00
Jan Vidar Krey
236daeae53
Assert if inserting an invalid timer.
2010-03-15 22:59:16 +01:00
Jan Vidar Krey
862c6a1baf
Reduce timeout queue window size.
2010-03-13 00:16:15 +01:00
Jan Vidar Krey
82eeaa1fba
Fix bug #114 : FreeBSD compile error.
2010-02-11 07:54:42 +01:00
Jan Vidar Krey
6992043f9d
Fix bug #113 : crash when using epoll backend.
2010-02-10 22:06:49 +01:00
Jan Vidar Krey
896bbfcb5d
Compile multiple network backends into the binary and choose which one to use at runtime.
...
This makes it possible to share more code between the backends and also work around
bugs of certain backends on some (versions of) operating systems.
2010-02-10 22:00:13 +01:00