Tue Jul 23 19:44:29 1996 Miles Bader * sock.c (sock_create): Remove NEXT_SOCK_ID. Sat Jul 13 20:20:55 1996 Michael I. Bushnell, p/BSG * io.c (S_io_reauthenticate): Repeat sock_create_port and auth_server_authenticate for as long as we get EINTR. Sun Jul 7 21:30:33 1996 Michael I. Bushnell, p/BSG * io.c (S_io_reauthenticate): Don't use unsafe MOVE_SEND in call to auth_server_authenticate. Mon Jul 1 18:45:35 1996 Miles Bader * sock.c (sock_create): Initialize ID field to MACH_PORT_NULL. Thu Jun 27 17:58:09 1996 Michael I. Bushnell, p/BSG * Makefile (LCLHDRS): Add sserver.h. Thu Jun 20 16:33:06 1996 Miles Bader * Makefile (pflocal): Depend on ../libfshelp/libfshelp.a. Wed May 15 20:27:38 1996 Miles Bader * sock.c (sock_free): Destroy SOCK's id port if necessary. Tue May 14 14:05:33 1996 Miles Bader * io.c (S_io_identity): New function. * sock.h (struct sock): Make the id field a receive right, not an int. Thu May 9 20:20:20 1996 Michael I. Bushnell, p/BSG * io.c (S_io_reauthenticate): Use new auth_server_authenticate protocol. Thu May 9 12:14:37 1996 Miles Bader * io.c (S_io_select): Remove TAG arg. Mon Apr 15 12:52:32 1996 Michael I. Bushnell, p/BSG * Makefile (MIGSFLAGS): Look for mig-mutate.h in $(srcdir). Fri Jan 26 16:46:37 1996 Miles Bader * socket.c (S_socket_recv): Test for MSG_OOB in IN_FLAGS, not FLAGS. Return EINVAL if we get MSG_OOB, not EOPNOTSUPP. Thu Jan 25 17:34:50 1996 Miles Bader * sock.c (sock_create_port, addr_create): Use ports_create_port instead of ports_allocate_port. * pflocal.c (trivfs_goaway): Handle errors from ports_inhibit_bucket_rpcs. (thread_cancel): Function deleted. Tue Jan 23 21:31:40 1996 Miles Bader * socket.c (S_socket_connect): Handle connectionless protocols correctly. * socket.c (S_socket_send): Allow DEST_ADDR to be null if the socket is connected. * sock.c (sock_bind): Don't change SOCK's ref count if we're returning an error. Thu Jan 4 15:44:13 1996 Miles Bader * io.c (S_io_select): Reworked to avoid calling ports_interrupt_self_on_port_death() if there's data immediately available. Also, don't block if we can return EOF/EPIPE. Thu Dec 28 13:46:32 1995 Miles Bader * io.c (S_io_select): Use handy macro to avoid unthinkable line break. Tue Dec 26 17:30:18 1995 Miles Bader * io.c (S_io_select): Add reply port parameter, and request notification if it dies. * mig-mutate.h (IO_SELECT_REPLY_PORT): New def. Mon Nov 13 14:03:03 1995 Miles Bader * socket.c (S_socket_bind, S_socket_connect): Drop ADDR's send right. Thu Nov 9 13:18:44 1995 Miles Bader * socket.c (S_socket_connect): Drop our reference to ADDR. Sun Nov 5 10:01:15 1995 Miles Bader * pf.c (S_socket_create_address): Removing BINDING argument. * pflocal.c (main): Add FLAGS argument to trivfs_startup call. Tue Sep 19 14:07:24 1995 Miles Bader * io.c (S_io_pathconf): New function. (S_io_set_all_openmodes, S_io_set_some_openmodes, S_io_clear_some_openmodes): The user specifies O_NONBLOCK, not SOCK_NONBLOCK. (S_io_get_openmodes): Always return O_APPEND. Wed Sep 6 11:53:48 1995 Miles Bader * sserver.c (sock_demuxer): Use ports_interrupt_server and ports_notify_server instead of our own version. (do_mach_notify_no_senders, do_mach_notify_port_deleted, do_mach_notify_msg_accepted, do_mach_notify_port_destroyed, do_mach_notify_port_deleted, do_mach_notify_send_once, do_mach_notify_dead_name): Functions deleted. * io.c (S_interrupt_operation): Function deleted. * Makefile (MIGSTUBS): Remove notifyServer.o and interruptServer.o. * io.c (S_io_read, S_io_readable): Don't return EPIPE on EOF. Tue Sep 5 14:22:18 1995 Miles Bader * io.c (S_io_stat): Only attempt to use the read pipe if it exists. Thu Aug 31 16:31:18 1995 Miles Bader * io.c (S_io_select): Change the way selects are done, now that writes can block. (S_io_write): Pass in the new NOBLOCK parameter to pipe_write. * socket.c (S_socket_send): Pass in the new NOBLOCK parameter to pipe_send. Tue Aug 29 14:33:14 1995 Miles Bader * io.c (S_io_select): Use pipe_select instead of pipe_wait. * connq.c (struct connq): Remove interrupt_seq_num field. (connq_listen): Use hurd_condition_wait to detect interrupts instead of previous ad-hoc mechanism. (connq_interrupt, connq_interrupt_sock): Functions deleted. * connq.h (connq_interrupt, connq_interrupt_sock): Decls deleted. * io.c (S_interrupt_operation): Use ports_interrupt_rpc to interrupt waiting threads. * sock.c (sock_acquire_read_pipe, sock_acquire_write_pipe): `aquire' -> `acquire'. * socket.c (S_socket_send, S_socket_recv): Ditto. * sock.h: Ditto. Tue Aug 29 14:30:59 1995 Roland McGrath * io.c (S_io_select): Fix typo in masking off SELECT_URG. Don't check open modes and return EBADF. Thu Aug 24 10:35:58 1995 Miles Bader * Makefile (pflocal): Put all dependencies here. (OBJS): Remove error.o. (HURDLIBS): Removed. Removed all rules dealing with error.o. Mon Aug 21 16:37:32 1995 Miles Bader * pflocal.c (trivfs_goaway, trivfs_modify_stat): Update arguments. Fri Aug 11 15:33:28 1995 Miles Bader * sock.h (struct sock): Store the pipe class in a separate field, as READ_PIPE is no longer always defined. * sock.c (sock_create, sock_connect): Set/use the PIPE_CLASS field. (sock_connect, sock_aquire_write_pipe): Use pipe_aquire_writer instead of pipe_aquire. (sock_aquire_read_pipe): Use pipe_aquire_reader instead of pipe_aquire. Handle the case where there is no read pipe (in which case return EPIPE). (sock_shutdown): Make shutting down the read half just like the write half -- the pipe goes away... (sock_create): Don't bump the read pipe ref count ourself. (sock_free): Use sock_shutdown to trash the read pipe too. * socket.c (S_socket_recv): Use pipe_release_reader instead of pipe_release. (S_socket_send): Use pipe_release_writer instead of pipe_release. (S_socket_recv): Reflect EPIPE as EOF. * io.c (S_io_read, S_interrupt_operation, S_io_readable, S_io_select): Use pipe_release_reader instead of pipe_release. (S_io_write): Use pipe_release_writer instead of pipe_release. (S_io_readable, S_io_read): Reflect EPIPE as EOF. Mon Jul 31 13:59:15 1995 Miles Bader * connq.c (connq_compress): New function. (connq_interrupt_sock): Use connq_compress to compress the queue. Sun Jul 30 10:30:24 1995 Miles Bader * connq.c (connq_interrupt_sock): Reset CQ's tail to the end of the compressed queue. Sat Jul 29 00:00:57 1995 Miles Bader * socket.c (S_socket_send): Only free SOURCE_ADDR if the send fails, as otherwise it's consumed; also free all the ports in PORTS if the send fails. * io.c (S_interrupt_operation): Allow socket trying to connect to be interrupted. * connq.c (connq_interrupt_sock): New function. * socket.c (S_socket_connect): Use the CONNECT_QUEUE field to allow only a single connection attempt at once. Check for already-connected sockets here instead of waiting for the final rendezvous. * connq.h (connq_interrupt_sock): New declaration. * connq.c (connq_listen, connq_connect, connq_interrupt, connq_set_length): Reverse the roles of the HEAD and TAIL fields, and make sure they're used correctly. (qprev): Deleted function. * sock.h (struct sock, all uses changed): Add the CONNECT_QUEUE field, and rename the CONNQ field to LISTEN_QUEUE. * sock.c (sock_create): Initialize the CONNECT_QUEUE field and rename CONNQ to LISTEN_QUEUE. * connq.c (connq_set_length): When shrinking the queue, actually do so, and don't leak memory. * socket.c (S_socket_connect): Return ECONNREFUSED when trying to connect to a non-existant address, instead of EADDRNOTAVAIL. * connq.c (struct connq): Add the INTERRUPT_SEQ_NUM field, used to detect interupts. (connq_listen): Detect when we get interrupted, and return EINTR. (connq_interrupt): New function. * connq.h (connq_interrupt): New declaration. * io.c (S_interrupt_operation): Call connq_interrupt when appropiate. * connq.c (connq_connect): Initialize REQ before using it. (connq_request_init): Swap the arguments. (connq_listen): Don't lock the accepted request just to get its sock. * socket.c (S_socket_connect): Actually use the connq operations to connect, like the listening socket is expecting, instead of connecting directly to it.