GLOBUS_XIO_TCP_GET_BACKLOG(3)

πŸ“¦
version 6.6 Β· 6 versions
, in fedora 43, fedora 44, ubuntu resolute, ubuntu stonking

globus_xio_tcp_driver_cntls πŸ’…βœ¨

okay bestie, this is the globus_xio_tcp_driver_cntls(3) manual page β€” Library Functions Manual vibes, and it's literally the TCP driver's entire personality in one page: every attr, every cntl, no gatekeeping. 🫢 We're doing this in five parts, so settle in, hydrate, and let's go.


πŸŽ€ NAME πŸŽ€

globus_xio_tcp_driver_cntls β€” Attributes and Cntls

  • Attributes and Cntls.

🌸 SYNOPSIS 🌸

✨ Enumerations ✨

this is the full command menu, one big enum, it's giving main character energy:

enum globus_xio_tcp_cmd_t { GLOBUS_XIO_TCP_SET_SERVICE,
    GLOBUS_XIO_TCP_GET_SERVICE, GLOBUS_XIO_TCP_SET_PORT,
    GLOBUS_XIO_TCP_GET_PORT, GLOBUS_XIO_TCP_SET_BACKLOG,
    GLOBUS_XIO_TCP_GET_BACKLOG, GLOBUS_XIO_TCP_SET_LISTEN_RANGE,
    GLOBUS_XIO_TCP_GET_LISTEN_RANGE, GLOBUS_XIO_TCP_GET_HANDLE,
    GLOBUS_XIO_TCP_SET_HANDLE, GLOBUS_XIO_TCP_SET_INTERFACE,
    GLOBUS_XIO_TCP_GET_INTERFACE, GLOBUS_XIO_TCP_SET_RESTRICT_PORT,
    GLOBUS_XIO_TCP_GET_RESTRICT_PORT, GLOBUS_XIO_TCP_SET_REUSEADDR,
    GLOBUS_XIO_TCP_GET_REUSEADDR, GLOBUS_XIO_TCP_SET_NO_IPV6,
    GLOBUS_XIO_TCP_GET_NO_IPV6, GLOBUS_XIO_TCP_SET_CONNECT_RANGE,
    GLOBUS_XIO_TCP_GET_CONNECT_RANGE, GLOBUS_XIO_TCP_SET_KEEPALIVE,
    GLOBUS_XIO_TCP_GET_KEEPALIVE, GLOBUS_XIO_TCP_SET_LINGER,
    GLOBUS_XIO_TCP_GET_LINGER, GLOBUS_XIO_TCP_SET_OOBINLINE,
    GLOBUS_XIO_TCP_GET_OOBINLINE, GLOBUS_XIO_TCP_SET_SNDBUF,
    GLOBUS_XIO_TCP_GET_SNDBUF, GLOBUS_XIO_TCP_SET_RCVBUF,
    GLOBUS_XIO_TCP_GET_RCVBUF, GLOBUS_XIO_TCP_SET_NODELAY,
    GLOBUS_XIO_TCP_GET_NODELAY, GLOBUS_XIO_TCP_SET_SEND_FLAGS,
    GLOBUS_XIO_TCP_GET_SEND_FLAGS, GLOBUS_XIO_TCP_GET_LOCAL_CONTACT,
    GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT,
    GLOBUS_XIO_TCP_GET_REMOTE_CONTACT,
    GLOBUS_XIO_TCP_GET_REMOTE_NUMERIC_CONTACT,
    GLOBUS_XIO_TCP_AFFECT_ATTR_DEFAULTS, GLOBUS_XIO_TCP_SET_BLOCKING_IO,
    GLOBUS_XIO_TCP_GET_BLOCKING_IO }

πŸ¦‹ Functions πŸ¦‹

and here is every single function signature, verbatim, because we don't summarise and we don't skip. take your time, bestie, it's a lot but it's so worth it:

globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_SERVICE, const char *service_name)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_SERVICE, char **service_name_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_PORT, int listener_port)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_PORT, int *listener_port_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_BACKLOG, int listener_backlog)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_BACKLOG, int *listener_backlog_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_LISTEN_RANGE, int listener_min_port, int
    listener_max_port)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_LISTEN_RANGE, int *listener_min_port_out, int
    *listener_max_port_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_HANDLE, globus_xio_system_socket_t *handle_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_HANDLE, globus_xio_system_socket_t *handle_out)
globus_result_t globus_xio_server_cntl (server, driver,
    GLOBUS_XIO_TCP_GET_HANDLE, globus_xio_system_socket_t *handle_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_HANDLE, globus_xio_system_socket_t handle)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_INTERFACE, const char *interface)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_INTERFACE, char **interface_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_RESTRICT_PORT, globus_bool_t restrict_port)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_RESTRICT_PORT, globus_bool_t *restrict_port_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_REUSEADDR, globus_bool_t resuseaddr)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_REUSEADDR, globus_bool_t *resuseaddr_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_NO_IPV6, globus_bool_t no_ipv6)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_NO_IPV6, globus_bool_t *no_ipv6_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_CONNECT_RANGE, int connector_min_port, int
    connector_max_port)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_CONNECT_RANGE, int *connector_min_port_out, int
    *connector_max_port_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_KEEPALIVE, globus_bool_t keepalive)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_KEEPALIVE, globus_bool_t keepalive)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_KEEPALIVE, globus_bool_t *keepalive_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_KEEPALIVE, globus_bool_t *keepalive_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_LINGER, globus_bool_t linger, int linger_time)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_LINGER, globus_bool_t linger, int linger_time)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_LINGER, globus_bool_t *linger_out, int
    *linger_time_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_LINGER, globus_bool_t *linger_out, int
    *linger_time_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_OOBINLINE, globus_bool_t oobinline)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_OOBINLINE, globus_bool_t oobinline)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_OOBINLINE, globus_bool_t *oobinline_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_OOBINLINE, globus_bool_t *oobinline_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_SNDBUF, int sndbuf)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_SNDBUF, int sndbuf)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_SNDBUF, int *sndbuf_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_SNDBUF, int *sndbuf_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_RCVBUF, int rcvbuf)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_RCVBUF, int rcvbuf)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_RCVBUF, int *rcvbuf_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_RCVBUF, int *rcvbuf_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_NODELAY, globus_bool_t nodelay)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_NODELAY, globus_bool_t nodelay)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_NODELAY, globus_bool_t *nodelay_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_NODELAY, globus_bool_t *nodelay_out)
globus_result_t globus_xio_data_descriptor_cntl (dd, driver,
    GLOBUS_XIO_TCP_SET_SEND_FLAGS, int send_flags)
globus_result_t globus_xio_data_descriptor_cntl (dd, driver,
    GLOBUS_XIO_TCP_GET_SEND_FLAGS, int *send_flags_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_LOCAL_CONTACT, char **contact_string_out)
globus_result_t globus_xio_server_cntl (server, driver,
    GLOBUS_XIO_TCP_GET_LOCAL_CONTACT, char **contact_string_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT, char **contact_string_out)
globus_result_t globus_xio_server_cntl (server, driver,
    GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT, char **contact_string_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_REMOTE_CONTACT, char **contact_string_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_REMOTE_NUMERIC_CONTACT, char
    **contact_string_out)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_AFFECT_ATTR_DEFAULTS, globus_bool_t affect_global)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_SET_BLOCKING_IO, globus_bool_t use_blocking_io)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_SET_BLOCKING_IO, globus_bool_t use_blocking_io)
globus_result_t globus_xio_attr_cntl (attr, driver,
    GLOBUS_XIO_TCP_GET_BLOCKING_IO, globus_bool_t *use_blocking_io_out)
globus_result_t globus_xio_handle_cntl (handle, driver,
    GLOBUS_XIO_TCP_GET_BLOCKING_IO, globus_bool_t *use_blocking_io_out)

πŸ’– Detailed Description πŸ’–

Attributes and Cntls.

Tcp driver specific attrs and cntls.

🌈 See also 🌈

  • globus_xio_attr_cntl()
  • globus_xio_handle_cntl()
  • globus_xio_server_cntl()
  • globus_xio_data_descriptor_cntl()

✨ Enumeration Type Documentation ✨

🌈 enum globus_xio_tcp_cmd_t

doxygen varargs filter stuff TCP driver specific cntls πŸ‘‘

bestie this is the big list of every cntl command the TCP driver fw knows about πŸ’–

πŸŽ€ Enumerator πŸŽ€

  • GLOBUS_XIO_TCP_SET_SERVICE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_SERVICE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_PORT β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_PORT β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_BACKLOG β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_BACKLOG β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_LISTEN_RANGE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_LISTEN_RANGE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_HANDLE β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl, globus_xio_server_cntl
  • GLOBUS_XIO_TCP_SET_HANDLE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_INTERFACE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_INTERFACE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_RESTRICT_PORT β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_RESTRICT_PORT β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_REUSEADDR β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_REUSEADDR β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_NO_IPV6 β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_NO_IPV6 β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_CONNECT_RANGE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_GET_CONNECT_RANGE β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_KEEPALIVE β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_GET_KEEPALIVE β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_SET_LINGER β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_GET_LINGER β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_SET_OOBINLINE β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_GET_OOBINLINE β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_SET_SNDBUF β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_GET_SNDBUF β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_SET_RCVBUF β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_GET_RCVBUF β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_SET_NODELAY β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_GET_NODELAY β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_SET_SEND_FLAGS β€” See usage for: globus_xio_data_descriptor_cntl
  • GLOBUS_XIO_TCP_GET_SEND_FLAGS β€” See usage for: globus_xio_data_descriptor_cntl
  • GLOBUS_XIO_TCP_GET_LOCAL_CONTACT β€” See usage for: globus_xio_handle_cntl, globus_xio_server_cntl
  • GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT β€” See usage for: globus_xio_handle_cntl, globus_xio_server_cntl
  • GLOBUS_XIO_TCP_GET_REMOTE_CONTACT β€” See usage for: globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_GET_REMOTE_NUMERIC_CONTACT β€” See usage for: globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_AFFECT_ATTR_DEFAULTS β€” See usage for: globus_xio_attr_cntl
  • GLOBUS_XIO_TCP_SET_BLOCKING_IO β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl
  • GLOBUS_XIO_TCP_GET_BLOCKING_IO β€” See usage for: globus_xio_attr_cntl, globus_xio_handle_cntl

πŸ”₯ Function Documentation πŸ”₯

okay bestie, every single one of these is an overloaded member function β€” the docs say it's "provided for convenience" and it "differs from the above function only in what argument(s) it accepts." So like, same name, different lil argument lineup. classic πŸ’…

πŸ’œ GLOBUS_XIO_TCP_AFFECT_ATTR_DEFAULTS

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_AFFECT_ATTR_DEFAULTS , globus_bool_t affect_global)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Change the default attr values. ✨

Parameters

  • affect_global β€” If GLOBUS_TRUE, any future cntls on this attr will access the global default attr (which all new attrs are initialized from). The default is GLOBUS_FALSE.
⚠️ bestie listen to me on this one: this should only be used at the application level and there should only be one. There is no mutex protecting the global attr. This feature should not be abused. 😭

Some attrs make no sense to change globally, fr fr. Attrs that do include the tcp port range stuff, socket buffer sizes, etc.


πŸ¦‹ GLOBUS_XIO_TCP_GET_BACKLOG

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_BACKLOG , int * listener_backlog_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the listener backlog on an attr.

Parameters

  • listener_backlog_out β€” The backlog will be stored here. πŸ“₯

🌸 GLOBUS_XIO_TCP_GET_BLOCKING_IO

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_BLOCKING_IO , globus_bool_t * use_blocking_io_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the blocking io status in use or in attr.

Parameters

  • use_blocking_io_out β€” The flag will be set here. GLOBUS_TRUE for enabled. πŸ’–

πŸŽ€ GLOBUS_XIO_TCP_GET_CONNECT_RANGE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_CONNECT_RANGE , int * connector_min_port_out, int *
    connector_max_port_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp source port range on an attr.

Parameters

  • connector_min_port_out β€” The lower bound will be stored here.
  • connector_max_port_out β€” The upper bound will be stored here.

πŸ‘‘ GLOBUS_XIO_TCP_GET_HANDLE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_HANDLE , globus_xio_system_socket_t * handle_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp socket handle on an attr, handle, or server. πŸ”₯

Parameters

  • handle_out β€” The tcp socket will be stored here. If none is set, GLOBUS_XIO_TCP_INVALID_HANDLE will be set.

🧚 GLOBUS_XIO_TCP_GET_INTERFACE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_INTERFACE , char ** interface_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the interface on the attr.

Parameters

  • interface_out β€” A pointer to the interface will be stored here. If one is set, NULL will be passed back. Otherwise, the interface will be duplicated with strdup() and the user should call free() on it. 🫢
not me reminding you to free that thing β€” the docs literally say the user should call free() on it, so like, do that πŸ’€

πŸ’… GLOBUS_XIO_TCP_GET_KEEPALIVE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_KEEPALIVE , globus_bool_t * keepalive_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp keepalive flag.

Parameters

  • keepalive_out β€” The tcp keepalive flag will be stored here. πŸ’«

🌈 GLOBUS_XIO_TCP_GET_LINGER

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_LINGER , globus_bool_t * linger_out, int *
    linger_time_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp linger flag and time.

Parameters

  • linger_out β€” The linger flag will be stored here.
  • linger_time_out β€” The linger time will be set here.

⭐ GLOBUS_XIO_TCP_GET_LISTEN_RANGE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_LISTEN_RANGE , int * listener_min_port_out, int *
    listener_max_port_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp port range on an attr.

Parameters

  • listener_min_port_out β€” The lower bound will be stored here.
  • listener_max_port_out β€” The upper bound will be stored here.

πŸ“ GLOBUS_XIO_TCP_GET_NO_IPV6

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_NO_IPV6 , globus_bool_t * no_ipv6_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the no ipv6 flag on an attr.

Parameters

  • no_ipv6_out β€” The no ipv6 flag will be stored here. πŸ™ˆ

🌟 GLOBUS_XIO_TCP_GET_NODELAY

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_NODELAY , globus_bool_t * nodelay_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp nodelay flag.

Parameters

  • nodelay_out β€” The no delay flag will be stored here. ⚑

🎠 GLOBUS_XIO_TCP_GET_OOBINLINE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_OOBINLINE , globus_bool_t * oobinline_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the oobinline flag.

Parameters

  • oobinline_out β€” The oobinline flag will be stored here. πŸ¦‹

πŸ’– GLOBUS_XIO_TCP_GET_PORT

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_PORT , int * listener_port_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp port number to bind to.

Parameters

  • listener_port_out β€” The port will be stored here. πŸ”Œ

🧸 GLOBUS_XIO_TCP_GET_RCVBUF

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_RCVBUF , int * rcvbuf_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp receive buffer size on the attr or handle.

Parameters

  • rcvbuf_out β€” The receive buffer size will be stored here. πŸ“¦

🌷 GLOBUS_XIO_TCP_GET_RESTRICT_PORT

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_RESTRICT_PORT , globus_bool_t * restrict_port_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the restrict port flag.

Parameters

  • restrict_port_out β€” The restrict port flag will be stored here. 🚧

πŸ’Ž GLOBUS_XIO_TCP_GET_REUSEADDR

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_REUSEADDR , globus_bool_t * resuseaddr_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the reuseaddr flag on an attr.

Parameters

  • resuseaddr_out β€” The reuseaddr flag will be stored here. ♻️
yes bestie the parameter is spelled resuseaddr_out in the original and we are NOT touching it β€” character for character, no cap πŸ’…

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_GET_SERVICE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_SERVICE , char ** service_name_out)

okay so this is an overloaded member function, provided for convenience, bestie πŸ’… it differs from the above function only in what argument(s) it accepts. Basically: get the tcp service name to bind to. slay.

Parameters

  • service_name_out β€” A pointer to the service name will be stored here. If none is set, NULL will be passed back. Otherwise, the name will be duplicated with strdup() and the user should call free() on it. yes you have to free it yourself, that's not me being dramatic, that's the deal 🫢

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_GET_SNDBUF

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_GET_SNDBUF , int * sndbuf_out)

Again, an overloaded member function, provided for convenience β€” it differs from the above function only in what argument(s) it accepts. Get the tcp send buffer size on the attr or handle. either one, she's flexible like that ✨

Parameters

  • sndbuf_out β€” The send buffer size will be stored here.

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_BACKLOG

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_BACKLOG , int listener_backlog)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Set the listener backlog on a server. πŸ‘‘

Used only on attrs for globus_xio_server_create(). The default backlog is -1 (system maximum).

Parameters

  • listener_backlog β€” This indicates the maximum length of the system's queue of pending connections. Any connection attempts when the queue is full will fail. If backlog is equal to -1, then the system-specific maximum queue length will be used.

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_BLOCKING_IO

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_BLOCKING_IO , globus_bool_t use_blocking_io)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Enable true blocking io when making globus_xio_read/write() calls.

⚠️ Note: use with caution. you can deadlock an entire app with this. not me exaggerating β€” that is a direct quote of the energy, fr fr. πŸ’€

Parameters

  • use_blocking_io β€” If GLOBUS_TRUE, true blocking io will be enabled. GLOBUS_FALSE will disable it (default);

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_CONNECT_RANGE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_CONNECT_RANGE , int connector_min_port, int
    connector_max_port)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Set the tcp port range to confine the server to.

Used only on attrs for globus_xio_register_open(). It overrides the range set in the GLOBUS_TCP_SOURCE_RANGE env variable. If 'restrict port' is true, the connecting socket's local port will be constrained to the range specified. the range is doing the most, honestly πŸ’…

Parameters

  • connector_min_port β€” The lower bound on the listener port. (default 0 -- no bound)
  • connector_max_port β€” The upper bound on the listener port. (default 0 -- no bound)

See also

  • GLOBUS_XIO_TCP_SET_RESTRICT_PORT

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_HANDLE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_HANDLE , globus_xio_system_socket_t handle)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Set the tcp socket to use for a handle or server. πŸ¦‹

Used only on attrs for globus_xio_server_create() or globus_xio_register_open().

Parameters

  • handle β€” Use this handle (fd or SOCKET) for the listener or connection. Note: close() will not be called on this handle. so like, that's your problem to manage, bestie 🫢

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_INTERFACE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_INTERFACE , const char * interface)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Set the interface to bind a listener or connection to. ✨

Used only on attrs for globus_xio_server_create() or globus_xio_register_open.

Parameters

  • interface β€” The interface to use. Can be a hostname or numeric IP

string opt: iface=string


✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_KEEPALIVE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_KEEPALIVE , globus_bool_t keepalive)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Enable tcp keepalive. πŸ’–

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to determine whether or not to periodically send "keepalive" messages on a connected socket handle. This may enable earlier detection of broken connections. lowkey a vibe check for your socket πŸ”₯

Parameters

  • keepalive β€” GLOBUS_TRUE to enable, GLOBUS_FALSE to disable (default)

string opt: keepalive=bool


✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_LINGER

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_LINGER , globus_bool_t linger, int linger_time)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Set tcp linger. πŸ’…

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to determine what to do when data is in the socket's buffer when the socket is closed. If linger is set to true, then the close operation will block until the socket buffers are empty, or the linger_time has expired. If this is enabled, any data remaining after the linger time has expired, will be discarded. If this is disabled, close finishes immediately, but the OS will still attempt to transmit the remaining data. so she either waits patiently or leaves instantly, no in between 🌸

Parameters

  • linger β€” GLOBUS_TRUE to enable, GLOBUS_FALSE to disable (default)
  • linger_time β€” The time (in seconds) to block at close time if linger is true and data is queued in the socket buffer.

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_LISTEN_RANGE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_LISTEN_RANGE , int listener_min_port, int
    listener_max_port)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Set the tcp port range to confine the server to.

Used only on attrs for globus_xio_server_create() where no specific service or port has been set. It overrides the range set in the GLOBUS_TCP_PORT_RANGE env variable. If 'restrict port' is true, the server's listening port will be constrained to the range specified.

Parameters

  • listener_min_port β€” The lower bound on the listener port. (default 0 -- no bound)
  • listener_max_port β€” The upper bound on the listener port. (default 0 -- no bound)

See also

  • GLOBUS_XIO_TCP_SET_RESTRICT_PORT

string opt: listen_range=int,int


✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_NO_IPV6

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_NO_IPV6 , globus_bool_t no_ipv6)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Restrict to IPV4 only. πŸŽ€

Used only on attrs for globus_xio_server_create() or globus_xio_register_open(). Disallow IPV6 sockets from being used (default is to use either ipv4 or ipv6).

Parameters

  • no_ipv6 β€” GLOBUS_TRUE to disallow ipv6, GLOBUS_FALSE to allow (default)

string opt: noipv6=bool


✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_NODELAY

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_NODELAY , globus_bool_t nodelay)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Disable Nagle's algorithm. πŸ”₯

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to determine whether or not to disable Nagle's algorithm. If set to GLOBUS_TRUE, the socket will send packets as soon as possible with no unnecessary delays introduced. no waiting around, main character energy only πŸ‘‘

Parameters

  • nodelay β€” GLOBUS_TRUE to disable nagle, GLOBUS_FALSE to enable (default)

string opt: nodelay=bool


✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_OOBINLINE

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_OOBINLINE , globus_bool_t oobinline)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Receive out of band data (tcp urgent data) in normal stream. πŸ™ˆ

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to choose whether out-of-band data is received in the normal data queue. (Currently, there is no other way to receive OOB data) β€” so like, this is the only door, bestie πŸšͺ

Parameters

  • oobinline β€” GLOBUS_TRUE to enable, GLOBUS_FALSE to disable (default)

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_PORT

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_PORT , int listener_port)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Set the tcp port number to bind to. πŸ’œ

Used only on attrs for globus_xio_server_create(). The default port number is 0 (system assigned).

Parameters

  • listener_port β€” The port number to use when setting up the listener. If the service name is also set, this will only be used if that can't be resolved. service name gets first dibs, port is the backup dancer πŸ’…

string opt: port=int


✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_RCVBUF

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_RCVBUF , int rcvbuf)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Set the tcp socket receive buffer size. ✨

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to set the size of the receive buffer used on the socket. The receive buffer size is often used by the operating system to choose the appropriate TCP window size. the OS is watching and taking notes πŸ“

Parameters

  • rcvbuf β€” The receive buffer size in bytes. (default is system specific)

string opt: rcvbuf=formatted int


✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_RESTRICT_PORT

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_RESTRICT_PORT , globus_bool_t restrict_port)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Enable or disable the listener or connector range constraints. 🌈

Used only on attrs for globus_xio_server_create() or globus_xio_register_open(). This enables or ignores the port range found in the attr or in then env. By default, those ranges are enabled. (yes it says "then env" β€” I'm not fixing her typo, I'm just reporting it 🫢)

Parameters

  • restrict_port β€” GLOBUS_TRUE to enable (default), GLOBUS_FALSE to disable.

See also

  • GLOBUS_XIO_TCP_SET_LISTEN_RANGE
  • GLOBUS_XIO_TCP_SET_CONNECT_RANGE

✨ globus_xio_attr_cntl β€” GLOBUS_XIO_TCP_SET_REUSEADDR

globus_result_t globus_xio_attr_cntl (attr , driver ,
    GLOBUS_XIO_TCP_SET_REUSEADDR , globus_bool_t resuseaddr)

Overloaded member function, provided for convenience, differs from the above function only in what argument(s) it accepts. Reuse addr when binding. ♻️

Used only on attrs for globus_xio_server_create() or globus_xio_register_open() to determine whether or not to allow reuse of addresses when binding a socket to a port number. and yes the parameter is literally spelled resuseaddr in the source β€” we don't gatekeep, we report faithfully πŸ’–

  • resuseaddr β€” GLOBUS_TRUE to allow it, GLOBUS_FALSE to not allow it. (default)

string opt: reuse=bool


🌸 globus_result_t globus_xio_attr_cntl (attr , driver , GLOBUS_XIO_TCP_SET_SERVICE , const char * service_name)

okay bestie this one is an overloaded member function β€” it's literally the same as the one above, the only thing different is what args it takes. no cap. πŸ’…

It sets the tcp service name to bind to.

Used only on attrs for globus_xio_server_create().

Parameters

  • service_name β€” the service name to use when you're setting up the listener. And here's the tea πŸ«–: if that service name can't be resolved, the port (if one is set) gets used instead.

string opt: port=string


🌈 globus_result_t globus_xio_attr_cntl (attr , driver , GLOBUS_XIO_TCP_SET_SNDBUF , int sndbuf)

another overloaded member function, provided for convenience, differing from the above function only in what argument(s) it accepts. ✨ Sets the tcp socket send buffer size.

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to set the size of the send buffer used on the socket.

Parameters

  • sndbuf β€” the send buffer size in bytes to use. (default is system specific)

string opt: sndbuf=formatted int


πŸ¦‹ globus_result_t globus_xio_data_descriptor_cntl (dd , driver , GLOBUS_XIO_TCP_GET_SEND_FLAGS , int * send_flags_out)

yep, overloaded member function, convenience, differs only in args, you know the drill. πŸ’– Gets the tcp send flags.

Parameters

  • send_flags_out β€” the flags to use get stored right here.

πŸŽ€ globus_result_t globus_xio_data_descriptor_cntl (dd , driver , GLOBUS_XIO_TCP_SET_SEND_FLAGS , int send_flags)

same overloaded member function situation, only the args differ. Sets the tcp send flags.

Used only for data descriptors to write calls.

Parameters

  • send_flags β€” the flags to use when sending data.

See also

  • globus_xio_tcp_send_flags_t

⭐ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_BLOCKING_IO , globus_bool_t * use_blocking_io_out)

<彩虹>overloaded member function moment, differs only in args, etc etc πŸ’…. Gets the blocking io status that's in use, or the one sitting in the attr.

Parameters

  • use_blocking_io_out β€” the flag gets set here. GLOBUS_TRUE means enabled.

🧚 globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_HANDLE , globus_xio_system_socket_t * handle_out)

overloaded member function, provided for convenience, differing from the above only in args ✨. Gets the tcp socket handle on an attr, handle, or server.

Parameters

  • handle_out β€” the tcp socket gets stored here. And if none is set, GLOBUS_XIO_TCP_INVALID_HANDLE gets set instead.

πŸ’œ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_KEEPALIVE , globus_bool_t * keepalive_out)

overloaded member function, convenience, args differ, love that for us. Gets the tcp keepalive flag.

Parameters

  • keepalive_out β€” the tcp keepalive flag gets stored here.

πŸ“ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_LINGER , globus_bool_t * linger_out, int * linger_time_out)

overloaded member function, convenience, differs only in args, iconic. Gets the tcp linger flag and time.

Parameters

  • linger_out β€” the linger flag gets stored here.
  • linger_time_out β€” the linger time gets set here.

🌟 globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_LOCAL_CONTACT , char ** contact_string_out)

overloaded member function, convenience, differs only in args πŸ’«. Gets local socket info.

Parameters

  • contact_string_out β€” a pointer to a contact string for the local end of a connected socket or listener gets stored here. The user should free() it when done with it. It'll be in this format: <hostname>:<port>

See also

  • globus_xio_server_get_contact_string()
  • GLOBUS_XIO_GET_LOCAL_CONTACT

🫢 globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT , char ** contact_string_out)

overloaded member function, convenience, differs only in args. Gets local socket info.

Parameters

  • contact_string_out β€” a pointer to a contact string for the local end of a connected socket or listener gets stored here. The user should free() it when done with it. Format: <ip>:<port>

See also

  • GLOBUS_XIO_GET_LOCAL_NUMERIC_CONTACT

πŸ”₯ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_NODELAY , globus_bool_t * nodelay_out)

overloaded member function, convenience, differs only in args, periodt. Gets the tcp nodelay flag.

Parameters

  • nodelay_out β€” the no delay flag gets stored here.

🌈 globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_OOBINLINE , globus_bool_t * oobinline_out)

overloaded member function, convenience, differs only in args πŸ’–. Gets the oobinline flag.

Parameters

  • oobinline_out β€” the oobinline flag gets stored here.

πŸ’… globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_RCVBUF , int * rcvbuf_out)

overloaded member function, convenience, differs only in args. Gets the tcp receive buffer size on the attr or handle.

Parameters

  • rcvbuf_out β€” the receive buffer size gets stored here.

πŸ¦‹ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_REMOTE_CONTACT , char ** contact_string_out)

overloaded member function, convenience, differs only in args ✨. Gets remote socket info.

Parameters

  • contact_string_out β€” a pointer to a contact string for the remote end of a connected socket gets stored here. The user should free() it when done with it. Format: <hostname>:<port>

See also

  • GLOBUS_XIO_GET_REMOTE_CONTACT

πŸŽ€ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_REMOTE_NUMERIC_CONTACT , char ** contact_string_out)

overloaded member function, convenience, differs only in args 🌸. Gets remote socket info.

Parameters

  • contact_string_out β€” a pointer to a contact string for the remote end of a connected socket gets stored here. The user should free() it when done with it. Format: <ip>:<port>

See also

  • GLOBUS_XIO_GET_REMOTE_NUMERIC_CONTACT

⭐ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_GET_SNDBUF , int * sndbuf_out)

overloaded member function, convenience, differs only in args πŸ’œ. Gets the tcp send buffer size on the attr or handle.

Parameters

  • sndbuf_out β€” the send buffer size gets stored here.

🚨 globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_SET_BLOCKING_IO , globus_bool_t use_blocking_io)

overloaded member function, convenience, differs only in args. Enables true blocking io when you're making globus_xio_read/write() calls.

⚠️ Note: use with caution. you can deadlock an entire app with this. πŸ’€ like genuinely, be careful bestie.

Parameters

  • use_blocking_io β€” if GLOBUS_TRUE, true blocking io gets enabled. GLOBUS_FALSE disables it (default);

πŸ’– globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_SET_KEEPALIVE , globus_bool_t keepalive)

overloaded member function, convenience, differs only in args. Enables tcp keepalive.

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to decide whether or not to periodically send "keepalive" messages on a connected socket handle. This may enable earlier detection of broken connections. πŸ‘€

Parameters

  • keepalive β€” GLOBUS_TRUE to enable, GLOBUS_FALSE to disable (default)

string opt: keepalive=bool


πŸŽ€ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_SET_LINGER , globus_bool_t linger, int linger_time)

overloaded member function, convenience, differs only in args. Sets tcp linger.

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to decide what happens when data is still sitting in the socket's buffer and the socket gets closed. πŸ«–

So here's the breakdown, bestie: if linger is set to true, then the close operation will block until the socket buffers are empty, or until linger_time has expired. If it's enabled, any data still remaining after the linger time has expired gets discarded. If it's disabled, close finishes immediately, but the OS will still attempt to transmit the remaining data.

Parameters

  • linger β€” GLOBUS_TRUE to enable, GLOBUS_FALSE to disable (default)
  • linger_time β€” the time (in seconds) to block at close time if linger is true and data is queued in the socket buffer.

πŸ”₯ globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_SET_NODELAY , globus_bool_t nodelay)

overloaded member function, convenience, differs only in args. Disables Nagle's algorithm. ✨

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to decide whether or not to disable Nagle's algorithm. If it's set to GLOBUS_TRUE, the socket will send packets as soon as possible with no unnecessary delays introduced. no waiting around, main character energy πŸ’…

Parameters

  • nodelay β€” GLOBUS_TRUE to disable nagle, GLOBUS_FALSE to enable (default)

string opt: nodelay=bool


🌸 globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_SET_OOBINLINE , globus_bool_t oobinline)

overloaded member function, convenience, differs only in args. Receives out of band data (tcp urgent data) in normal stream.

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to choose whether out-of-band data is received in the normal data queue. (Currently, there is no other way to receive OOB data πŸ‘€ like, that's the only route, bestie)

Parameters:

  • oobinline β€” GLOBUS_TRUE to enable, GLOBUS_FALSE to disable (default)

globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_SET_RCVBUF , int rcvbuf)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the tcp socket receive buffer size. πŸ’–

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to set the size of the receive buffer used on the socket. The receive buffer size is often used by the operating system to choose the appropriate TCP window size. (the OS is literally picking your window size based on this, no cap πŸͺŸ)

Parameters:

  • rcvbuf β€” The receive buffer size in bytes. (default is system specific)
string opt: rcvbuf=formatted int

globus_result_t globus_xio_handle_cntl (handle , driver , GLOBUS_XIO_TCP_SET_SNDBUF , int sndbuf)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Set the tcp socket send buffer size. ✨

Used on attrs for globus_xio_server_create(), globus_xio_register_open() and with globus_xio_handle_cntl() to set the size of the send buffer used on the socket.

Parameters:

  • sndbuf β€” The send buffer size in bytes to use. (default is system specific)
string opt: sndbuf=formatted int

globus_result_t globus_xio_server_cntl (server , driver , GLOBUS_XIO_TCP_GET_HANDLE , globus_xio_system_socket_t * handle_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get the tcp socket handle on an attr, handle, or server. 🫢

Parameters:

  • handle_out β€” The tcp socket will be stored here. If none is set, GLOBUS_XIO_TCP_INVALID_HANDLE will be set. (so like, check for that πŸ’€)

globus_result_t globus_xio_server_cntl (server , driver , GLOBUS_XIO_TCP_GET_LOCAL_CONTACT , char ** contact_string_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get local socket info. 🌸

Parameters:

  • contact_string_out β€” A pointer to a contact string for the local end of a connected socket or listener will be stored here. The user should free() it when done with it. It will be in the format: <hostname>:<port> (yes bestie, you own that memory, pls free it 😭)

See also:

  • globus_xio_server_get_contact_string()
  • GLOBUS_XIO_GET_LOCAL_CONTACT

globus_result_t globus_xio_server_cntl (server , driver , GLOBUS_XIO_TCP_GET_LOCAL_NUMERIC_CONTACT , char ** contact_string_out)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Get local socket info. πŸ¦‹

Parameters:

  • contact_string_out β€” A pointer to a contact string for the local end of a connected socket or listener will be stored here. The user should free() it when done with it. It will be in the format: <ip>:<port> (numeric this time, no hostname drama πŸ’…)

See also:

  • GLOBUS_XIO_GET_LOCAL_NUMERIC_CONTACT

Author ✨

Generated automatically by Doxygen for globus_xio from the source code. πŸ€– (not me writing this by hand, the robot did it, and honestly? slay)


And that's the whole page, bestie β€” you ate it. πŸ’– This lil gem came from the globus_xio source code, it's Version 6.6 energy all the way, and it's the globus_xio...river_cntls(3) page you've been vibing with this whole time. Go forth and control those TCP drivers, main character. πŸ‘‘

πŸ“¦ where this page comes from