Age | Commit message (Collapse) | Author | |
---|---|---|---|
2025-02-28 | pfinet: Fix spurious EINTR errors from selectv0.9.git20250304 | Samuel Thibault | |
While sleeping in pthread_hurd_cond_timedwait_np, current->signal will be overwritten by the management of other RPCs, so we have to give it some value on wake up. Also, if we previously got interrupted, we shouldn't ever try to wait again until exiting from the RPC: an interrupt means we really want to try hard to finish the RPC. Thanks Zhaoming Luo <zhmingluo@163.com> for the deep investigation and draft! | |||
2025-02-10 | Allow compilation with -O0 | Flavio Cruz | |
* libshouldbeinlibc/lcm.c: make gcd static since it's not exposed as a symbol. * pfinet/linux-src/net/ipv4/{tcp,udp}_ipv4.c: Drop inline from lookup functions since they are used in another module (icmp.c) and shouldn't be removed. * term/munge.c: make poutput static since it's not exposed as a symbol. Message-ID: <nmok54owdbglalqkw2ky76jzvn4vvyybpqtftruzhpixcsx7fo@jbphrribcxq5> | |||
2025-02-08 | Add names to threads | Samuel Thibault | |
2024-12-14 | Add a description comment for the MIG type translation files | Zhaoming Luo | |
Signed-off-by: Zhaoming Luo <zhmingluo@163.com> Message-ID: <20241213005831.748151-1-zhmingluo@163.com> | |||
2024-07-08 | tcp: select(writefds) don't hang up when a peer close connection | KOSAKI Motohiro | |
This issue come from ruby language community. Below test program hang up when only run on Linux. % uname -mrsv Linux 2.6.26-2-486 #1 Sat Dec 26 08:37:39 UTC 2009 i686 % ruby -rsocket -ve ' BasicSocket.do_not_reverse_lookup = true serv = TCPServer.open("127.0.0.1", 0) s1 = TCPSocket.open("127.0.0.1", serv.addr[1]) s2 = serv.accept s2.close s1.write("a") rescue p $! s1.write("a") rescue p $! Thread.new { s1.write("a") }.join' ruby 1.9.3dev (2010-07-06 trunk 28554) [i686-linux] #<Errno::EPIPE: Broken pipe> [Hang Here] FreeBSD, Solaris, Mac doesn't. because Ruby's write() method call select() internally. and tcp_poll has a bug. SUS defined 'ready for writing' of select() as following. | A descriptor shall be considered ready for writing when a call to an output | function with O_NONBLOCK clear would not block, whether or not the function | would transfer data successfully. That said, EPIPE situation is clearly one of 'ready for writing'. We don't have read-side issue because tcp_poll() already has read side shutdown care. | if (sk->sk_shutdown & RCV_SHUTDOWN) | mask |= POLLIN | POLLRDNORM | POLLRDHUP; So, Let's insert same logic in write side. - reference url http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/31065 http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/31068 Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Signed-off-by: David S. Miller <davem@davemloft.net> | |||
2024-06-24 | Fix issues with GCC 14. | Flavio Cruz | |
* ftpfts/ftpfs: use appropriate function signature for interrupt_check. * pfinet/Makefile: turn off warnings in Linux driver code that are now errors in GCC 14. * pfinet/glue-include/linux/socket.h: remove duplicate functions. These are implemented in linux-src/net/core/iovec.c. Message-ID: <pnx5mho5ipgabehscwu2ogk5l7zfjsxpmjz37fuplgbtohwtjj@ofhr2r5xvqm6> | |||
2024-06-24 | Include unistd.h for sleep in pfinet/ethernet.c | Flavio Cruz | |
Compilation fails otherwise due to -Werror=implicit-function-declaration Message-ID: <uuxfc5gjinlekgdyjzxesz72t6dabbl6s2f2n2fi7iw2bi5nl5@js7sx73kagmd> | |||
2024-05-19 | pfinet: wait a bit before retrying to open ethernet device | Samuel Thibault | |
If netdde is restarting, it may have not finished probing devices, give it some time. | |||
2023-12-29 | pfinet: fix type alias | Flavio Cruz | |
Message-ID: <20231229212105.858759-11-flaviocruz@gmail.com> | |||
2023-12-29 | Use mach_msg_type_number_t whenever required to avoid warnings | Flavio Cruz | |
Message-ID: <20231229212105.858759-3-flaviocruz@gmail.com> | |||
2023-12-29 | pfinet and pci-arbiter: update server handlers to return kern_return_t to ↵ | Flavio Cruz | |
fix -Werror=enum-int-mismatch warnings Message-ID: <20231229161211.312389-1-flaviocruz@gmail.com> | |||
2023-08-31 | pfinet: Also accept MSG_NOSIGNAL in udpv6_sendmsg | Samuel Thibault | |
The implementation is shared with IPv4 | |||
2023-08-08 | pfinet: Get rid of u_int | Samuel Thibault | |
2023-06-11 | pfinet: Fix x86_64 prototypes | Samuel Thibault | |
2023-05-29 | pfinet: Add x86_64 checksum support | Samuel Thibault | |
2023-05-28 | pfinet: Missing size_t/mach_msg_type_number_t fix | Samuel Thibault | |
2023-05-10 | More prototypes fixes | Samuel Thibault | |
2023-05-02 | Use uintptr_t for message payloads. | Flavio Cruz | |
A follow up to 92fad38a043b75ed6b435b3efa574ede91dbe9ee in gnumach. Message-Id: <ZFCNasf9bJ9qj+CG@jupiter.tail36e24.ts.net> | |||
2023-04-08 | Further modernize Hurd code by enforcing strict prototypes and no implicit ↵ | Flavio Cruz | |
function declarations. Most of the changes land in one of these buckets: * Removed unused declarations. * Used (void) to represent no parameters instead of () which means an undeterminate number of parameters. * Included missing header files whenever necessary (stdlib.h, sys/mman.h, etc) * Typedefed function pointers to be able to fully declare the parameter types. * Added declarations of library functions that are used elsewhere (example is libps/ps.h). * Made functions static whenever they are only used in that file. * Forwarded declarations of some methods that were made static. Message-Id: <ZDD1o7/tVYeZew+G@jupiter.tail36e24.ts.net> | |||
2023-04-03 | Modernize code by removing use of old style definitions. | Flavio Cruz | |
Also add -Werror=old-style-definition to enforce new code. Message-Id: <ZBZ+8xf7GHy2RT/h@jupiter.tail36e24.ts.net> | |||
2023-02-23 | pfinet: Fix shifting left into bit 31 | Samuel Thibault | |
2023-02-19 | pfinet: Align packets | Samuel Thibault | |
The Ethernet header is 14 bytes long, and thus leads to IP header misalignment. This uses skb_reserve to introduce 2 bytes of padding to realign IP headers. | |||
2023-01-01 | pfinet: Fix using uninitialized value | Samuel Thibault | |
2022-11-06 | Remove duplicate pfinet linux headers that have glue versions | Flavio Cruz | |
Message-Id: <Y2NNAegVOKg/X7OC@viriathus> | |||
2022-09-22 | pfinet: Fix warningv0.9.git20220925 | Samuel Thibault | |
2022-09-22 | rioctl: Use r not i group ioctl for SIOCADDRT/SIOCDELRT | Damien Zammit | |
Message-Id: <20220922004105.961869-1-damien@zamaudio.com> | |||
2022-09-21 | Use route.h from glibc | Samuel Thibault | |
Unfortunately the Linux source also uses <net/route.h>, so we have to both make that include the glibc-provided one, and avoid making it emit Linuxish definitions when they would conflict with glibc definitions. | |||
2022-09-11 | Add new RPC for pfinet network routes | Damien Zammit | |
Message-Id: <20220909094234.517165-1-damien@zamaudio.com> | |||
2022-08-29 | pfinet: Factorize preparing the route request | Samuel Thibault | |
2022-08-29 | pfinet: Add SIOCADDRT and SIOCDELRT equivalent iioctls | Damien Zammit | |
Using a new client side <net/route.h> I was able to clean up the existing options.c in pfinet and add two new ioctls for adding/deleting network routes. /* move to bits/ioctl.h */ struct ifrtreq { char ifname[IFNAMSIZ]; in_addr_t rt_dest; in_addr_t rt_mask; in_addr_t rt_gateway; int rt_flags; int rt_metric; int rt_mtu; int rt_window; int rt_irtt; int rt_tos; int rt_class; }; Message-Id: <20220829102952.369798-1-damien@zamaudio.com> | |||
2022-08-29 | Fix types of read write and readables methods | Etienne Brateau | |
Message-Id: <20220829193617.13481-1-etienne.brateau@gmail.com> | |||
2022-08-13 | Drop ip_mreqn structure | Samuel Thibault | |
This is to be defined in the glibc header. | |||
2022-08-13 | pfinet: Increase default max buffer size to 256k, like on Linux | Samuel Thibault | |
2022-02-12 | Fix warning | Samuel Thibault | |
* pfinet/socket-ops.c (S_socket_setopt): Cast data into char* before passing it to Linux' setsockopt which erroneously takes a char*. | |||
2022-02-12 | Fix warning | Samuel Thibault | |
* pfinet/io-ops.c (S_io_write), pfinet/socket-ops.c (S_socket_send): Cast const void * pointer to void * when using it in struct iovec which always uses a void* even when writing. | |||
2022-01-17 | Fix const warnings | Samuel Thibault | |
Now that the RPCs have const, this forces us cleaning our const-meant functions. | |||
2022-01-16 | Make RPC input array parameters const | Samuel Thibault | |
This follows mig's cf4bcc3f1435 ("Also add const qualifiers on server side") | |||
2022-01-01 | Fix build warnings | Samuel Thibault | |
No actual behavior change. | |||
2022-01-01 | pfinet: Fix IPV6 option values | Samuel Thibault | |
pfinet is providing the RFC2292 IPv6 options interface, not the RFC3542 interface, so we have to use the old option numbers here. | |||
2021-01-23 | pfinet: fix a missed 'return' keyword. | Guy-Fleury Iteriteka | |
* pfinet/ethernet.c(ethernet_close): Add 'return 0;' at the end of function. Message-Id: <20210123221255.11791-2-gfleury@disroot.org> | |||
2021-01-23 | pfinet: fix missed include files. | Guy-Fleury Iteriteka | |
* pfinet/glue-include/linux/socket.h: include '<string.h>' for 'memcpy' and '<stdlib.h>' for 'abort'. Message-Id: <20210123221255.11791-1-gfleury@disroot.org> | |||
2020-11-11 | Remove remnants of cthreads | Samuel Thibault | |
* doc/hurd.texi: Index pthread.h instead of cthreads.h * libports/Makefile (SRCS): Drop stubs.c. * libports/stubs.c: Remove file. * mach-defpager/default_pager.c (default_pager): Drop disabled cthreads calls. * pfinet/kmem_cache.c: Fix comment. * proc/stubs.c: Fix comments. | |||
2020-03-31 | Fix build with -fno-common | Samuel Thibault | |
which will be the default in gcc-10. * acpi/acpifs.h (fs, acpifs_maptime): Add extern qualifier. * boot/private.h (verbose): Likewise. * eth-multiplexer/netfs_impl.h (multiplexer_maptime): Likewise. * eth-multiplexer/vdev.h (port_bucket, vdev_portclass): Likewise. * exec/priv.h (port_bucket, execboot_portclass): Likewise. * ext2fs/ext2fs.h (sblock, sblock_dirty, block_size, log2_block_size, log2_dev_blocks_per_fs_block, log2_stat_blocks_per_fs_block, zeroblock, frag_size, frags_per_block, inodes_per_block, itb_per_group, db_per_group, desc_per_block, addr_per_block, groups_count, node_to_page_lock, generation_lock, next_generation, group_desc_image, global_pokel, modified_global_blocks, use_xattr_translator_records): Likewise. * hostmux/hostmux.h (hostmux_maptime): Likewise. * isofs/isofs.h (host_name, mounted_on, disk_image, disk_image_len, logical_block_size, sblock): Likewise. * libdiskfs/diskfs.h (diskfs_shortcut_symlink, diskfs_shortcut_chrdev, diskfs_shortcut_blkdev, diskfs_shortcut_fifo, diskfs_shortcut_ifsock, diskfs_create_symlink_hook, diskfs_read_symlink_hook): Likewise. * libnetfs/callbacks.h (_netfs_translator_callback1, _netfs_translator_callback2): Likewise. * libnetfs/priv.h (netfs_mtime): Likewise. * libpager/priv.h (_pager_class): Likewise. * libtrivfs/trivfs.h (trivfs_check_access_hook, trivfs_check_open_hook, trivfs_open_hook, trivfs_protid_create_hook, trivfs_peropen_create_hook, trivfs_protid_destroy_hook, trivfs_peropen_destroy_hook, trivfs_getroot_hook): Likewise. * lwip/lwip-hurd.h (lwip_bucket, socketport_class, addrport_class, shutdown_notify_class, lwip_protid_portclasses, lwip_cntl_portclasses, lwip_bootstrap_portclass, fsys_identity, lwipcntl, lwip_owner, lwip_group): Likewise. * lwip/port/include/netif/hurdtunif.h (tunnel_cntlclass, tunnel_class): Likewise. * nfs/nfs.h (main_udp_socket, hostname, mapped_time): Likewise. * nfsd/nfsd.h (mapped_time, authserver): Likewise. * pci-arbiter/pcifs.h (fs, pcifs_maptime): Likewise. * pci-arbiter/startup.h (pci_shutdown_notify_class, arrange_shutdown_notification): Likewise. * pfinet/pfinet.h (pfinet_bucket, addrport_class, socketport_class, fsys_identity, pfinetctl, pfinet_owner, pfinet_group): Likewise. * pflocal/sserver.h (sock_port_bucket): Likewise. * proc/proc.h (authserver, self_proc, init_proc, startup_proc, proc_bucket, proc_class, generic_port_class, exc_class, generic_port, kernel_proc, global_lock): Likewise. * term/term.h (termstate, termflags, global_lock, carrier_alert, select_alert, pty_select_alert, term_bucket, tty_cntl_class, tty_class, cttyid_class, pty_class, pty_cntl_class, termctl, ptyctl, inputq, rawq, outputq, remote_input_mode, external_processing, term_owner, term_group, term_mode, bottom): Likewise. * usermux/usermux.h (usermux_maptime): Likewise. * utils/msgids.h (msgid_argp): Likewise. * libdiskfs/priv.h (_diskfs_mtime): Remove definition. * lwip/options.h (lwip_argp): Add prototype. * mach-defpager/priv.h (partitions): Name structure. (all_partitions): Add extern qualifier. * acpi/main.c (acpifs_maptime, fs): New variables. * exec/main.c (port_bucket, execboot_portclass): Likewise. * ext2fs/ext2fs.c (sblock, sblock_dirty, block_size, log2_block_size, log2_dev_blocks_per_fs_block, log2_stat_blocks_per_fs_block, frag_size, frags_per_block, inodes_per_block, itb_per_group, db_per_group, desc_per_block, addr_per_block, groups_count, next_generation, group_desc_image, global_pokel, use_xattr_translator_records): Likewise. * isofs/main.c (host_name, mounted_on, logical_block_size, sblock): Likewise. * libpager/pager-create.c (_pager_class): Likewise. * lwip/port/netif/hurdtunif.c (tunnel_cntlclass, tunnel_class): Likewise. * mach-defpager/default_pager.c (all_partitions): Likewise. * nfs/main.c (main_udp_socket, hostname, mapped_time): Likewise. * nfsd/main.c (mapped_time, authserver): Likewise. * pci-arbiter/main.c (fs, pcifs_maptime): Likewise. * pci-arbiter/startup.c (*pci_shutdown_notify_class): Likewise. * pfinet/main.c (pfinetctl, pfinet_owner, pfinet_group, pfinet_bucket, addrport_class, socketport_class, fsys_identity): Likewise. * proc/main.c (authserver, self_proc, init_proc, startup_proc, proc_bucket, proc_class, generic_port_class, exc_class, generic_port, kernel_proc, global_lock): Likewise. * term/main.c (termstate, termflags, global_lock, carrier_alert, select_alert, pty_select_alert, term_bucket, tty_cntl_class, tty_class, cttyid_class, pty_class, pty_cntl_class, termctl, ptyctl, outputq, remote_input_mode, external_processing, term_owner, term_group, term_mode, bottom): Likewise. * usermux/usermux.c (usermux_mapped_time): Rename to usermux_maptime. * lwip/main.c: Include "options.h". (lwip_argp, netif_list): Remove declarations. (lwip_bucket, socketport_class, addrport_class, shutdown_notify_class, lwip_cntl_portclasses, lwip_bootstrap_portclass, lwip_owner, lwip_group, fsys_identity, lwipcntl): New variables. * eth-multiplexer/multiplexer.c (multiplexer_maptime): Add variable. * hostmux/hostmux.c (hostmux_mapped_time): Rename variable to hostmux_maptime * libdiskfs/extra-version.c: Rename file to... * libdiskfs/priv.c: ... new file. (diskfs_shortcut_symlink, diskfs_shortcut_chrdev, diskfs_shortcut_blkdev, diskfs_shortcut_fifo, diskfs_shortcut_ifsock, diskfs_create_symlink_hook, diskfs_read_symlink_hook): Add weak variables. * libdiskfs/Makefile (OTHERSRCS): Replace extra-version.c with priv.c. * libtrivfs/priv.c: New file. * libtrivfs/Makefile (OTHERSRCS): Add priv.c * libcons/extra-version.c: Rename file to... * libcons/priv.c: ... new file. * libcons/Makefile (SRCS): Replace extra-version.c with priv.c. Fix build with # | |||
2020-01-05 | pfinet: Fix build | Samuel Thibault | |
* pfinet/socket.c: Define _HACK_ERRNO_H to get a proper errno definition. | |||
2020-01-05 | pfinet: Fix build | Samuel Thibault | |
errno is also used by glue headers, so we can not actually check it * pfinet/io-ops.c (S_io_reauthenticate): Do not check that it's EINTR that make_sock_user failed with. | |||
2020-01-05 | lwip,pfinet: Make S_io_reauthenticate return error | Samuel Thibault | |
* lwip/io-ops.c (lwip_S_io_reauthenticate): Return errno on make_sock_user returning an error. * pfinet/io-ops.c (S_io_reauthenticate): Likewise. | |||
2020-01-05 | lwip,pfinet: Fix crash on make_sock_user getting EINTR | Samuel Thibault | |
_ports_create_port_internal may return EINTR. * lwip/port-objs.c (make_sock_user): Set errno when ports_create_port returns an error. * pfinet/socket.c (make_sock_user): Likewise. * lwip/io-ops.c (lwip_S_io_reauthenticate): Loop while make_sock_user errors with EINTR. * pfinet/io-ops.c (S_io_reauthenticate): Likewise. | |||
2019-09-01 | Use the data_t type defined in hurd_types.h. | Flavio Cruz | |
* boot/boot.c: Replace char* with data_t. * console-client/trans.c: Likewise. * exec/exec.c: Likewise. * ext2fs/storeinfo.c: Likewise. * fatfs/inode.c: Likewise. * fatfs/main.c: Likewise. * isofs/inode.c: Likewise. * libdiskfs/boot-start.c: Likewise. * libdiskfs/dir-readdir.c: Likewise. * libdiskfs/file-exec.c: Likewise. * libdiskfs/file-get-fs-opts.c: Likewise. * libdiskfs/file-get-trans.c: Likewise. * libdiskfs/file-getfh.c: Likewise. * libdiskfs/file-set-trans.c: Likewise. * libdiskfs/fsys-forward.c: Likewise. * libdiskfs/fsys-getfile.c: Likewise. * libdiskfs/fsys-options.c: Likewise. * libdiskfs/io-read.c: Likewise. * libdiskfs/io-write.c: Likewise. * libnetfs/dir-readdir.c: Likewise. * libnetfs/file-exec.c: Likewise. * libnetfs/file-get-fs-options.c: Likewise. * libnetfs/file-get-storage-info.c: Likewise. * libnetfs/file-get-translator.c: Likewise. * libnetfs/file-set-translator.c: Likewise. * libnetfs/fsstubs.c: Likewise. * libnetfs/fsys-get-options.c: Likewise. * libnetfs/fsys-set-options.c: Likewise. * libnetfs/fsysstubs.c: Likewise. * libnetfs/io-read.c: Likewise. * libnetfs/io-write.c: Likewise. * libtrivfs/dir-readdir.c: Likewise. * libtrivfs/file-get-fs-options.c: Likewise. * libtrivfs/file-get-storage-info.c: Likewise. * libtrivfs/file-get-trans.c: Likewise. * libtrivfs/file-getfh.c: Likewise. * libtrivfs/file-set-trans.c: Likewise. * libtrivfs/fsys-forward.c: Likewise. * libtrivfs/fsys-get-options.c: Likewise. * libtrivfs/fsys-set-options.c: Likewise. * libtrivfs/fsys-stubs.c: Likewise. * libtrivfs/io-read.c: Likewise. * libtrivfs/io-write.c: Likewise. * pfinet/io-ops.c: Likewise. * pfinet/pfinet-ops.c: Likewise. * pfinet/socket-ops.c: Likewise. * pfinet/tunnel.c: Likewise. * pflocal/io.c: Likewise. * pflocal/pf.c: Likewise. * pflocal/socket.c: Likewise. * proc/info.c: Likewise. * startup/startup.c: Likewise. * storeio/io.c: Likewise. * term/users.c: Likewise. * tmpfs/node.c: Likewise. * trans/crash.c: Likewise. * trans/fakeroot.c: Likewise. * trans/fifo.c: Likewise. * trans/firmlink.c: Likewise. * trans/hello-mt.c: Likewise. * trans/hello.c: Likewise. * trans/mtab.c: Likewise. * trans/new-fifo.c: Likewise. * trans/null.c: Likewise. * trans/proxy-defpager.c: Likewise. * trans/streamio.c: Likewise. | |||
2018-06-13 | Hurd patches (fix compilation) | Luca Weiss | |
* isofs/rr.c (rrip_work): Use gnu_dev_makedev instead of makedev. * libdiskfs/file-set-trans.c (diskfs_S_file_set_translator): Likewise. * libnetfs/file-set-translator.c (netfs_S_file_set_translator): Likeiwse. * nfs/nfs.c (xdr_decode_fattr): Likewise. * storeio/storeio.c (parse_opt): Likewise. * libfshelp/fetch-root.c (fshelp_short_circuited_callback1): Use gnu_dev_major and gnu_dev_minor instead of major and minor. * libnetfs/file-get-translator.c (netfs_S_file_get_translator): Likewise. * nfs/ops.c (netfs_attempt_link): Likewise. * storeio/storeio.c (trivfs_append_args): Likewise. * trans/fakeroot.c (netfs_attempt_mkdev): Likewise. * pfinet/glue-include/linux/mm.h: Include <mach/vm_param.h>. * term/users.c: Include <signal.h> | |||
2017-09-26 | pfinet: Fix array size hardcoded value | Samuel Thibault | |
as hinted by Joan Lledó * pfinet/iioctl-ops.c (get_dev): Set ifname size to IFNAMSIZ instead of hardcoded value |