Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
SUFFIX_DETACH(3)	    libdill Library Functions		SUFFIX_DETACH(3)

NAME
     suffix_detach  -  terminates  SUFFIX  protocol  and  returns the underlying
     socket

SYNOPSIS
	    #include <libdill.h>

	    int suffix_detach(
		int s,
		int64_t deadline);

DESCRIPTION
     SUFFIX is a message-based protocol that delimits messages by specific  byte
     sequences.   For  example,  many  protocols are line-based, with individual
     messages separated by CR+LF sequence.

     This function does the terminal handshake and returns underlying socket  to
     the user.	The socket is closed even in the case of error.

     s: Handle of the SUFFIX socket.

     deadline:	A point in time when the operation should time out, in millisec-
     onds.  Use the now function to get your current point in time.  0 means im-
     mediate timeout, i.e., perform the operation if possible or return  without
     blocking  if  not.  -1 means no deadline, i.e., the call will block forever
     if the operation cannot be performed.

     This function is not available if libdill is compiled with  --disable-sock-
     ets option.

RETURN VALUE
     In  case of success the function returns underlying socket handle.  In case
     of error it returns -1 and sets errno to one of the values below.

ERRORS
     * EBADF: Invalid handle.

     * ECANCELED: Current coroutine was canceled.

     * ECONNRESET: Broken connection.

     * ENOTSUP: The handle is not a SUFFIX protocol handle.

     * ETIMEDOUT: Deadline was reached.

EXAMPLE
		    int s = tcp_connect(&addr, -1);
		    s = suffix_attach(s, "
	    ", 2);
		    msend(s, "ABC", 3, -1);
		    char buf[256];
		    ssize_t sz = mrecv(s, buf, sizeof(buf), -1);
		    s = suffix_detach(s, -1);
		    tcp_close(s);

SEE ALSO
     mrecv(3) mrecvl(3) msend(3) msendl(3)  now(3)  suffix_attach(3)  suffix_at-
     tach_mem(3)

libdill 							SUFFIX_DETACH(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=suffix_detach&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help