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 |
|
Vladimir 'phcoder' Serbinenko
|
aa7d205236
|
Retrieve DNS names from DHCP/BOOTP
|
2011-12-16 17:37:47 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
f0f4253cd2
|
Integrate DNS with address parsing
|
2011-12-16 17:12:01 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
8d4e4fc0e5
|
DNS cache support
|
2011-12-16 15:08:46 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
3729fcfc1a
|
support cname
|
2011-12-16 13:43:31 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
34feab6f21
|
Remerge net branch
|
2011-12-15 20:53:29 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
bd67ad0f70
|
merge mainline into net
|
2011-12-15 20:51:35 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
078d2b2e68
|
Add forgotten file
|
2011-12-15 20:50:21 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
f138623a60
|
* grub-core/net/netbuff.c (grub_netbuff_alloc): Ensure proper alignment.
|
2011-12-13 02:15:09 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
5d048bf210
|
* grub-core/net/drivers/ieee1275/ofnet.c (bootp_response_properties):
Make name a const ptr.
|
2011-12-13 01:07:06 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
74dbd24466
|
* include/grub/loader.h (grub_loader_register_preboot_hook):
Use struct preboot * and not void * for handle. All users updated.
(grub_loader_unregister_preboot_hook): Likewise.
|
2011-12-13 00:28:14 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
6e0632e28c
|
* grub-core/commands/acpihalt.c: Gettextized.
* grub-core/commands/cacheinfo.c: Likewise.
* grub-core/commands/cmp.c: Likewise.
* grub-core/commands/efi/loadbios.c: Likewise.
* grub-core/commands/gptsync.c: Likewise.
* grub-core/commands/ieee1275/suspend.c: Likewise.
* grub-core/commands/legacycfg.c: Likewise.
* grub-core/commands/memrw.c: Likewise.
* grub-core/commands/minicmd.c: Likewise.
* grub-core/commands/parttool.c: Likewise.
* grub-core/commands/time.c: Likewise.
* grub-core/commands/videoinfo.c: Likewise.
* grub-core/disk/geli.c: Likewise.
* grub-core/disk/i386/pc/biosdisk.c: Likewise.
* grub-core/disk/luks.c: Likewise.
* grub-core/disk/lvm.c: Likewise.
* grub-core/font/font_cmd.c: Likewise.
* grub-core/fs/zfs/zfscrypt.c: Likewise.
* grub-core/fs/zfs/zfsinfo.c: Likewise.
* grub-core/gfxmenu/view.c: Likewise.
* grub-core/kern/emu/hostdisk.c: Likewise.
* grub-core/kern/emu/main.c: Likewise.
* grub-core/kern/emu/misc.c: Likewise.
* grub-core/kern/emu/mm.c: Likewise.
* grub-core/kern/mips/arc/init.c: Likewise.
* grub-core/kern/mips/loongson/init.c: Likewise.
* grub-core/kern/partition.c: Likewise.
* grub-core/lib/i386/halt.c: Likewise.
* grub-core/lib/mips/arc/reboot.c: Likewise.
* grub-core/lib/mips/loongson/reboot.c: Likewise.
* grub-core/loader/i386/pc/chainloader.c: Likewise.
* grub-core/loader/i386/xnu.c: Likewise.
* grub-core/loader/multiboot.c: Likewise.
* grub-core/net/bootp.c: Likewise.
* grub-core/net/net.c: Likewise.
* grub-core/normal/term.c: Likewise.
* grub-core/partmap/bsdlabel.c: Likewise.
* grub-core/parttool/msdospart.c: Likewise.
* grub-core/term/gfxterm.c: Likewise.
* grub-core/term/terminfo.c: Likewise.
* grub-core/video/i386/pc/vbe.c: Likewise.
* util/grub-menulst2cfg.c: Likewise.
* util/grub-mkdevicemap.c: Likewise.
* util/grub-mklayout.c: Likewise.
* util/grub-mkrelpath.c: Likewise.
* util/grub-script-check.c: Likewise.
* util/ieee1275/grub-ofpathname.c: Likewise.
* util/resolve.c: Likewise.
|
2011-11-11 21:44:56 +01:00 |
|
Yves Blusseau
|
93f87ec28d
|
* grub-core/net/tcp.c (grub_net_ip_transport_checksum): Silence spurious
warning.
|
2011-10-30 10:50:26 +01:00 |
|
Vladimir 'phcoder' Serbinenko
|
038ec56a31
|
nslookup implementation
|
2011-10-14 19:21:59 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
0cb9503b70
|
support routed pings
|
2011-10-13 20:53:22 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
bd40efbf0b
|
several net bugfixes and improvements and fix some memory leaks
|
2011-10-13 18:31:53 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
da1b289afc
|
IPv6. Apparently working. At least I could retrieve a file with http6
|
2011-10-13 01:22:56 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
7c006811f8
|
more ipv6 code. Now ipv6 ping succeeds
|
2011-10-12 23:15:02 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
a53cf6534d
|
some more ipv6 code
|
2011-10-12 10:20:55 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
d5e60b1ba0
|
Add license statement to the emunet
|
2011-10-05 23:50:43 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
eb6a7b9788
|
Hopefully fix EFI problem. Not tested
|
2011-10-05 23:33:36 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
140674be60
|
Remove leftover variabel
|
2011-10-05 23:18:44 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
9aad3cd91d
|
IPv6 support. Several fixes and unifications
|
2011-10-05 22:15:30 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
96bd62413f
|
Don't set RST in response to empty packets
|
2011-10-05 17:50:52 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
4f71e077b9
|
HTTP seek support. Various bugfixes.
|
2011-10-05 17:39:13 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
5c62099a8f
|
Fix warning on i386-pc
|
2011-10-05 10:22:23 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
80e722366d
|
First attempt at http
|
2011-07-23 03:49:02 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
440694e3d3
|
Fix TCP retransmission
|
2011-07-23 03:48:10 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
4ebb4c616f
|
Remove useless include in tftp
|
2011-07-23 03:47:10 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
c410299b05
|
TCP listening support
|
2011-07-10 23:37:28 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
f4e6e2909b
|
TCP fragmentation
|
2011-07-10 11:26:34 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
bfca152e5a
|
Fix a memory leak
|
2011-07-10 09:53:29 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
3a2e860334
|
TCP improvements
|
2011-07-10 09:52:08 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
3a7af37260
|
basic tcp implementation
|
2011-07-10 08:46:48 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
92bb3cfc17
|
Use priority queue to reassemble TFTP packets
|
2011-07-09 01:28:47 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
fecdbd6b17
|
support ip fragmentation
|
2011-07-09 00:27:27 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
e2955971a3
|
move packet allocation to recv code to allow bigger buffers
|
2011-07-08 20:38:12 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
6a1af81a97
|
add mtu information
|
2011-07-08 18:49:35 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
5438143da6
|
improve robustness of IPv4 receiving code
|
2011-07-08 15:43:34 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
1367c143dd
|
several cleanups. Ping reply support
|
2011-07-08 14:41:52 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
697ffdc55b
|
Fix a memory leak
|
2011-07-06 18:21:24 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
d1831ca48a
|
Limit idle polling frequency
|
2011-07-06 18:21:07 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
c3bf5267b0
|
Fix a memory leak
|
2011-07-06 17:41:49 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
6cf88dfd7a
|
add missing file
|
2011-07-06 15:02:19 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
138eeb3625
|
Move bootp into a separate file
|
2011-07-06 13:52:35 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
228ccedb5e
|
poll cards when idle
|
2011-07-06 13:37:33 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
1c3fcdee15
|
buffer network files. Fix incorrect net_fini_hw and unregister calls
|
2011-07-06 13:13:45 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
b975df6348
|
Send TFTP_ERROR on tftp premature close. Several cleanups
|
2011-07-06 12:53:37 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
72b9ad936a
|
fix declarations in pxe
|
2011-07-06 02:49:04 +02:00 |
|
Vladimir 'phcoder' Serbinenko
|
0bc2cd0f82
|
Reintroduce open/close of net cards. Clean up ofnet.
|
2011-07-05 16:37:14 +02:00 |
|