Commit Graph

106 Commits (cd6678188ead41e5610b468c7b81116fc6093bc6)

Author SHA1 Message Date
James Lee 5f5c024193 supress a useless exception (trying to close a closed stream)
git-svn-id: file:///home/svn/framework3/trunk@13071 4d416f70-5f16-0410-b530-b9f4589650da
2011-06-30 05:12:07 +00:00
James Lee 9d99b9de22 fix a logic error that results in sockets closing instead of resending data, really fixes #4642; also fixes a nil error when read() failed, makes logs actually useful
git-svn-id: file:///home/svn/framework3/trunk@12885 4d416f70-5f16-0410-b530-b9f4589650da
2011-06-08 21:36:34 +00:00
James Lee 9311f5b198 add a unit test for ring buffer. all these tests pass on 1.8.7-p299, 1.9.1-p378, and 1.9.2-p180
git-svn-id: file:///home/svn/framework3/trunk@12694 4d416f70-5f16-0410-b530-b9f4589650da
2011-05-23 19:15:00 +00:00
HD Moore aa98667a77 Two performance fixes for HTTP Servers. The first reduces latency from 0.25s to near-zero for back-to-back connections by using the Queue class as a notify system. The second switches the slow socket.get for the much faster socket.read
git-svn-id: file:///home/svn/framework3/trunk@12615 4d416f70-5f16-0410-b530-b9f4589650da
2011-05-14 18:34:06 +00:00
HD Moore 4500d09c2f Bubble up errors from socket.get_once() and trigger an EOFError when read() returns nil
git-svn-id: file:///home/svn/framework3/trunk@12607 4d416f70-5f16-0410-b530-b9f4589650da
2011-05-13 06:37:15 +00:00
James Lee e621828cac check for a nil return value from write(), fixes #4329
git-svn-id: file:///home/svn/framework3/trunk@12528 4d416f70-5f16-0410-b530-b9f4589650da
2011-05-03 06:55:15 +00:00
HD Moore 1c86441f12 This removes the abortive_close code for stream sockets, it was leading to inconsistencies in how dead sessions were cleaned up
git-svn-id: file:///home/svn/framework3/trunk@12519 4d416f70-5f16-0410-b530-b9f4589650da
2011-05-03 03:59:02 +00:00
HD Moore b93e134195 Use shell_write vs ring.put
git-svn-id: file:///home/svn/framework3/trunk@12516 4d416f70-5f16-0410-b530-b9f4589650da
2011-05-02 23:07:02 +00:00
HD Moore d98f8dfd89 Make it clear that all Rex::IO::Stream implementations must accept a second parameter called opts for the read, write, and put methods
git-svn-id: file:///home/svn/framework3/trunk@12515 4d416f70-5f16-0410-b530-b9f4589650da
2011-05-02 21:39:09 +00:00
James Lee e30d2bbdd4 revert r12476, as it breaks interactive meterpreter channels. r12495 and r12494 should deal with what it was it was trying to solve in the first place. fixes #4293.
git-svn-id: file:///home/svn/framework3/trunk@12496 4d416f70-5f16-0410-b530-b9f4589650da
2011-05-02 00:29:48 +00:00
HD Moore 22537ffbde A few more tweaks to non-blocking ssl mode
git-svn-id: file:///home/svn/framework3/trunk@12482 4d416f70-5f16-0410-b530-b9f4589650da
2011-04-30 10:24:52 +00:00
HD Moore 5758f2ab46 Add support for non-blocking OpenSSL sockets when the Ruby version supports them (1.9.2+ or with openssl-nonblock gem).
git-svn-id: file:///home/svn/framework3/trunk@12480 4d416f70-5f16-0410-b530-b9f4589650da
2011-04-30 07:59:33 +00:00
HD Moore 20c949d1fb Fix some bad copypasta from non-blocking write commit. This should make stream sessions happy again.
git-svn-id: file:///home/svn/framework3/trunk@12476 4d416f70-5f16-0410-b530-b9f4589650da
2011-04-30 04:25:42 +00:00
HD Moore 8ba356271f Fixes #4223 on Windows by catching the specific exception class
git-svn-id: file:///home/svn/framework3/trunk@12450 4d416f70-5f16-0410-b530-b9f4589650da
2011-04-27 00:20:32 +00:00
HD Moore 9d715a1492 Switch from readpartial to read_nonblock, which works around an OpenSSL deadlock. This also adds support for the openssl-nonblock gem's specific exceptions
git-svn-id: file:///home/svn/framework3/trunk@12414 4d416f70-5f16-0410-b530-b9f4589650da
2011-04-23 20:45:49 +00:00
HD Moore a61e7290b0 Do not modify the string passed to write() operations
git-svn-id: file:///home/svn/framework3/trunk@12394 4d416f70-5f16-0410-b530-b9f4589650da
2011-04-21 17:29:11 +00:00
HD Moore 8b920a8f95 Dont modify the data buffer passed to write
git-svn-id: file:///home/svn/framework3/trunk@12393 4d416f70-5f16-0410-b530-b9f4589650da
2011-04-21 17:17:26 +00:00
Mike Smith d5d9d56081 Create a dedicated db table to track sessions & session events.
* Add new db tables for session & session_events
* Migrate existing session data from events db table
* Modify session report methods to log to the new tables


git-svn-id: file:///home/svn/framework3/trunk@12273 4d416f70-5f16-0410-b530-b9f4589650da
2011-04-07 21:59:32 +00:00
James Lee c09be5561d this should have been a raise all along, see r9752
git-svn-id: file:///home/svn/framework3/trunk@12119 4d416f70-5f16-0410-b530-b9f4589650da
2011-03-23 23:15:11 +00:00
Joshua Drake f001463ed1 catch ENOTSOCK errors in has_read_data?
git-svn-id: file:///home/svn/framework3/trunk@11541 4d416f70-5f16-0410-b530-b9f4589650da
2011-01-11 08:47:42 +00:00
HD Moore c28ad8ea0c Minor improvements and corner case bug fixes to session handling. This fixes issues that can come up when a stream is shut down
git-svn-id: file:///home/svn/framework3/trunk@11371 4d416f70-5f16-0410-b530-b9f4589650da
2010-12-18 03:00:26 +00:00
James Lee b89fe64e74 whitespace
git-svn-id: file:///home/svn/framework3/trunk@11209 4d416f70-5f16-0410-b530-b9f4589650da
2010-12-02 22:13:39 +00:00
HD Moore 29073a519a Small tweaks to the thread code, add an update method
git-svn-id: file:///home/svn/framework3/trunk@11011 4d416f70-5f16-0410-b530-b9f4589650da
2010-11-12 17:28:40 +00:00
HD Moore a12d9f8dbf This patch adds detailed thread tracking across the metasploit framework, along with a new console command (threads) to manage these. This level of tracking is required to accurately monitor background tasks, assist with debugging, and kill orphaned threads.
git-svn-id: file:///home/svn/framework3/trunk@11003 4d416f70-5f16-0410-b530-b9f4589650da
2010-11-12 06:19:49 +00:00
HD Moore 467fceb2a7 Fixes #2692 by retrying writes when the sendQ is full.
git-svn-id: file:///home/svn/framework3/trunk@10712 4d416f70-5f16-0410-b530-b9f4589650da
2010-10-16 21:50:03 +00:00
HD Moore 7ccf4e2f11 Change stream writes to be non-blocking, this has been pretty heavily tested over the last couple days, and should preserve the original behavior as well. This fixes a deadlock in Ruby in certain conditions
git-svn-id: file:///home/svn/framework3/trunk@10306 4d416f70-5f16-0410-b530-b9f4589650da
2010-09-13 14:39:17 +00:00
HD Moore 16134447d9 Cleanup / cosmetic for dcerpc, make EBADF pretend to be EOFError in terms of what exception is raised
git-svn-id: file:///home/svn/framework3/trunk@9752 4d416f70-5f16-0410-b530-b9f4589650da
2010-07-09 19:05:16 +00:00
HD Moore adf33feb0e Catch an odd corner case with zero timeouts - this broke dcerpc over tcp
git-svn-id: file:///home/svn/framework3/trunk@9749 4d416f70-5f16-0410-b530-b9f4589650da
2010-07-09 17:58:59 +00:00
HD Moore 864fcafb4a See #2167. This should make all platforms equal now in terms of how read selects are handled. It looks like OS X needs the same workaround as Windows
git-svn-id: file:///home/svn/framework3/trunk@9641 4d416f70-5f16-0410-b530-b9f4589650da
2010-07-01 14:49:49 +00:00
HD Moore dfa7fb7d0b Move away from Kernel.select in exchange for IO.select, solves some issues with windows compatibility
git-svn-id: file:///home/svn/framework3/trunk@9330 4d416f70-5f16-0410-b530-b9f4589650da
2010-05-20 20:42:17 +00:00
HD Moore a29371647f Force cygwin to use the Rex::ThreadSafe.select code
git-svn-id: file:///home/svn/framework3/trunk@9322 4d416f70-5f16-0410-b530-b9f4589650da
2010-05-18 15:11:19 +00:00
HD Moore 4308689fd9 Remove diagnostic line
git-svn-id: file:///home/svn/framework3/trunk@9165 4d416f70-5f16-0410-b530-b9f4589650da
2010-04-27 23:08:06 +00:00
HD Moore 49635c4ab0 Call the right select:
git-svn-id: file:///home/svn/framework3/trunk@9164 4d416f70-5f16-0410-b530-b9f4589650da
2010-04-27 22:55:17 +00:00
HD Moore 936190125e Bug fix for Ruby 1.9 (error can close the server socket, not the client socket). Small jRuby compatibility improvement
git-svn-id: file:///home/svn/framework3/trunk@9155 4d416f70-5f16-0410-b530-b9f4589650da
2010-04-27 14:39:09 +00:00
HD Moore 3ad0560d00 Use the kernel select in 1.9, its less buggy and doesn't have the issues that lead us to create our own in the first place
git-svn-id: file:///home/svn/framework3/trunk@9044 4d416f70-5f16-0410-b530-b9f4589650da
2010-04-09 22:48:31 +00:00
HD Moore 3c4024a0c6 Expose the server client list, set the keepalive
git-svn-id: file:///home/svn/framework3/trunk@8992 4d416f70-5f16-0410-b530-b9f4589650da
2010-04-03 06:05:06 +00:00
HD Moore 432f1676aa Increase LocalRelay block size, return exploit_uuid in sessions
git-svn-id: file:///home/svn/framework3/trunk@8939 4d416f70-5f16-0410-b530-b9f4589650da
2010-03-27 15:44:33 +00:00
HD Moore 6bd2a954cf Lots of small changes, the big one is moving from sysread -> readpartial in the stream base class
git-svn-id: file:///home/svn/framework3/trunk@8764 4d416f70-5f16-0410-b530-b9f4589650da
2010-03-10 06:43:46 +00:00
Stephen Fewer 6335fde3e1 Commit the Ruby side for the UDP socket pivoting. Change the TCP client channel so the respective StreamAbstraction is responsible for monitoring its own rsock.
git-svn-id: file:///home/svn/framework3/trunk@8431 4d416f70-5f16-0410-b530-b9f4589650da
2010-02-09 16:45:46 +00:00
Stephen Fewer fd2469db24 Commit the Ruby end for TCP server channels, the modified TCP client channels and the support for pivoting a reverse_tcp meterpreter.
git-svn-id: file:///home/svn/framework3/trunk@8384 4d416f70-5f16-0410-b530-b9f4589650da
2010-02-06 17:59:25 +00:00
Tod Beardsley 3fe8d0375b Adds a print_debug message handler -- mostly useful during development to easily inspect objects.
git-svn-id: file:///home/svn/framework3/trunk@8353 4d416f70-5f16-0410-b530-b9f4589650da
2010-02-02 21:03:07 +00:00
HD Moore 2c3cace80c Fix up the classes needed by msfweb. Fixes #495
git-svn-id: file:///home/svn/framework3/trunk@7447 4d416f70-5f16-0410-b530-b9f4589650da
2009-11-10 15:59:49 +00:00
HD Moore 075b8c5fa4 Fixes #434. Always use Timeout.timeout() -- on Ruby 1.9 this results in the Timeout::TimeoutError exception vs RuntimeError
git-svn-id: file:///home/svn/framework3/trunk@7323 4d416f70-5f16-0410-b530-b9f4589650da
2009-11-02 18:14:57 +00:00
HD Moore 753c7aa7d5 Apply patch to fix SSL server support
git-svn-id: file:///home/svn/framework3/trunk@6391 4d416f70-5f16-0410-b530-b9f4589650da
2009-03-25 16:41:10 +00:00
kris 248f1e9fc3 Remove "#{xxx.to_s}" redundancies ('s/\(#{[^}]*\)\.to_s}/\1}/g')
git-svn-id: file:///home/svn/framework3/trunk@6022 4d416f70-5f16-0410-b530-b9f4589650da
2008-12-19 07:11:08 +00:00
HD Moore a7595fce6c Fixes #250. Solves an old bug with background jobs not working right, fixes the 'background modules dont work' bug as well.
git-svn-id: file:///home/svn/framework3/trunk@5926 4d416f70-5f16-0410-b530-b9f4589650da
2008-11-16 20:54:41 +00:00
HD Moore cf3475644e Remove debugging code
git-svn-id: file:///home/svn/framework3/trunk@5917 4d416f70-5f16-0410-b530-b9f4589650da
2008-11-13 18:28:15 +00:00
HD Moore cca9c39eab Typo fix from Rhyss
git-svn-id: file:///home/svn/framework3/trunk@5881 4d416f70-5f16-0410-b530-b9f4589650da
2008-11-11 05:39:23 +00:00
HD Moore e9b3919ace Normalize exceptions across socket libraries
git-svn-id: file:///home/svn/framework3/trunk@5879 4d416f70-5f16-0410-b530-b9f4589650da
2008-11-11 05:11:40 +00:00
HD Moore 6dd840e4b3 Fixes #201. Better error processing of client sockets
git-svn-id: file:///home/svn/framework3/trunk@5872 4d416f70-5f16-0410-b530-b9f4589650da
2008-11-10 21:30:35 +00:00