GLOBUS_NET_MANAGER_PRE_ACCEPT(3)

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

globus_net_manager_signatures β€” Function Signatures πŸ’…

okay bestie, this page lives in the Library Functions Manual and its official home is globus_net..._signatures(3). yes the name got the ✨abbreviated✨ treatment up top, but we know her full name. it's the Net Manager function-signature page and we're gonna get through it together, no skips, no cap. 🫢


🌸 NAME 🌸

globus_net_manager_signatures β€” Function Signatures

Net Manager Function Signatures. (that's the whole vibe, bestie, we're here for the signatures πŸ’–)


✨ SYNOPSIS ✨

Typedefs

here's the roster, all nine of them, and the way that each one is literally a callback shape you can drop into a network manager implementation. slay. πŸ”₯

  • globus_net_manager_pre_listen β€” Net Manager Pre-Listen Function Signature.
typedef globus_result_t(* globus_net_manager_pre_listen) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const globus_net_manager_attr_t *attr_array,
    globus_net_manager_attr_t **attr_array_out)
  • globus_net_manager_post_listen β€” Net Manager Post-Listen Function Signature.
typedef globus_result_t(* globus_net_manager_post_listen) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const globus_net_manager_attr_t
    *attr_array, char **local_contact_out, globus_net_manager_attr_t
    **attr_array_out)
  • globus_net_manager_end_listen β€” Net Manager End-Listen Function Signature.
typedef globus_result_t(* globus_net_manager_end_listen) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const globus_net_manager_attr_t
    *attr_array)
  • globus_net_manager_pre_accept β€” Net Manager Pre-Accept Function Signature.
typedef globus_result_t(* globus_net_manager_pre_accept) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const globus_net_manager_attr_t
    *attr_array, globus_net_manager_attr_t **attr_array_out)
  • globus_net_manager_post_accept β€” Net Manager Post-Accept Function Signature.
typedef globus_result_t(* globus_net_manager_post_accept) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const char *remote_contact, const
    globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t
    **attr_array_out)
  • globus_net_manager_pre_connect β€” Net Manager Pre-Connect Function Signature.
typedef globus_result_t(* globus_net_manager_pre_connect) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *remote_contact, const globus_net_manager_attr_t
    *attr_array, char **remote_contact_out, globus_net_manager_attr_t
    **attr_array_out)
  • globus_net_manager_post_connect β€” Net Manager Post-Connect Function Signature.
typedef globus_result_t(* globus_net_manager_post_connect) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const char *remote_contact, const
    globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t
    **attr_array_out)
  • globus_net_manager_pre_close β€” Net Manager Pre-Close Function Signature.
typedef globus_result_t(* globus_net_manager_pre_close) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const char *remote_contact, const
    globus_net_manager_attr_t *attr_array)
  • globus_net_manager_post_close β€” Net Manager Post-Close Function Signature.
typedef globus_result_t(* globus_net_manager_post_close) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const char *remote_contact, const
    globus_net_manager_attr_t *attr_array)

πŸ¦‹ Detailed Description πŸ¦‹

Net Manager Function Signatures.

Function signatures for the Net Manager interface.

ooh and there's a whole globus_net_manager_tutorial too, if you wanna go deeper, bestie. πŸ“š


πŸ‘‘ Typedef Documentation πŸ‘‘

typedef globus_net_manager_end_listen

typedef globus_result_t(* globus_net_manager_end_listen) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const globus_net_manager_attr_t
    *attr_array)

Net Manager End-Listen Function Signature. so like, if a network manager implementation includes a function with this signature, it gets called when the transport-specific listening port is about to be closed. πŸšͺ

the network manager gets handed the network transport-specific options and the contact string for the listener.

⚠️ important bestie: the globus_net_manager library aborts the closing of the listening port if this function returns a value other than GLOBUS_SUCCESS. and in that case, globus_net_manager will not call any other globus_net_manager_end_listen functions configured for this listener. periodt. πŸ’€

Parameters

  • manager β€” Pointer to the network manager struct that is being invoked.
  • manager_attr_array β€” An array of attributes associated with the manager. The end of the array is indicated by an attribute containing a NULL scope.
  • task_id β€” An application-specific task ID associated with this network operation.
  • transport β€” The name of the transport associated with this listener.
  • local_contact β€” The transport-specific contact string for the listener [in].
  • attr_array β€” An array of transport attributes associated with the listener. The end of the array is indicated by an attribute containing a NULL scope.

typedef globus_net_manager_post_accept

typedef globus_result_t(* globus_net_manager_post_accept) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const char *remote_contact, const
    globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t
    **attr_array_out)

Net Manager Post-Accept Function Signature. if a network manager implementation includes a function with this signature, it gets called after accepting a connection on a transport-specific listening port. 🀝

the network manager gets handed the network transport-specific options and contact string for both ends of the connection. and it may modify the attributes of the local side of the connection. πŸ‘€

⚠️ bestie listen: the globus_net_manager library aborts the accept operation if this function returns a value other than GLOBUS_SUCCESS. and then globus_net_manager will not call any other globus_net_manager_post_accept functions configured for this connection. no take-backs. πŸ’…

Parameters

  • manager β€” Pointer to the network manager struct that is being invoked.
  • manager_attr_array β€” An array of attributes associated with the manager. The end of the array is indicated by an attribute containing a NULL scope.
  • task_id β€” An application-specific task ID associated with this network operation.
  • transport β€” The name of the transport associated with this listener.
  • local_contact β€” The transport-specific contact string for the local side of the connection.
  • remote_contact β€” The transport-specific contact string for the remote side of the connection.
  • attr_array β€” An array of transport attributes associated with the listener. The end of the array is indicated by an attribute containing a NULL scope.
  • attr_array_out β€” A pointer to an array of transport options to apply to the listener prior to returning it to the service. This may be NULL to indicate no change in the options. If non-NULL, this array must be terminated with an attribute having a NULL scope. The array and the members of the globus_net_manager_attr_t struct will be freed by the globus_net_manager library by calling free().

typedef globus_net_manager_post_close

typedef globus_result_t(* globus_net_manager_post_close) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const char *remote_contact, const
    globus_net_manager_attr_t *attr_array)

Net Manager Post-Close Function Signature. if a network manager implementation includes a function with this signature, it gets called after closing a connection. bye bye connection 🫢

the network manager gets handed the network transport-specific options and contact string for both ends of the connection.

⚠️ heads up: the globus_net_manager library aborts the close operation if this function returns a value other than GLOBUS_SUCCESS. and in that case, globus_net_manager will not call any other globus_net_manager_pre_close functions configured for this connection. (yes, pre_close β€” that's literally what the page says, not a typo on my end 😭)

Parameters

  • manager β€” Pointer to the network manager struct that is being invoked.
  • manager_attr_array β€” An array of attributes associated with the manager. The end of the array is indicated by an attribute containing a NULL scope.
  • task_id β€” An application-specific task ID associated with this network operation.
  • transport β€” The name of the transport associated with this listener.
  • local_contact β€” The transport-specific contact string for the local side of the connection.
  • remote_contact β€” The transport-specific contact string for the remote side of the connection.
  • attr_array β€” An array of transport attributes associated with the listener. The end of the array is indicated by an attribute containing a NULL scope.

typedef globus_net_manager_post_connect

typedef globus_result_t(* globus_net_manager_post_connect) (struct
    globus_net_manager_s *manager, const globus_net_manager_attr_t
    *manager_attr_array, const char *task_id, const char *transport,
    const char *local_contact, const char *remote_contact, const
    globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t
    **attr_array_out)

Net Manager Post-Connect Function Signature. if a network manager implementation includes a function with this signature, it gets called after establishing a connection to a transport-specific listener. πŸ”Œ

the network manager gets handed the network transport-specific options and contact string for both ends of the connection. and it may modify the attributes of the local side of the connection. main character behavior honestly. πŸ‘‘

⚠️ bestie, don't skip this: the globus_net_manager library aborts the connect operation if this function returns a value other than GLOBUS_SUCCESS. and in that case, globus_net_manager will not call any other globus_net_manager_post_connect functions configured for this connection. πŸ’€

Parameters

  • manager β€” Pointer to the network manager struct that is being invoked.
  • manager_attr_array β€” An array of attributes associated with the manager. The end of the array is indicated by an attribute containing a NULL scope.
  • task_id β€” An application-specific task ID associated with this network operation.
  • transport β€” The name of the transport associated with this listener.
  • local_contact β€” The transport-specific contact string for the local side of the connection.
  • remote_contact β€” The transport-specific contact string for the remote side of the connection.
  • attr_array β€” An array of transport attributes associated with the listener. The end of the array is indicated by an attribute containing a NULL scope.
  • attr_array_out β€” A pointer to an array of transport options to apply to the listener prior to returning it to the service. This may be NULL to indicate no change in the options. If non-NULL, this array must be terminated with an attribute having a NULL scope. The array and the members of the globus_net_manager_attr_t struct will be freed by the globus_net_manager library by calling free().

okay bestie we're not done yet β€” there's more of this page coming, so don't wander off. part 2 is literally right there and we're gonna finish the whole signature set together. 🌈✨

okay bestie, before we get to the next signature, here's the param rundown for the one we were just vibing with πŸ’…

  • manager β€” pointer to the network manager struct that is being invoked, aka the main character of this whole operation.
  • manager_attr_array β€” an array of attributes associated with the manager. the end of the array is flagged by an attribute containing a NULL scope, so watch for that little terminator πŸŽ€
  • task_id β€” an application-specific task ID associated with this network operation.
  • transport β€” the name of the transport associated with this listener.
  • remote_contact β€” the transport-specific contact string for the remote side of the connection.
  • attr_array β€” an array of transport attributes associated with the listener. again, the end of the array is indicated by an attribute containing a NULL scope.
  • attr_array_out β€” a pointer to an array of transport options to apply to the listener prior to returning it to the service. this may be NULL to indicate no change in the options. if it is non-NULL, this array must be terminated with an attribute having a NULL scope. the array and the members of the globus_net_manager_attr_t struct will be freed by the globus_net_manager library by calling free().

🌸 globus_net_manager_post_listen 🌸

typedef globus_result_t(* globus_net_manager_post_listen) (struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const globus_net_manager_attr_t *attr_array, char **local_contact_out, globus_net_manager_attr_t **attr_array_out)

Net Manager Post-Listen Function Signature. a function of this signature, if it's included in a network manager implementation, gets called after the transport-specific listening port has been created. ✨

the network manager is passed the network transport-specific options and contact string for the listener. it may modify either of these before the transport listener is made available to the service which requested the listening port. πŸ‘‘

πŸ›‘ heads up: the globus_net_manager library aborts the listen operation if this function returns a value other than GLOBUS_SUCCESS. in that case, the globus_net_manager will not call any other globus_net_manager_post_listen functions configured for this listener. no second chances, periodt.

Parameters

  • manager β€” pointer to the network manager struct that is being invoked.
  • manager_attr_array β€” an array of attributes associated with the manager. the end of the array is indicated by an attribute containing a NULL scope.
  • task_id β€” an application-specific task ID associated with this network operation.
  • transport β€” the name of the transport associated with this listener.
  • local_contact β€” the transport-specific contact string for the listener [in].
  • attr_array β€” an array of transport attributes associated with the listener. the end of the array is indicated by an attribute containing a NULL scope.
  • local_contact_out β€” a pointer to the local contact which the network manager wants to return to the service. this may be NULL to indicate no change in the contact. this value will be freed() by the globus_net_manager library.
  • attr_array_out β€” a pointer to an array of transport options to apply to the listener prior to returning it to the service. this may be NULL to indicate no change in the options. if non-NULL, this array must be terminated with an attribute having a NULL scope. the array and the members of the globus_net_manager_attr_t struct will be freed by the globus_net_manager library by calling free().

πŸ¦‹ globus_net_manager_pre_accept πŸ¦‹

typedef globus_result_t(* globus_net_manager_pre_accept) (struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t **attr_array_out)

Net Manager Pre-Accept Function Signature. a function of this signature, if it's included in a network manager implementation, gets called before accepting a connection on a transport-specific listening port. πŸ‘€

the network manager is passed the network transport-specific options and contact string for the listener. it may modify the options before the accept operation is complete. slay.

πŸ›‘ the globus_net_manager library aborts the accept operation if this function returns a value other than GLOBUS_SUCCESS. in this case, the globus_net_manager will not call any other globus_net_manager_pre_accept functions configured for this listener.

Parameters

  • manager β€” pointer to the network manager struct that is being invoked.
  • manager_attr_array β€” an array of attributes associated with the manager. the end of the array is indicated by an attribute containing a NULL scope.
  • task_id β€” an application-specific task ID associated with this network operation.
  • transport β€” the name of the transport associated with this listener.
  • local_contact β€” the transport-specific contact string for the listener.
  • attr_array β€” a NULL-terminated array of transport attributes associated with the listener. (yes, different wording from the others, we don't make the rules 🫠)
  • attr_array_out β€” a pointer to an array of transport options to apply to the listener prior to returning it to the service. this may be NULL to indicate no change in the options. if non-NULL, this array must be terminated with an attribute having a NULL scope. the array and the members of the globus_net_manager_attr_t struct will be freed by the globus_net_manager library by calling free().

πŸŽ€ globus_net_manager_pre_close πŸŽ€

typedef globus_result_t(* globus_net_manager_pre_close) (struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *local_contact, const char *remote_contact, const globus_net_manager_attr_t *attr_array)

Net Manager Pre-Close Function Signature. a function of this signature, if it's included in a network manager implementation, gets called prior to closing a connection. bye bye bestie πŸ‘‹

the network manager is passed the network transport-specific options and contact string for both ends of the connection. πŸ’«

πŸ›‘ the globus_net_manager library aborts the close operation if this function returns a value other than GLOBUS_SUCCESS. in this case, the globus_net_manager will not call any other globus_net_manager_pre_close functions configured for this connection.

Parameters

  • manager β€” pointer to the network manager struct that is being invoked.
  • manager_attr_array β€” an array of attributes associated with the manager. the end of the array is indicated by an attribute containing a NULL scope.
  • task_id β€” an application-specific task ID associated with this network operation.
  • transport β€” the name of the transport associated with this listener.
  • local_contact β€” the transport-specific contact string for the local side of the connection.
  • remote_contact β€” the transport-specific contact string for the remote side of the connection.
  • attr_array β€” an array of transport attributes associated with the listener. the end of the array is indicated by an attribute containing a NULL scope.

🌈 globus_net_manager_pre_connect 🌈

typedef globus_result_t(* globus_net_manager_pre_connect) (struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const char *remote_contact, const globus_net_manager_attr_t *attr_array, char **remote_contact_out, globus_net_manager_attr_t **attr_array_out)

Net Manager Pre-Connect Function Signature. a function of this signature, if it's included in a network manager implementation, gets called after initiating a connection to a transport-specific listener. πŸš€

the network manager is passed the network transport-specific options and contact string for both ends of the connection. it may modify the attributes of the local side of the connection. iykyk.

πŸ›‘ the globus_net_manager library aborts the connect operation if this function returns a value other than GLOBUS_SUCCESS. in this case, the globus_net_manager will not call any other globus_net_manager_pre_connect functions configured for this connection.

Parameters

  • manager β€” pointer to the network manager struct that is being invoked.
  • manager_attr_array β€” an array of attributes associated with the manager. the end of the array is indicated by an attribute containing a NULL scope.
  • task_id β€” an application-specific task ID associated with this network operation.
  • transport β€” the name of the transport associated with this listener.
  • remote_contact β€” the transport-specific contact string for the remote side of the connection.
  • attr_array β€” an array of transport attributes associated with the listener. the end of the array is indicated by an attribute containing a NULL scope.
  • remote_contact_out β€” a pointer to the remote contact which the network manager wants to connect to. this may be NULL to indicate no change in the contact. this value will be freed() by the globus_net_manager library.
  • attr_array_out β€” a pointer to an array of transport options to apply to the listener prior to returning it to the service. this may be NULL to indicate no change in the options. if non-NULL, this array must be terminated with an attribute having a NULL scope. the array and the members of the globus_net_manager_attr_t struct will be freed by the globus_net_manager library by calling free().

πŸ‘‘ globus_net_manager_pre_listen πŸ‘‘

typedef globus_result_t(* globus_net_manager_pre_listen) (struct globus_net_manager_s *manager, const globus_net_manager_attr_t *manager_attr_array, const char *task_id, const char *transport, const globus_net_manager_attr_t *attr_array, globus_net_manager_attr_t **attr_array_out)

Net Manager Pre-Listen Function Signature. a function of this signature, if it's included in a network manager implementation, gets called before the transport-specific listening port has been created. getting in early, love that for us. ✨

the network manager is passed the network transport-specific options for the listener. it may modify these before the listener is created by the transport. πŸ’œ

πŸ›‘ the globus_net_manager library aborts the listen operation if this function returns a value other than GLOBUS_SUCCESS. in this case, the globus_net_manager will not call any other globus_net_manager_pre_listen functions configured for this listener.

Parameters πŸ’…

okay bestie, here's the whole cast of characters this function gets handed. memorize them, they're the vibe:

  • manager β€” a pointer to the network manager struct that's being invoked. like, the manager in question. this one. right here. πŸ‘‘
  • manager_attr_array β€” an array of attributes that come attached to the manager. and listen, the way you know you've hit the end of this array? there's an attribute chillin' at the end with a NULL scope. that's your lil "we're done here" signal. no cap. πŸŽ€
  • task_id β€” an application-specific task ID tied to this whole network operation. your app's own lil name tag for the job. 🏷️
  • transport β€” the name of the transport associated with this listener. just the name, bestie, as a string. πŸ¦‹
  • attr_array β€” an array of transport attributes hanging out with the listener. same deal as before: the array ends when you hit an attribute with a NULL scope. iconic little sentinel behavior, we love consistency. ✨
  • attr_array_out β€” a pointer to an array of transport options that get applied to the listener before it's handed back to the service. and now the important bits, so pay attention:
    • it may be NULL β€” and that means "no change in the options," periodt.
    • if it's non-NULL, that array must be terminated with an attribute having a NULL scope. non-negotiable. πŸ™ˆ
    • the array itself and the members of the globus_net_manager_attr_t struct are going to be freed by the globus_net_manager library, and it does that by calling free(). so like... don't you dare free them yourself, that's the library's moment. πŸ’€

Author 🫢

Generated automatically by Doxygen for globus_net_manager from the source code. so technically the author is a robot, and honestly? it ate. πŸ€–βœ¨


and that's the whole page, bestie!! this gorgeous thing ships as part of globus_net_manager, Version 1.7, and it's Doxygen's own little auto-generated baby straight from the source code, stamped with the date up top in the page footer. mwah. πŸ’– πŸŽ€ πŸ¦‹ 🌸 πŸ’…

πŸ“¦ where this page comes from