Michael Brown
94415b7669
Added missing "static" declarations
17 anni fa
Michael Brown
b3e44a24b1
May be required in some disconnect scenarios
17 anni fa
Michael Brown
fd4fcb57db
Add missing static
17 anni fa
Michael Brown
fabd0f5fec
Fix TX state machine and miscellaneous other bits.
17 anni fa
Michael Brown
ef9fd938d0
Fix root-path parsing.
17 anni fa
Michael Brown
b94420a52b
Ready to start testing
17 anni fa
Michael Brown
edd1b173a7
Code in place to use a hypothetical SCSI interface.
17 anni fa
Michael Brown
f2fa390ae6
Everything except the SCSI interface should now be present
17 anni fa
Michael Brown
9b28b25332
iSCSI updated to use data-xfer interface on the socket side (TCP).
SCSI interface not yet implemented.
17 anni fa
Michael Brown
b34d4d0449
Separate the "is data ready" function of xfer_seek() into an
xfer_window() function, which can return a scalar rather than a
boolean.
17 anni fa
Michael Brown
ca4c6f9eee
Kill off unused request() method in data-xfer interface.
17 anni fa
Holger Lubitz
7872b890fe
convert to zalloc
17 anni fa
Holger Lubitz
7fa85d19b9
convert to zalloc
17 anni fa
Michael Brown
8156f6bd19
Switch compiler warning on tcp_open() to a #warning
17 anni fa
Michael Brown
a5f33ea283
Added missing line to set return status code.
17 anni fa
Michael Brown
95adce0ce1
Add concept of transfer metadata, to be used by UDP in order to
implement sendto()/recvfrom() equivalents.
17 anni fa
Michael Brown
335b99a39d
Move [v]ssnprintf() from iscsi.c into vsprintf.c; we need them
elsewhere as well.
17 anni fa
Michael Brown
4ccd1e8198
Should call ftp_done() if constructor fails.
17 anni fa
Michael Brown
735e07268e
Update HTTP to use data-xfer interface.
17 anni fa
Michael Brown
0dfd5b84fd
Updated FTP to use data-xfer API.
17 anni fa
Michael Brown
af3149d18e
Allow queries in GET requests
17 anni fa
Michael Brown
a3695b1ff6
Placeholder for TLS insertion
17 anni fa
Michael Brown
6d32f0e6e2
Changed to use the generic stream API.
17 anni fa
Michael Brown
bde8878eef
Keep HTTP progress updated, and display a progress indicator during the
download
17 anni fa
Michael Brown
73b09ecba6
Use stdio.h instead of vsprintf.h
17 anni fa
Michael Brown
4e3976711d
A working name resolution framework
17 anni fa
Michael Brown
6c72bf13a1
Presize the download buffer when we see the Content-Length header;
this saves around 70us per received packet (which is around 50% of the
overall packet processing time).
17 anni fa
Michael Brown
08da93a311
Reorder functions to more closely reflect the flow of control
17 anni fa
Michael Brown
dd6d94004f
HTTP/DNS now working fully asynchronously. HTTP/IP addresses and any
other protocol won't work at the moment.
17 anni fa
Michael Brown
143d14614d
Quickly hack in DNS resolution as a proof of concept
17 anni fa
Michael Brown
df0397f334
Update TFTP and FTP to take the same temporary URI scheme as HTTP
17 anni fa
Michael Brown
afa752f5fb
Protocol's get() method no longer takes ownership of the URI. HTTP is the
exception rather than the rule; we may as well keep things clean for other
protocols.
17 anni fa
Michael Brown
1f92c6b3e8
Must free http on the error path; nothing else will do it
17 anni fa
Michael Brown
c676591cd1
Unmaintained example code is probably worse than useless.
17 anni fa
Michael Brown
4e20d73bb5
Gave asynchronous operations approximate POSIX signal semantics. This
will enable us to cascade async operations, which is necessary in order to
properly support DNS. (For example, an HTTP request may have to redirect
to a new location and will have to perform a new DNS lookup, so we can't
just rely on doing the name lookup at the time of parsing the initial
URL).
Anything other than HTTP is probably broken right now; I'll fix the others
up asap.
17 anni fa
Michael Brown
497c3a5aad
Fixed HTTP
17 anni fa
Michael Brown
ad22cccc09
No need to maintain a received byte count; we always fill in sequential
order so we can just use buffer->fill.
17 anni fa
Michael Brown
6918cf9e9e
Change FTP to use a data buffer rather than a callback function.
17 anni fa
Michael Brown
aaca21a2b6
We can't assert that the RX engine is idle in iscsi_done(), because it
may be called during the RX data processor, before the RX engine
transitions back to idle. It doesn't really matter if the RX engine
isn't idle when iscsi_done() is called, because it will just pick up
where it left off on the next call. (The same is not true for the TX
engine, so keep the TX engine assertion.)
17 anni fa
Michael Brown
6ea07b9247
Use debug auto-colourisation.
17 anni fa
Michael Brown
76525294ee
Clean up connection closing and permanent failure logic.
17 anni fa
Michael Brown
83e1340d88
Use autocolourisation
17 anni fa
Michael Brown
61ed298bc7
Merge changes from mcb-tcp-fixes branch.
17 anni fa
Michael Brown
4cc1c1bd4c
Ensure that old TCP connection state is destroyed before attempting to
reopen connection. (The TCP API will soon change to render this step
unnecessary.)
17 anni fa
Michael Brown
a2e3357825
Cannot immediately overwrite the peer address when we parse
TargetAddress from the login response, because we still need the old
address while we close the connection!
17 anni fa
Michael Brown
d6f9152bfa
Avoid null pointer dereferences when no username/password specified.
17 anni fa
Michael Brown
6ceb55fad0
When login fails, leave the session open but not in full feature
phase. In iscsi_issue(), detect this state and immediately refuse the
operation. This avoids trying multiple logins when scsi.c tries
several times to read the drive capacity.
17 anni fa
Michael Brown
ab242a760d
Add ability to shut down iSCSI connection
17 anni fa
Michael Brown
38ae94f8ce
A cleaner method of handling login redirection; just use the existing
reconnection mechanism. This avoids the problems of trying to reuse
the TCP connection structure before the old connection has cleanly exited.
17 anni fa
Michael Brown
8c3d09c564
Tweaked retry messages
17 anni fa