grub/grub-core
Vladimir 'phcoder' Serbinenko 198e150aaf IPv6, TCP, HTTP, ICMP and DNS support. Several cleanups and bugfixes.
* grub-core/Makefile.core.def (net): Add net/dns.c, net/tcp.c,
	net/icmp.c and net/icmp6.c.
	(http): New module.
	(priority_queue): Likewise.
	* grub-core/io/bufio.c: Rewritten.
	* grub-core/lib/legacy_parse.c (legacy_command): New argument type
	TYPE_WITH_CONFIGFILE_OPTION.
	(legacy_commands): Add bootp and dhcp.
	(is_option): Handle TYPE_WITH_CONFIGFILE_OPTION.
	(grub_legacy_parse): Likewise.
	* grub-core/lib/priority_queue.c: New file.
	* grub-core/net/arp.c: Add missing license header.
	(arp_find_entry): Removed.
	(arp_find_entry): Likewise.
	(grub_net_arp_resolve): Rename to ...
	(grub_net_arp_send_request): ...this.
	(grub_net_arp_receive): New card argument.
	* grub-core/net/bootp.c (parse_dhcp_vendor): Clean up.
	Set router and DNS server.
	(grub_net_configure_by_dhcp_ack): Handle routing information.
	(grub_cmd_bootp): Set checksum.
	(grub_bootp_init): Remove net_dhcp.
	* grub-core/net/dns.c: New file.
	* grub-core/net/drivers/efi/efinet.c (send_card_buffer): Wait for
	completion.
	(get_card_packet): Handle allocation.
	(grub_efinet_findcards): Set mtu.
	* grub-core/net/drivers/emu/emunet.c: Add missing license header.
	(get_card_packet): Handle allocation.
	(emucard): Set mtu.
	* grub-core/net/drivers/i386/pc/pxe.c (grub_pxe_recv): Handle allocation
	(GRUB_MOD_INIT): Set mtu.
	* grub-core/net/drivers/ieee1275/ofnet.c (grub_ofnetcard_data): Remove
	mtu.
	(get_card_packet): Handle allocation.
	(grub_ofnet_findcards): Set mtu.
	* grub-core/net/ethernet.c (send_ethernet_packet): Add compile time
	assert.
	(grub_net_recv_ethernet_packet): Handle IPv6.
	* grub-core/net/http.c: New file.
	* grub-core/net/icmp.c: Likewise.
	* grub-core/net/icmp6.c: Likewise.
	* grub-core/net/ip.c (ip6addr): New type.
	(ip6hdr): Likewise.
	(reassemble): Likewise.
	(cmp): New function.
	(reassembles): New variable.
	(grub_net_ip_chksum): Handle 0xffff sum and unaligned buffers.
	(id): New variable.
	(send_fragmented): New function.
	(grub_net_send_ip_packet): Rename to ...
	(grub_net_send_ip4_packet): ... this. Send fragmented if needed.
	Handle non-UDP.
	(grub_net_recv_ip_packets): Rename to ...
	(handle_dgram): ... this. Check checksum. Handle non-UDP.
	(free_rsm): New function.
	(free_old_fragments): Likewise.
	(grub_net_recv_ip4_packets): New function.
	(grub_net_send_ip6_packet): Likewise.
	(grub_net_send_ip_packet): Likewise.
	(grub_net_recv_ip6_packets): Likewise.
	(grub_net_recv_ip_packets): Likewise.
	* grub-core/net/net.c (grub_net_link_layer_entry): New struct.
	(LINK_LAYER_CACHE_SIZE): New const.
	(link_layer_find_entry): New function.
	(grub_net_link_layer_add_address): Likewise.
	(grub_net_link_layer_resolve_check): Likewise.
	(grub_net_link_layer_resolve): Likewise.
	(grub_net_ipv6_get_slaac): Likewise.
	(grub_net_ipv6_get_link_local): Likewise.
	(grub_cmd_ipv6_autoconf): Likewise.
	(parse_ip): Handle one number representation.
	(parse_ip6): New functoion.
	(match_net): Handle IPv6.
	(grub_net_resolve_address): Handle IPv6 and DNS.
	(grub_net_resolve_net_address): Handle IPv6.
	(route_cmp): New function.
	(grub_net_route_address): Find best route.
	(grub_net_addr_to_str): Handle IPv6.
	(grub_net_addr_cmp): New function.
	(grub_net_add_addr): Register local route.
	(print_net_address): Handle net address.
	(grub_net_poll_cards): Retransmit TCP.
	(grub_net_poll_cards_idle_real): Likewise.
	(have_ahead): New function.
	(grub_net_seek_real): Use underlying seek.
	(GRUB_MOD_INIT): Register net_ipv6_autoconf and init dns.
	* grub-core/net/tcp.c: New file.
	* grub-core/net/tftp.c (tftp_data): Add priority_queue.
	(cmp): New function.
	(ack): Likewise.
	(tftp_receive): Handle unordered input.
	(destroy_pq): New function.
	(tftp_close): Close pq.
	* grub-core/net/udp.c: Put missing license header.
	(grub_net_udp_socket): New function.
	(udp_socket_register): Likewise.
	(grub_net_udp_close): Likewise.
	(grub_net_recv_udp_packet): Check checksum.
	* include/grub/efi/api.h (grub_efi_simple_network): Add status.
	* include/grub/misc.h (grub_memchr): New function.
	* include/grub/net.h (GRUB_NET_*_SIZE): New enum.
	(grub_net_card_driver): Return buf in recv.
	(grub_net_slaac_mac_list): New struct.
	(grub_network_level_protocol_id): Add ipv6.
	(grub_net_network_level_addr): Likewise.
	(grub_net_network_level_net_addr): Likewise.
	(grub_net_app_protocol): Add seek.
	(grub_net_socket): Removed.
	(grub_net_sockets): Likewise.
	(grub_net_socket_register): Likewise.
	(grub_net_socket_unregister): Likewise.
	(FOR_NET_SOCKETS): Likewise.
	(grub_net_add_addr): Add const.
	(GRUB_NET_BOOTP_*): New enum.
	(grub_net_addr_cmp): New proto.
	(GRUB_NET_MAX_STR_ADDR_LEN): Take IPV6 into account.
	(GRUB_NET_MAX_STR_HWADDR_LEN): New define.
	(grub_net_hwaddr_to_str): NEw proto.
	(FOR_NET_NETWORK_LEVEL_INTERFACES): New macro.
	(FOR_NET_NETWORK_LEVEL_INTERFACES_SAFE): Handle NULL.
	(grub_dns_init): New proto.
	(grub_dns_fini): Likewise.
	(grub_net_tcp_retransmit): Likewise.
	(grub_net_link_layer_add_address): Likewise.
	(grub_net_link_layer_resolve_check): Likewise.
	(grub_net_link_layer_resolve): Likewise.
	(grub_net_dns_lookup): Likewise.
	(grub_net_add_dns_server): Likewise.
	(grub_net_remove_dns_server): Likewise.
	(GRUB_NET_TRIES): New const.
	(GRUB_NET_INTERVAL): Likewise.
	* include/grub/net/arp.h: Mostly rewritten.
	* include/grub/net/ethernet.h (grub_net_ethertype_t): New enum.
	* include/grub/net/ip.h: Mostly rewritten.
	* include/grub/net/netbuff.h: Indent.
	* include/grub/net/tcp.h: New file.
	* include/grub/net/udp.h: Mostly rewritten.
	* include/grub/priority_queue.h: New file.
	* include/grub/types.h (PRIdGRUB_SSIZE): New define.
	(grub_swap_bytes64_compile_time): Likewise.
	(grub_cpu_to_be16_compile_time): Likewise.
	(grub_cpu_to_be32_compile_time): Likewise.
	(grub_cpu_to_be64_compile_time): Likewise.
	(grub_be_to_cpu64_compile_time): Likewise.
2011-12-20 18:17:07 +01:00
..
boot * grub-core/boot/i386/pc/startup_raw.S: Clear direction flag for 2011-12-15 19:22:36 +01:00
bus Add noreturn attributes and remove unreachable code. 2011-12-13 15:13:51 +01:00
commands * grub-core/commands/i386/pc/drivemap.c (int13slot): Replace 2011-12-16 17:46:28 +01:00
disk * grub-core/disk/pata.c (grub_pata_pio_read): Handle unaligned buffer. 2011-12-13 15:55:36 +01:00
efiemu Replace UINT_TO_PTR and PTR_TO_UINT with explicit grub_addr_t casts. 2011-12-15 19:59:49 +01:00
font * grub-core/commands/acpihalt.c: Gettextized. 2011-11-11 21:44:56 +01:00
fs AFFS never uses unicode. 2011-12-14 09:52:00 +01:00
gettext Add const keyword to grub_env_get and gettextize week days. 2011-11-11 20:34:37 +01:00
gfxmenu * grub-core/gfxmenu/gui_label.c (label_paint): Handle the case 2011-12-15 19:35:54 +01:00
gnulib Add missing const qualifiers. 2011-11-30 16:20:13 +01:00
hello Implement automatic module license checking according to new GNU 2011-04-11 23:01:51 +02:00
hook * grub-core/hook/datehook.c (grub_read_hook_datetime): Small stylistic 2011-11-11 21:03:49 +01:00
io merge mainline into net 2011-12-15 20:51:35 +01:00
kern * grub-core/kern/i386/realmode.S: Increase alignment. 2011-12-15 19:17:36 +01:00
lib merge mainline into net 2011-12-15 20:51:35 +01:00
loader * grub-core/loader/multiboot.c (grub_cmd_module): Fix target address. 2011-12-15 20:05:27 +01:00
mmap forgotten file for previous commit 2011-12-15 20:04:21 +01:00
net IPv6, TCP, HTTP, ICMP and DNS support. Several cleanups and bugfixes. 2011-12-20 18:17:07 +01:00
normal * include/grub/charset.h (grub_utf16_to_utf8): Make src a const pointer. 2011-12-14 10:01:24 +01:00
partmap * grub-core/partmap/dvh.c (grub_dvh_is_valid): Make argument 2011-12-13 14:44:38 +01:00
parttool * grub-core/commands/acpihalt.c: Gettextized. 2011-11-11 21:44:56 +01:00
script Add const keyword to grub_env_get and gettextize week days. 2011-11-11 20:34:37 +01:00
term * grub-core/term/at_keyboard.c (set_scancodes): Fix preprocessor 2011-12-13 01:36:09 +01:00
tests Implement automatic module license checking according to new GNU 2011-04-11 23:01:51 +02:00
video Fix video on platforms where unaligned access is forbidden. 2011-12-13 20:07:33 +01:00
gdb_grub.in Add facility to debug GRUB with gdb under qemu. 2011-11-13 22:59:46 +01:00
genemuinit.sh automake commit without merge history 2010-05-06 11:34:04 +05:30
genemuinitheader.sh automake commit without merge history 2010-05-06 11:34:04 +05:30
genmod.sh.in * grub-core/genmod.sh.in: Use 'set -e' rather than '#! /bin/sh -e', 2011-05-18 12:53:07 +01:00
genmoddep.awk use objcopy instead of creating mod-*.c and mod-*.o 2010-08-29 16:43:07 +05:30
gensyminfo.sh.in * grub-core/genmod.sh.in: Use 'set -e' rather than '#! /bin/sh -e', 2011-05-18 12:53:07 +01:00
gensymlist.sh track function symbols 2011-05-08 18:29:37 +02:00
gentrigtables.c Implement automatic module license checking according to new GNU 2011-04-11 23:01:51 +02:00
gmodule.pl.in Add facility to debug GRUB with gdb under qemu. 2011-11-13 22:59:46 +01:00
Makefile.am Move chainloader_real_boot out of the kernel 2011-10-21 00:16:59 +02:00
Makefile.core.def merge mainline into net 2011-12-15 20:51:35 +01:00
modinfo.sh.in Unify grub-mkrescue (except powerpc) and grrub-mknetdir across platforms 2011-05-18 01:38:01 +02:00