aboutsummaryrefslogtreecommitdiff
path: root/pfinet/linux-src/net/ipv6/udp_ipv6.c
Commit message (Collapse)AuthorAgeFilesLines
* pfinet: Also accept MSG_NOSIGNAL in udpv6_sendmsgSamuel Thibault2023-08-311-1/+1
| | | | The implementation is shared with IPv4
* pfinet: select UDP/TCP ports randomlySamuel Thibault2017-09-101-5/+4
| | | | | | | | | | | | | | * pfinet/linux-src/include/net/tcp.h (tcp_port_rover): Remove declaration * pfinet/linux-src/include/net/udp.h (udp_port_rover): Likewise. * pfinet/linux-src/net/ipv4/tcp_ipv4.c (tcp_port_rover): Remove variable. (tcp_v4_get_port): Take port hint from net_random() instead of tcp_port_rover. * pfinet/linux-src/net/ipv4/udp.c (udp_port_rover, udp_v4_get_port): Likewise. * pfinet/linux-src/net/ipv6/tcp_ipv6.c (tcp_v6_get_port): Likewise. * pfinet/linux-src/net/ipv6/udp_ipv6.c (udp_v6_get_port): Likewise.
* [IPV6]: Add IPV6_V6ONLY socket option support.Samuel Thibault2013-01-131-6/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cherry-picked from Linux 524354b4d086a4f013343d727eaccb7b4c39eb25 * pfinet/glue-include/linux/ipv6.h: Include linux/config.h> (__ipv6_only_sock, ipv6_only_sock): New macros * pfinet/linux-src/include/linux/ipv6.h: Likewise. * pfinet/linux-src/include/linux/in6.h (IPV6_V6ONLY): New macro. * pfinet/linux-src/include/linux/sysctl.h (NET_IPV6_BINDV6ONLY): New macro. * pfinet/linux-src/include/net/ipv6.h (sysctl_ipv6_bindv6only): Declare variable. * pfinet/linux-src/include/net/sock.h (ipv6_pinfo): Add ipv6only field. * pfinet/linux-src/net/ipv4/tcp_ipv4.c: Include linux/ipv6.h. (tcp_v4_get_port, tcp_v4_lookup_listener): Test for ipv6_only_sock. * pfinet/linux-src/net/ipv4/udp.c: Include linux/ipv6.h. (udp_v4_get_port, udp_v4_lookup_longway, udp_v4_mcast_next): Test for ipv6_only_sock. * pfinet/linux-src/net/ipv6/af_inet6.c (sysctl_ipv6_bindv6only): New variable. (inet6_create): Initialize ipv6only field to sysctl_ipv6_bindv6only. * pfinet/linux-src/net/ipv6/ipv6_sockglue.c (ipv6_setsockopt): Test for ipv6_only_sock. (ipv6_setsockopt, ipv6_getsockopt): Support IPV6_V6ONLY case. * pfinet/linux-src/net/ipv6/tcp_ipv6.c (ipv6_rcv_saddr_equal): New inline function. (tcp_v6_get_port): Replace old tests with ipv6_rcv_saddr_equal. (tcp_v6_connect): Test for __ipv6_only_sock. * pfinet/linux-src/net/ipv6/udp_ipv6.c (udv6_rcv_saddr_equal): New inline function. (udp_v6_get_port): Replace old tests with udv6_rcv_saddr_equal. (udpv6_connect, udpv6_sendmsg): Test for __ipv6_only_sock.
* fix common misspellingsJonathan Neuschäfer2011-08-201-1/+1
| | | | | | * Fix spelling with codespell[1] and manually review it. [1] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
* Fix connect(AF_UNSPEC)Samuel Thibault2010-10-301-0/+8
| | | | | | | | | | Fixes sshd startup on inet6-enabled systems. * pfinet/socket-ops.c (S_socket_create_address): Accept creating AF_UNSPEC addresses too. * pfinet/linux-src/net/ipv6/udp_ipv6.c (udpv6_connect): When address family is AF_UNSPEC, call udp_connect() and clear daddr, saddr, and rcv_saddr.
* 2007-10-13 Stefan Siegl <stesie@brokenpipe.de>Stefan Siegl2007-10-131-1/+28
| | | | | | | | | | | | | | | | | | | | * linux-src/net/ipv6/af_inet6.c (inet6_getname): Initialize sin6_scope_id. * linux-src/net/ipv6/datagram_ipv6.c (ipv6_recv_error): Likewise. * linux-src/net/ipv6/tcp_ipv6.c (v6_addr2sockaddr): Likewise. * linux-src/net/ipv6/udp_ipv6.c (udpv6_recvmsg): Likewise. * linux-src/net/ipv6/raw_ipv6.c (rawv6_recvmsg): Likewise. * linux-src/net/ipv6/af_inet6.c (inet6_bind): For link-local IPv6 addresses copy sin6_scope_id to bound_dev_if and error out unless bound. * linux-src/net/ipv6/tcp_ipv6.c (tcp_v6_connect): Likewise. * linux-src/net/ipv6/udp_ipv6.c (udpv6_connect): Likewise. * linux-src/net/ipv6/raw_ipv6.c (rawv6_bind): Likewise. * linux-src/net/ipv6/raw_ipv6.c (rawv6_sendmsg): For link-local IPv6 addresses bind packet to interface specified by sin6_scope_id. * linux-src/net/ipv6/udp_ipv6.c (udpv6_sendmsg): Likewise.
* 2007-10-08 Stefan Siegl <stesie@brokenpipe.de>Stefan Siegl2007-10-081-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * config.h (CONFIG_IPV6, CONFIG_IPV6_EUI64): New defines, set to 1. * Makefile (ipv6-srcs): New variable. (LINUXSRCS): Add ipv6-srcs. * ethernet.c (ethernet_demuxer): Call skb_put instead of changing skb->len directly, and thus now update skb->tail accordingly. * pfinet.h (PORTCLASS_INET, PORTCLASS_INET6): New enums. (trivfs_protid_portclasses, trivfs_protid_nportclasses) (trivfs_cntl_portclasses, trivfs_cntl_nportclasses): Declare these. (pfinet_bootstrap_portclass): New variable. (pfinet_bind): New function. * main.c: Define _HACK_ERRNO_H. Include <errno.h>. (trivfs_protid_portclasses, trivfs_cntl_portclasses): New slots for PORTCLASS_INET6. (trivfs_protid_nportclasses, trivfs_cntl_nportclasses): Set to 2. (pfinet_bootstrap_portclass): New variable. (pfinet_bind): New function. (pfinet_activate_ipv6) [CONFIG_IPV6]: New function. (main) [CONFIG_IPV6]: Call inet6_proto_init. (main): Reordered to allow pfinet to not be started as a translator, if pfinet_bind is used. If started as a translator, treat pfinet_bootstrap_portclass when calling trivfs_startup. * options.c: Include <net/sock.h>, <net/ip6_fib.h>, <net/ip6_route.h> and <net/addrconf.h>. (options): New option `ipv4'. (options) [CONFIG_IPV6]: New options `ipv6', `address6' and `gateway6'. (parse_interface) [CONFIG_IPV6]: Add address6 and gateway6. (parse_hook_add_interface) [CONFIG_IPV6]: Initialize address6 and gateway6. (parse_opt): Parse new args. * socket-ops.c (S_socket_create): Call either net_families[PF_INET]->create or net_families[PF_INET6]->create, depending on receiving master. (S_socket_create_address): Allow creation of AF_INET6 addresses. * glue-include/asm/delay.h: New stub file. * glue-include/linux/ipv6.h: Merged many bits unmodified from Linux header file. * glue-include/linux/in6.h: Likewise. (ipv6mr_ifindex): New define, glue to ipv6mr_interface. * glue-include/linux/socket.h (SOL_IPV6, SOL_ICMPV6): New defines. * linux-src/net/ipv6/addrconf.c (ipv6_find_idev, inet6_addr_add) (inet6_addr_del) [_HURD_]: Make these non-static. (addrconf_set_dstaddr, addrconf_add_ifaddr, addrconf_del_ifaddr) [_HURD_]: Don't define these functions. * linux-src/net/ipv6/route_ipv6.c (ipv6_route_ioctl) [_HURD_]: Likewise. * linux-src/net/ipv6/af_inet6.c (inet6_ioctl) [_HURD_]: Don't define the function, instead #define it to 0. (inet6_proto_init) [_HURD_]: Don't call sit_init. * linux-src/net/ipv6/udp_ipv6.c (udp_ioctl) [_HURD_]: Define to 0. (udp_v6_get_port): Put empty statement after label to silence compiler. * linux-src/net/ipv6/tcp_ipv6.c (tcp_v6_get_port, tcp_v6_rcv): Likewise. * linux-src/net/ipv6/icmpv6.c (icmpv6_rcv): Likewise. (icmpv6_init) [_HURD_]: Don't initialize i_uid and i_gid. * linux-src/net/ipv6/mcast.c (igmp6_init): Likewise. * linux-src/net/ipv6/ndisc.c (ndisc_init): Likewise. * linux-src/net/ipv6/ip6_fib.c (BUG_TRAP): Don't use __FUNCTION__ as a string but a variable, to keep gcc happy. (fib6_walker_list): Make it non-static, to keep gcc happy. * linux-src/net/ipv6/ip6_flowlabel.c (fl_create) [_HURD_]: Drop IPV6_FL_S_USER support, since current->euid is not available.
* 2007-10-08 Stefan Siegl <stesie@brokenpipe.de>Stefan Siegl2007-10-081-0/+926
Import a number of files from Linux 2.2.14. Renamed some of them, to have unique filenames as required by the make system. * linux-src/net/ipv6/addrconf.c: Import file. * linux-src/net/ipv6/af_inet6.c: Likewise. * linux-src/net/ipv6/exthdrs.c: Likewise. * linux-src/net/ipv6/ip6_fib.c: Likewise. * linux-src/net/ipv6/ip6_flowlabel.c: Likewise. * linux-src/net/ipv6/ip6_input.c: Likewise. * linux-src/net/ipv6/ip6_output.c: Likewise. * linux-src/net/ipv6/ipv6_sockglue.c: Likewise. * linux-src/net/ipv6/mcast.c: Likewise. * linux-src/net/ipv6/ndisc.c: Likewise. * linux-src/net/ipv6/reassembly.c: Likewise. * linux-src/net/ipv6/tcp_ipv6.c: Likewise. * linux-src/net/ipv6/datagram_ipv6.c: Import file (was datagram.c). * linux-src/net/ipv6/icmpv6.c: Import file (was icmp.c). * linux-src/net/ipv6/protocol_ipv6.c: Import file (was protocol.c). * linux-src/net/ipv6/raw_ipv6.c: Import file (was raw.c). * linux-src/net/ipv6/route_ipv6.c: Import file (was route.c). * linux-src/net/ipv6/udp_ipv6.c: Import file (was udp.c).