Michael Brown
718294553b
Fix compiler warning
2007-01-03 15:56:15 +00:00
Michael Brown
b91b9d3d88
Use whole bytes for the ACKED and RCVD portions of tcp_state; it
...
produces slightly smaller code.
2006-12-30 01:32:22 +00:00
Michael Brown
83e1340d88
Use autocolourisation
2006-12-29 14:09:23 +00:00
Michael Brown
feb4f65d1e
Use auto-colourisation for debug messages.
...
Truncate TX length to TCP window at time of transmission rather than at
time of adding to TX packet; this is conceptually cleaner and also allows
the application to call tcp_send() multiple times to build up a single
packet.
2006-12-29 14:03:03 +00:00
Michael Brown
2494625702
Added auto-colourising DBGC() macro
2006-12-29 03:05:21 +00:00
Michael Brown
ce9819af27
Redefine TCP state to include "flags that have been sent" rather than
...
"flags that are currently being sent". This allows at least one special
case (checking that we haven't already sent a FIN in tcp_rx_fin()) to be
collapsed.
2006-12-29 00:44:31 +00:00
Michael Brown
be31970e36
Don't send a second FIN if we receive a FIN while in FIN_WAIT_2
2006-12-27 23:44:05 +00:00
Michael Brown
61ed298bc7
Merge changes from mcb-tcp-fixes branch.
2006-12-27 23:09:46 +00:00
Michael Brown
b6def29f2b
Keep running the main processing loop while waiting for input.
2006-12-27 22:59:40 +00:00
Michael Brown
1a11cc5c5b
Added times to start/stop log messages
2006-12-27 22:56:39 +00:00
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.)
2006-12-22 13:04:50 +00:00
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!
2006-12-22 12:24:12 +00:00
Michael Brown
73e3e02367
Fix prototype of random() and move to stdlib.h
2006-12-22 01:44:51 +00:00
Michael Brown
66a7ed23cb
Make start_timer() and stop_timer() robust against incorrect usage.
2006-12-22 01:35:21 +00:00
Michael Brown
9485478acc
ibft_fill_data() prototype change.
2006-12-21 18:42:51 +00:00
Michael Brown
d6f9152bfa
Avoid null pointer dereferences when no username/password specified.
2006-12-21 18:38:24 +00:00
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.
2006-12-21 17:43:43 +00:00
Michael Brown
024809d454
Use a bigger buffer for the initiator IQN
2006-12-21 17:42:02 +00:00
Michael Brown
ab242a760d
Add ability to shut down iSCSI connection
2006-12-21 17:17:47 +00:00
Michael Brown
7ce3df65c2
Default to port 0 (sic).
2006-12-21 17:16:06 +00:00
Michael Brown
286db6ffa3
Print explicit error message on iSCSI boot failure, and add
...
"Permission denied" as an error text to strerror().
2006-12-21 16:16:24 +00:00
Michael Brown
fbc7b4dfa8
Add iSCSI initiator IQN as a setting
2006-12-21 16:08:37 +00:00
Michael Brown
f58f193633
Engage brain: since when was zero >= 0x80 ?
2006-12-21 05:15:26 +00:00
Michael Brown
9c3b4e5b0b
Some BIOSes return 0xe0 for extended characters. Just assume that
...
anything over 0x80 is an extended character.
2006-12-21 00:07:48 +00:00
Michael Brown
839d425c6e
Added missing header
2006-12-20 23:43:44 +00:00
Michael Brown
dbb7b30cca
Return ANSI sequences for special keys
2006-12-20 23:42:28 +00:00
Michael Brown
f33a03c1e5
Use getkey() and symbolic key names.
2006-12-20 22:25:54 +00:00
Michael Brown
cacd6b1d04
KEY_XXX constants are now defined in gpxe/keys.h. Kept separate from
...
curses.h so that you don't have to suffer the curses namespace pollution
just to get the symbolic key names.
2006-12-20 22:24:45 +00:00
Michael Brown
4b2b8b02ab
Use symbolic key names, and avoid moving beyond end of string
2006-12-20 22:21:09 +00:00
Michael Brown
46c3eeba2a
Fix definition of KEY_END
2006-12-20 22:17:44 +00:00
Michael Brown
c5df1bc7df
Use getkey() and symbolic key names.
2006-12-20 22:12:53 +00:00
Michael Brown
ae728f8d23
Some key sequences seem to end with a tilde
2006-12-20 22:12:25 +00:00
Michael Brown
2ae27f44d9
Add insert/delete and document keys, and documentation.
2006-12-20 22:11:28 +00:00
Michael Brown
791c7d3bf4
Added code to interpret ANSI keypress sequences into KEY_XXX constants.
2006-12-20 21:56:50 +00:00
Michael Brown
96a1a2c6f0
Key definitions
2006-12-20 21:53:07 +00:00
Michael Brown
b9f8599537
Define KEY_MIN and use it in kb.c.
2006-12-20 21:10:32 +00:00
Michael Brown
43d976edd0
Prevent NULL from ever pointing to some real code or data. (This was
...
causing the serial console to ignore input, because it happened to end up
linked with serial_ischar() at address 0, which core/console.c decided was
invalid).
2006-12-20 20:28:20 +00:00
Michael Brown
6ceaa158da
Return -EIO when verification fails, instead of -EINVAL.
2006-12-20 14:11:50 +00:00
Michael Brown
cbeec25662
settings_ui() now returns a status code.
2006-12-20 11:42:48 +00:00
Michael Brown
07ddaedd33
Add EIO.
...
Kill errortab array; it can screw up alignment.
2006-12-20 07:57:40 +00:00
Michael Brown
60a3f77711
Close UDP connection when DHCP completes.
2006-12-20 07:19:48 +00:00
Michael Brown
c21502acad
No longer needed
2006-12-20 07:13:46 +00:00
Michael Brown
a6d1815bc6
Obsolete for some time now.
2006-12-20 07:05:32 +00:00
Michael Brown
84202d89f0
Split the (quick hack) boot logic out from main.c to autoboot.c, add a
...
"boot" command to attempt booting from within the command shell, fall back
to shell if boot fails for any reason.
2006-12-20 07:04:08 +00:00
Michael Brown
9ab17484d0
Explicitly call erase(), to cope with platforms where the ANSI clear
...
screen sequence doesn't work (like bios_console.c on some platforms).
2006-12-20 06:12:04 +00:00
Michael Brown
f8910410fe
Add attr_{get,set,on,off} as static inlines.
2006-12-20 06:06:38 +00:00
Michael Brown
8f9336e0c1
Add "config" command to access config UI
2006-12-20 05:37:33 +00:00
Michael Brown
666b309c0c
Add instruction row, and save option
2006-12-20 05:37:15 +00:00
Michael Brown
75430e813e
Only need printf(), so use vsprintf.h instead of console.h
2006-12-20 05:33:12 +00:00
Michael Brown
2b97d2ebc5
8-bit integers are 1 byte long, not 8...
2006-12-20 05:04:17 +00:00
Michael Brown
e4f489636f
Clear message on alert row before printing new one
2006-12-20 05:03:55 +00:00
Michael Brown
b93ff48173
Added descriptive text for settings and setting types, and display it in
...
the option config UI.
2006-12-20 04:58:26 +00:00
Michael Brown
35edecac34
Move {show,set,clear}_setting() to {show,set,clear}_named_setting().
...
Introduce new {show,set,clear}_setting() that take a struct setting *
rather than a const char *.
set_setting() handles calling clear_setting() when appropriate, so that
individual setting types don't have to check for empty strings.
2006-12-20 04:20:13 +00:00
Michael Brown
fc7dcc201b
Added messages for some of the most common errors
2006-12-20 03:54:20 +00:00
Michael Brown
7766e34ed1
Split strerror() out from errno.c
2006-12-20 03:49:36 +00:00
Michael Brown
65e97c4f22
Alert when saving settings fails
2006-12-20 03:43:24 +00:00
Michael Brown
4b33c03942
Increase colour pair limit
2006-12-20 03:42:35 +00:00
Michael Brown
c66b99272f
Fix (hopefully) the scrolling logic
2006-12-20 03:41:55 +00:00
Michael Brown
84a2b886e1
Split error-message table portions of errno.h out to gpxe/errortab.h
2006-12-20 03:40:48 +00:00
Michael Brown
e5f0898f38
Move strerror() prototype to string.h, where it belongs
2006-12-20 03:35:49 +00:00
Michael Brown
04da3556f9
Differentiate between ENOSPC and ENOMEM
2006-12-20 03:34:27 +00:00
Michael Brown
4f506328ad
Use -ENOSPC rather than -ENOMEM, to distinguish the cases "generic out of
...
memory" and "no space left for DHCP options"
2006-12-20 03:33:37 +00:00
Michael Brown
637a891264
Fix prototype of sleep() and move it to unistd.h
2006-12-20 03:14:59 +00:00
Michael Brown
1e322d4b4c
Add (partly-functional) user interface for editing configuration settings
2006-12-20 03:04:07 +00:00
Michael Brown
3e0f7621eb
Don't automatically redraw the edit box; this allows better inheritance.
2006-12-20 02:09:41 +00:00
Michael Brown
35dcbfe771
Editable text box widget based on mucurses and edit_string.
2006-12-20 01:40:57 +00:00
Michael Brown
82ec3fc5cc
Reset screen on exit as well as entry
2006-12-20 01:30:40 +00:00
Michael Brown
24f945edce
Add "exit --help" to preempt the pedants.
2006-12-20 00:44:16 +00:00
Michael Brown
d7cffd33e1
Remove obsolete mechanism for including nvo_cmd.o
2006-12-20 00:39:52 +00:00
Michael Brown
ec5789bf0c
Select required commands via config.h
2006-12-20 00:39:06 +00:00
Michael Brown
9f953322a1
Remove warning (at least on platforms with uint32_t == unsigned long).
2006-12-20 00:34:53 +00:00
Michael Brown
a1685cb3e2
Move nvo_cmd.c to hci/commands.
2006-12-20 00:31:34 +00:00
Michael Brown
4d0d275ce4
Functionality now replaced by a combination of readline() and system().
2006-12-20 00:27:11 +00:00
Michael Brown
38ad706b08
Use new minimal shell
2006-12-20 00:26:01 +00:00
Michael Brown
4919646fb9
Separated out (and tidied up) shell banner code
2006-12-20 00:24:13 +00:00
Michael Brown
a2c5744daf
Minimal shell implementation using readline() and system().
2006-12-19 23:55:05 +00:00
Michael Brown
a646e38f03
Use stdlib.h for malloc() instead of malloc.h.
2006-12-19 23:42:46 +00:00
Michael Brown
b613086bfe
Explicitly print out-of-memory message to avoid tricking the user into
...
thinking that a command executed successfully.
2006-12-19 23:37:51 +00:00
Michael Brown
22289ca8f6
Functioning readline()
2006-12-19 23:25:44 +00:00
Michael Brown
66007fa448
Provide an edit history to allow caller to efficiently update display.
2006-12-19 23:24:16 +00:00
Michael Brown
abbfbd678d
Explicitly move cursor to top-left of screen, in case the clear screen
...
call doesn't do it.
2006-12-19 22:37:12 +00:00
Michael Brown
b3c535e550
Skeletal (non-echoing) version of readline()
2006-12-19 22:35:10 +00:00
Michael Brown
19e1d674d3
Catch attempts to print NULL strings
2006-12-19 22:33:42 +00:00
Michael Brown
1bc3514bd8
Start of generic editable string support
2006-12-19 19:28:12 +00:00
Michael Brown
70d20c4e7a
Use common symbols to avoid dragging in getopt.o unless a getopt-using
...
command is linked in.
2006-12-19 16:27:15 +00:00
Michael Brown
c1bac56f85
Use current attributes when erasing.
2006-12-19 01:17:10 +00:00
Michael Brown
cdfe61662b
Assume a 24-line screen, since we can't (easily) avoid scrolling after
...
printing in the bottom-right position.
2006-12-19 01:16:43 +00:00
Michael Brown
0aa1223264
Optimise bios_putchar for speed(!) by avoiding two separate real-mode
...
calls. This does make a visible difference when clearing the screen with
werase() inside bochs or qemu.
2006-12-19 01:15:05 +00:00
Michael Brown
e85bf52446
Avoid cursor move on every single character
2006-12-19 00:51:32 +00:00
Michael Brown
8e460de6be
Obsolete, and no longer functions
2006-12-19 00:34:54 +00:00
Michael Brown
e7cc1c6c35
Use ANSI escape sequence to reset and clear terminal, rather than using
...
the (slow) werase().
2006-12-19 00:33:36 +00:00
Michael Brown
edbdce6e3d
Now basically functioning on ANSI-supporting consoles.
2006-12-19 00:27:25 +00:00
Michael Brown
09f9142cbf
Adjusted to use the normal internal mucurses API rather than accessing
...
stdscr directly.
2006-12-18 21:44:44 +00:00
Michael Brown
b6b36e8ac4
Remove more dynamic allocation
2006-12-18 21:28:35 +00:00
Michael Brown
04d15fb8f8
There seems to be no reason why pos_x is static...
2006-12-18 21:12:58 +00:00
Michael Brown
1f74fa2cad
Remove some unnecessary use of calloc() for tiny memory areas.
2006-12-18 21:11:30 +00:00
Michael Brown
ba26defa6e
Convert _{store,restore}_cursor_pos to static inlines.
2006-12-18 20:46:41 +00:00
Michael Brown
56970053f4
wmove() is part of the public curses API, and already defined in curses.h
2006-12-18 20:38:07 +00:00
Michael Brown
1755d8df7a
Renamed core.h to mucurses.h
2006-12-18 16:52:21 +00:00
Michael Brown
426e847c4c
Rename core.c->mucurses.c; bin/core.o is too generic to belong to mucurses.
2006-12-18 16:50:02 +00:00