Commit Graph

12225 Commits

Author SHA1 Message Date
Volker Ruppert
5adcaf2291 Added missing variable initialisation. 2020-06-14 19:30:53 +00:00
Volker Ruppert
401ffecc54 Fixed comparsion (slirp.cc) and MSVC warning (netutil.cc). 2020-06-14 10:16:04 +00:00
Volker Ruppert
4bcc3ba13c Added stubs for IPv6 packets in the slirp and vnet server code and some cleanups. 2020-06-14 08:44:10 +00:00
Volker Ruppert
b521611c68 Removed support for the 'tap' networking module from configure script.
The ethertap driver has been declared obsolete a long time ago and it has been
removed in Linux kernel version 3.x. The successor service TUN/TAP is supported
by Bochs. The source file and the BX_NETMOD_TAP symbol appearance may be removed
before next release.
2020-06-12 07:23:15 +00:00
Volker Ruppert
79156f6b2f Added support for setting up the vnet FTP service with a different IPv4 address.
The 'vnet' networking module now uses 192.168.10.3 and bxhub is setting up the
slirp compatible IP 10.0.2.4 for additional services. Added host name "vnet-ftp"
in the DNS code to translate it to the new IP address.
2020-06-12 06:31:09 +00:00
Volker Ruppert
a4bf5843f0 Some work on the vnet server code.
- FTP: handle the hidden flag on Windows the same way as on other platforms.
- TCP/IP: fixed some gcc 9 warnings (checked with Cygwin gcc 9.3).
- DHCP: changed the way to set up the default client IPv4 address.
2020-06-11 14:26:34 +00:00
Stanislav Shwartsman
1eb0439279 fix for compilation with new env 2020-06-11 11:00:24 +00:00
Volker Ruppert
3db989b9a8 Fixed gcc 10.1.0 warning "clearing an object of non-trivial type". Now moving
the buffer objects and data members to different structures and use memset()
for data only.
2020-06-11 07:36:31 +00:00
Volker Ruppert
40726e4c7c Fixed gcc 10.1.0 warning (buffer possibly to small). 2020-06-10 07:19:06 +00:00
Volker Ruppert
c036bcb7ab Compilation fix for MSYS2 gcc 10.1.0 (narrowing conversion). 2020-06-09 07:30:01 +00:00
Volker Ruppert
f809d2b08b Improved vnet server DNS support.
- Reverse DNS support implemented.
- Return error status for unsupported format.
2020-06-08 19:55:32 +00:00
Volker Ruppert
b4ce6bca2e Fix for the non-Windows SMB support in Slirp. Updated format of temporary
smb.conf to make it work with latest smbd version.
2020-06-07 19:17:07 +00:00
Volker Ruppert
3d5c4615bc Rmoved "load32bitOShack" feature: forgot one change. 2020-06-07 17:32:48 +00:00
Volker Ruppert
c05cb5e1d7 Removed legacy "load32bitOShack" feature. In the early days of Bochs some hacks
were required to load a 32 bit OS. In the meantime Bochs has been made capable
of loading 32 and 64 bit OS's without hacking.
2020-06-07 17:28:54 +00:00
Volker Ruppert
4313db542d Some more work on the vnet FTP support.
- Added support for the extended passive mode.
- Handle LIST option to show hidden files (non-WIN32 only).
2020-06-06 19:02:46 +00:00
Volker Ruppert
168e303f82 Some work on the vnet FTP support.
- Added STOU command (store file under a name unique to current directory).
- Improved user login message.
2020-06-05 16:10:12 +00:00
Volker Ruppert
08386c771e Some work on the vnet FTP support and documentation.
- Reset FTP session state in case of login failure.
- Improved FTP server status output.
- Added special error messages for 2 unimplemented commands.
- Updated vnet / socket / slirp networking module infos in source and docs.
2020-06-04 16:08:03 +00:00
Volker Ruppert
50ddc67671 Some work on the vnet FTP support: improved file and directory checks. 2020-06-03 13:14:39 +00:00
Volker Ruppert
81026fa96a Some work on the vnet server FTP code.
- Major rewrite of the FTP command handling.
- The LIST command now supports an argument (absolute or relative path).
- Added NLST command (similar to LIST, but file / directory names only).
- The MKD and RMD commands now support absolute paths.
2020-05-31 20:46:33 +00:00
Volker Ruppert
f378ca5418 Added some core functions to the vnet FTP service and some fixes.
- FTP: added support for renaming file, create and remove directory.
- FTP: added FTP server status report and fixed SYST reply.
- bxhub fix: send all pending packets one after the other.
- TCP fix: when connecting, return default MSS option value 1460.
- TCP fix: handle the case when FIN is set in final data packet.
2020-05-30 14:44:53 +00:00
Stanislav Shwartsman
d540e5b040 rename VMCS control enum 2020-05-29 12:55:56 +00:00
Stanislav Shwartsman
baa39a1b40 fixed comment 2020-05-29 12:52:26 +00:00
Stanislav Shwartsman
4023b640d6 Protection Keys: Implemented Supervisor-Mode Protection Keys (PKS) 2020-05-29 12:35:30 +00:00
Volker Ruppert
2b79641f3a Added support for deleting files in the vnet FTP support and some cleanups. 2020-05-29 09:02:14 +00:00
Volker Ruppert
436766a7db Rewrite of the vnet FTP service "send data" code. Instead of creating a buffer
for the whole file, now the buffer has maximum TCP window size and the file is
read on demand. The directory list is now written to a temporary file that can
be sent with the new code.
2020-05-28 07:31:32 +00:00
Volker Ruppert
30264616f4 Added initial support for uploading files to the vnet FTP server. This is
permitted for user "bochs" only, since "anonymous" has read-only access.
TODO: delete / rename file, create / remove directory.
2020-05-26 18:53:58 +00:00
Volker Ruppert
d339332e8c Fixes for data transfer abort and cleanup on FTP session quit.
- Skip special TELNET sequence required for transfer abort to make it work.
- On FTP quit, unregister data port and free data buffer if necessary.
- Some other small FTP code cleanups.
2020-05-24 17:28:56 +00:00
Volker Ruppert
5c436d061b Partial rewrite of the TCP/IP and FTP host-to-guest data transfer code. 2020-05-24 08:40:35 +00:00
Volker Ruppert
8e7040dddb Some fixes for the vnet server TCP/IP and FTP support.
- TCP and FTP: some connect/disconnect cleanups and fixes.
- FTP: correctly report active transfer mode (no effect on the emulation yet).
2020-05-23 15:49:33 +00:00
Volker Ruppert
d69c7d14dc Two fixes for the bxhub utility.
- Makefile: added missing dependency.
- netutil.cc: removed duplicate include.
2020-05-23 09:04:35 +00:00
Volker Ruppert
ba5a279d61 Some more work on the TCP/IP and FTP support.
- TCP: If a connection is active, forward reset to the service handler.
- FTP: Added support to retrieve the file size.
- FTP: Handle the "file not found" case in RETR and SIZE code.
- FTP: Fixed the logout process.
2020-05-22 19:40:59 +00:00
Volker Ruppert
d5a4d1df48 Some more work on the TCP/IP and FTP support.
- Added support for browsing directories and download from subdirectories.
- Fixes for empty directories and files.
2020-05-22 07:35:35 +00:00
Stanislav Shwartsman
b891789c3d implemented (experimental) TSC Adjust MSR 2020-05-21 19:58:16 +00:00
Volker Ruppert
b2b3de60d4 Some more work on the TCP/IP and FTP support.
- TCP: added new method tcpipv4_send_buffer() that can send multiple packets
  up to window size without waiting for ACK.
- TCP: when receiving ACK, the data transfer continues if necessary.
- FTP: list contents of root directory (tested on Linux and Win 10 host).
- FTP: added support for file download from root directory (RETR).
- TODO #1: browse directory tree (CWD, CDUP).
- TODO #2: upload file (STOR).
- TODO #3: file and directory commands (SIZE, DELE, MKD, RMD).
2020-05-21 16:21:49 +00:00
Volker Ruppert
eabcb9e478 Some work on the vnet server code.
- Compilation fixes for MSVC
- TCP: parse option header (not handled yet)
- TCP: RST flag forces disconnect
- FTP: ABOR command stops data transfer
2020-05-21 11:07:38 +00:00
Volker Ruppert
9ff6fddd82 Some work on the TCP/IP and FTP support.
- Added packet counter and use it for the IP id field.
- Added support for closing TCP connection from the server side.
- Added FTP passive mode and LIST demo for testing it.
- Some other small changes.
2020-05-20 19:38:33 +00:00
Volker Ruppert
548f9456e8 Packet logging in text format now controlled by option "pktlog" in slirp config. 2020-05-19 17:55:15 +00:00
Stanislav Shwartsman
a136e1c96c add missing config.h.in 2020-05-19 16:14:03 +00:00
Stanislav Shwartsman
dd3849b9e0 extract Bit128 arithmetic to separate wide_int.cc/wide_int.h compiled independently of long mode emulation 2020-05-19 16:01:23 +00:00
Volker Ruppert
89759dc371 Implemented dynamic packet handling in the vnet server (TCP can send multiple
packets up to window size without waiting for ACK).
Some other minor cleanups and improvements in the TCP and FTP code.
2020-05-19 12:10:52 +00:00
Volker Ruppert
614ecd7455 Some fixes for the vnet module found with TCP / FTP testing code.
Fixed maximum size of an ethernet packet (1460 bytes TCP user data + headers).
Don't activate timer for a new packet if another is still pending.
2020-05-18 19:25:27 +00:00
Stanislav Shwartsman
e50a3f8169 fixup code duplication in apic code 2020-05-17 19:32:14 +00:00
Stanislav Shwartsman
f97b20ddce deactivate apic timer when globally disabled 2020-05-17 19:03:39 +00:00
Stanislav Shwartsman
da169c0044 when apic is globally disabled - reset some fields to defaults 2020-05-17 18:57:27 +00:00
Stanislav Shwartsman
7a5fef764b fix for effcetive TSC compute when TSC multiplier is enabled 2020-05-17 18:39:52 +00:00
Stanislav Shwartsman
6ae26b39b3 fixed Sub-Page-Protection EPT violation (was triggered exactly opposite that excpected due to typo) 2020-05-17 14:12:29 +00:00
Stanislav Shwartsman
8e4a29fb0e reorg vmcs fields enabling based on their numeric order 2020-05-15 19:27:45 +00:00
Stanislav Shwartsman
499b138227 enable access to XSS_EXITING_BITMAP VMCS field 2020-05-15 19:05:41 +00:00
Volker Ruppert
9c3a99856e Added basic TCP handling and FTP server stub for testing.
- Partly re-implemented host_to_guest methods from legacy eth_vnet.cc.
- Added two dynamic packet buffers for vnet server replies.
- TFTP and FTP servers are only available if root directory is configured.
- Added TCP port handler methods similar to the UDP ones.
- Added basic TCP connection management and 3-way handshake.
- Added FTP server stub for testing TCP (only login/logout for now).
2020-05-12 20:51:26 +00:00
Volker Ruppert
1b0845b48a Slirp: Added support for logging packets in text format (disabled by default). 2020-05-07 15:49:54 +00:00