Martin Wilck
cf2b4a36c4
efinet: Check for immediate completition.
...
This both speeds GRUB up and workarounds unexpected EFI behaviour.
2015-03-27 14:27:56 +01:00
Vladimir Serbinenko
63034d3261
arp, icmp: Fix handling in case of oversized or invalid packets.
...
This restrict ARP handling to MAC and IP addresses but in practice we need
only this case anyway and other cases are very rar if exist at all. It makes
code much simpler and less error-prone.
2015-03-27 12:18:25 +01:00
Vladimir Serbinenko
fe6695b7d6
emunet: Fix init error checking.
...
Otherwise emunet doesn't expose any cards.
2015-03-20 12:59:00 +01:00
Andrei Borzenkov
12abe75aa0
net/pxe: fix error condition
...
Test return value of grub_netbuff_reserve(), buf itself cannot be
NULL here.
Found by: Coverity scan.
2015-01-30 22:39:11 +03:00
Andrei Borzenkov
b40fde29a4
net/ip: check result of grub_netbuff_push
...
Found by: Coverity scan.
2015-01-30 22:09:51 +03:00
Curtis Larsen
06eadf5ebf
fix double free in grub_net_recv_tcp_packet
...
Using the http module to download config files, produces memory errors,
after the config file is downloaded.
The error was traced to the tcp stack in grub-core/net/tcp.c. The wrong
netbuff pointer was being freed in the clean up loop.
Changing the code to free the correct netbuff pointer removes the runtime
error.
Closes 42765.
2014-12-07 11:28:57 +03:00
Michael Chang
7c4b6b7bb4
send router solicitation for ipv6 address autoconf v2
...
Many routers have long router advertisment interval configured by
default. The Neighbor Discovery protocol (RFC4861) has defined default
MaxRtrAdvInterval value as 600 seconds and
MinRtrAdvInterval as 0.33*MaxRtrAdvInterval. This makes
net_ipv6_autoconf fails more often than not as currently it passively
listens the RA message to perfom address autoconfiguration.
This patch tries to send router solicitation to overcome the problem of
long RA interval.
v2:
use cpu_to_be macro for network byte order conversion
add missing error handling
2014-11-28 20:21:34 +03:00
Michael Chang
72ec399ad8
icmp6 fix no respond to neighbor solicit message
...
The structure size used in grub_netbuff_pull to get the pointer to
option header is apparently wrong, which leads to subsequent range check
failed and therefore not responding to any neighbor solicit message in my
testing.
2014-11-03 20:03:04 +03:00
Andrey Borzenkov
954fe77163
cleanup: grub_cpu_to_XXX_compile_time for constants
...
This tries to catch all cases where grub_cpu_to_XXX was used for constant
expressions (including sizeof).
2014-09-22 20:47:10 +04:00
Paulo Flabiano Smorigo
9585647a25
add bootpath parser for open firmware
...
It enables net boot even when there is no bootp/dhcp server.
* grub-core/net/drivers/ieee1275/ofnet.c: Add grub_ieee1275_parse_bootpath and
call it at grub_ieee1275_net_config_real.
* grub-core/kern/ieee1275/init.c: Add bootpath to grub_ieee1275_net_config.
* include/grub/ieee1275/ieee1275.h: Likewise.
2014-02-04 19:02:16 -02:00
Paulo Flabiano Smorigo
e4dbf247b6
add grub_env_set_net_property function
...
* grub-core/net/bootp.c: Remove set_env_limn_ro.
* grub-core/net/net.c: Add grub_env_set_net_property.
* include/grub/net.h: Likewise.
2014-02-04 18:41:38 -02:00
Paulo Flabiano Smorigo
6f65e36cc4
increase network try interval gradually
...
* grub-core/net/arp.c (grub_net_arp_send_request): Increase network try
interval gradually.
* grub-core/net/icmp6.c (grub_net_icmp6_send_request): Likewise.
* grub-core/net/net.c (grub_net_fs_read_real): Likewise.
* grub-core/net/tftp.c (tftp_open): Likewise.
* include/grub/net.h (GRUB_NET_INTERVAL_ADDITION): New define.
2014-01-21 11:06:35 -02:00
Paulo Flabiano Smorigo
d99d2f8416
change stop condition to avoid infinite loops
...
In net/net.c there is a while (1) that only exits if there is a stop
condition and more then 10 packages or if there is no package received.
If GRUB is idle and enter in this loop, the only condition to leave is
if it doesn't have incoming packages. In a network with heavy traffic
this never happens.
2014-01-21 10:54:49 -02:00
Vladimir Serbinenko
17b4355943
* grub-core/net/bootp.c (grub_cmd_dhcpopt): Use snprintf where it
...
was intended.
2013-12-21 13:35:28 +01:00
Vladimir Serbinenko
636977b089
Mark strings for translation and add remaining ones to exclude list.
2013-12-18 06:50:24 +01:00
Vladimir Serbinenko
7e47e27bd8
Add gcc_struct to all packed structures when compiling with mingw.
...
Just "packed" doesn't always pack the way we expect.
2013-12-15 14:14:30 +01:00
Vladimir Serbinenko
50b3a68db9
Remove grub_memalign on emu.
2013-12-08 18:12:20 +01:00
Vladimir Serbinenko
234d93464a
* grub-core/disk/ieee1275/ofdisk.c: Remove variable length arrays.
...
* grub-core/net/drivers/ieee1275/ofnet.c: Likewise.
2013-12-04 08:10:01 +01:00
Vladimir Serbinenko
7f084087b2
* grub-core/net/net.c (grub_net_route_unregister): Remove unused
...
function.
* grub-core/loader/i386/xnu.c (hextoval): Likewise.
* grub-core/disk/geli.c (ascii2hex): Likewise.
2013-11-07 19:31:22 +01:00
Vladimir Serbinenko
6d5a4ceefe
* grub-core/net/bootp.c (OFFSET_OF): Explicitly cast to grub_size_t.
2013-11-07 01:11:36 +01:00
Vladimir Serbinenko
f06c2172c0
* grub-core/net/bootp.c (set_env_limn_ro): Make pointer const.
...
(parse_dhcp_vendor): Likewise.
2013-11-07 01:09:19 +01:00
Gustavo Luiz Duarte
9e236169e9
issue separate DNS queries for ipv4 and ipv6
...
Adding multiple questions on a single DNS query is not supportted by
most DNS servers. This patch issues two separate DNS queries
sequentially for ipv4 and then for ipv6.
Fixes: https://savannah.gnu.org/bugs/?39710
* grub-core/net/bootp.c (parse_dhcp_vendor): Add DNS option.
* grub-core/net/dns.c (grub_dns_qtype_id): New enum.
* (grub_net_dns_lookup): Now using separated dns packages.
* (grub_cmd_nslookup): Add error condition.
* (grub_cmd_list_dns): Print DNS option.
* (grub_cmd_add_dns): Add four parameters: --only-ipv4,
* --only-ipv6, --prefer-ipv4, and --prefer-ipv6.
* include/grub/net.h (grub_dns_option_t): New enum.
* (grub_net_network_level_address): option added.
Also-by: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
Signed-off-by: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
2013-11-05 17:41:16 -02:00
Vladimir Serbinenko
eb03ede014
* grub-core/fs/ext2.c (grub_ext2_read_symlink): Use memcpy rather
...
strncpy.
* grub-core/fs/jfs.c (grub_jfs_lookup_symlink): Likewise.
* grub-core/kern/misc.c (grub_strncpy): Move from here ...
* include/grub/misc.h (grub_strncpy): ... to here. Make inline.
* grub-core/net/net.c (grub_net_addr_to_str): Use COMPILE_TIME_ASSERT
+ strcpy rather than strncpy.
2013-11-01 18:44:46 +01:00
Vladimir Serbinenko
cf8d6bbd9e
* grub-core/net/tftp.c: Retransmit ack when rereceiving old packet.
...
Try to handle more than 0xFFFF packets.
2013-10-27 19:15:37 +01:00
Vladimir Serbinenko
40f290606d
* grub-core/net/dns.c (hash): Use unsigned arithmetic.
2013-10-25 20:26:27 +02:00
Paulo Flabiano Smorigo
84a0e9699f
Add progress module to display load progress of files.
...
* grub-core/lib/progress.c: New file.
* grub-core/Makefile.core.def (progress): New module.
* grub-core/kern/file.c (grub_file_open): File name added.
* (grub_file_read): Progress hook added.
* grub-core/fs/cbfs.c (grub_cbfs_read): Likewise.
* grub-core/fs/cpio_common.c (grub_cpio_read): Likewise.
* grub-core/net/net.c (grub_net_fs_read_real): Likewise.
* include/grub/file.h (struct grub_file): Add progress module
* members.
* include/grub/term.h (struct grub_term_output): Likewise.
* grub-core/osdep/unix/emuconsole.c (grub_console_term_output):
Terminal velocity added.
* grub-core/osdep/windows/emuconsole.c (grub_console_term_output):
* Likewise.
* grub-core/term/arc/console.c (grub_console_term_output): Likewise.
* grub-core/term/efi/console.c (grub_console_term_output): Likewise.
* grub-core/term/gfxterm.c (grub_video_term): Likewise.
* grub-core/term/i386/coreboot/cbmemc.c (grub_cbmemc_term_output):
* Likewise.
* grub-core/term/i386/pc/console.c (grub_console_term_output):
* Likewise.
* grub-core/term/i386/pc/vga_text.c (grub_vga_text_term): Likewise.
* grub-core/term/ieee1275/console.c (grub_console_term_output):
* Likewise.
* grub-core/term/morse.c (grub_audio_term_output): Likewise.
* grub-core/term/serial.c (grub_serial_term_output): Likewise.
* grub-core/term/spkmodem.c (grub_spkmodem_term_output): Likewise.
* grub-core/term/uboot/console.c (uboot_console_term_output):
* Likewise.
2013-10-22 16:42:20 -02:00
Vladimir 'phcoder' Serbinenko
28153eb87a
* grub-core/net/arp.c: Remove variable length arrays.
...
* grub-core/net/bootp.c: Likewise.
* grub-core/net/dns.c: Likewise.
* grub-core/net/icmp6.c: Likewise.
* grub-core/net/net.c: Likewise.
2013-10-20 17:40:21 +02:00
Vladimir 'phcoder' Serbinenko
70671037c8
Split emunet into platform-dependent and GRUB-binding parts. Keep
...
platform-dependent part in kernel for easy access to OS functions.
2013-10-15 11:55:20 +02:00
Vladimir 'phcoder' Serbinenko
aabe433afe
* grub-core/net/drivers/emu/emunet.c: Move to ..
...
* grub-core/osdep/linux/emunet.c: ..here.
2013-10-08 18:42:46 +02:00
Vladimir 'phcoder' Serbinenko
54ea2f4401
* grub-core/disk/ahci.c: Add needed explicit cast.
...
* grub-core/lib/backtrace.c: Likewise.
* grub-core/net/ip.c: Likewise.
* grub-core/net/tcp.c: Likewise.
* grub-core/net/udp.c: Likewise.
2013-08-21 21:02:14 +02:00
Avik Sil
369508b3cb
* grub-core/net/tftp.c: Send tftp ack packet before closing the socket.
2013-08-14 20:32:42 -03:00
Avik Sil
412ce9165c
* grub-core/net/drivers/ieee1275/ofnet.c: Get proper mac address when using qemu.
2013-08-14 18:03:01 -03:00
Vladimir 'phcoder' Serbinenko
ae27e4d323
Merge mainline into arm
2013-07-16 18:43:43 +02:00
Andrey Borzenkov
7a87d69fcf
* grub-core/net/bootp.c: Export net_* variables.
...
* grub-core/net/net.c: Likewise.
2013-07-14 22:59:00 +04:00
Paulo Flabiano Smorigo
a9c0b699c0
* grub-core/net/bootp.c (grub_cmd_bootp): Check if there is any card
...
present.
* include/grub/err.h (grub_err_t): New enum value GRUB_ERR_NET_NO_CARD.
2013-05-11 11:25:29 +02:00
Vladimir 'phcoder' Serbinenko
8e71d87482
merge mainline into arm
2013-05-11 10:24:24 +02:00
Vladimir 'phcoder' Serbinenko
0ef7478b5b
* grub-core/net/net.c (grub_net_open_real): Autoload network modules.
2013-05-10 14:17:10 +02:00
Vladimir 'phcoder' Serbinenko
2aa072d76a
New variables 'net_default_*' to determine MAC/IP of default interface.
2013-05-07 12:05:36 +02:00
Leif Lindholm
b385e0723b
Leif's API fixes
2013-05-03 15:07:39 +02:00
Vladimir 'phcoder' Serbinenko
fe22b071dc
Fix memory leaks in ofnet.
...
Reported by: Francesco Lavra.
2013-04-13 20:12:11 +02:00
Vladimir 'phcoder' Serbinenko
fa8058da9e
Fix few memory leaks. Reported by Francesco Lavra
2013-04-13 20:07:37 +02:00
Vladimir 'phcoder' Serbinenko
92c8f58d97
* grub-core/net/http.c: Fix bad free.
2013-04-12 20:17:53 +02:00
Vladimir 'phcoder' Serbinenko
b7d17a492f
* grub-core/net/drivers/ieee1275/ofnet.c: Don't attempt to send more
...
than buffer size.
2013-04-12 19:25:16 +02:00
Vladimir 'phcoder' Serbinenko
c86c39abef
Add uboot net
2013-04-12 16:55:38 +02:00
Vladimir 'phcoder' Serbinenko
2f1071d57e
Resend a packet if we got the wrong buffer in status.
2013-03-17 13:33:16 +01:00
Vladimir 'phcoder' Serbinenko
6e4146c41e
Move to more hookless approach in IEEE1275 devices handling.
2013-03-02 23:51:19 +01:00
Colin Watson
fc524edf65
Remove nested functions from filesystem directory iterators.
...
* include/grub/fs.h (grub_fs_dir_hook_t): New type.
(struct grub_fs.dir): Add hook_data argument.
Update all implementations and callers.
2013-01-21 01:33:46 +00:00
Colin Watson
6c0314d638
Fix typos for "developer" and "development".
2013-01-20 13:24:47 +00:00
Paulo Flabiano Smorigo
48ff08895d
* grub-core/net/bootp.c (parse_dhcp_vendor): Fix double increment.
2012-11-28 14:14:20 +01:00
Colin Watson
39525c22be
* grub-core/loader/i386/linux.c (allocate_pages): Fix spelling of
...
preferred_address.
(grub_cmd_linux): Likewise.
* grub-core/net/icmp6.c (struct prefix_option): Fix spelling of
preferred_lifetime. Update all users.
2012-10-05 13:09:19 +01:00