<commit_before>#ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
/**
 * @file globus_xio_gsi.h
 * @author <NAME>
 * 
 * $RCSfile$
 * $Revision$
 * $Date$
 */
#endif

#ifndef GLOBUS_XIO_GSI_DRIVER_INCLUDE
#define GLOBUS_XIO_GSI_DRIVER_INCLUDE

#include "gssapi.h"
#include "globus_common.h"

/**
 * @defgroup gsi_driver Globus XIO GSI Driver
 * The GSI driver.
 */

/**
 * @defgroup gsi_driver_instance Opening/Closing
 * @ingroup gsi_driver
 * 
 * An XIO handle with the gsi driver can be created with either
 * @ref globus_xio_handle_create() or @ref globus_xio_server_register_accept().
 *
 * If the handle is created with
 * @ref globus_xio_server_register_accept(), the
 * @ref globus_xio_register_open() call will proceed to accept a GSSAPI
 * security context. Upon successful completion of the open, ie after
 * the open callback has been called, the application may
 * proceed to read or write data associated with the GSI session.
 *
 * If the handle is created with @ref globus_xio_handle_create(), then
 * the XIO handle will implement the client-side (init) of the GSSAPI call
 * sequence and establish a security context with the accepting side indicated
 * by the contact_string passed to @ref globus_xio_register_open().
 */
 
/**
 * @defgroup gsi_driver_io Reading/Writing
 * @ingroup gsi_driver
 * The GSI driver behaves similar to the underlying transport driver with
 * respect to reads and writes.
 */

/**
 * @defgroup gsi_driver_server Server
 * @ingroup gsi_driver
 *
 * @ref globus_xio_server_create() causes a new transport-specific
 * listener socket to be created to handle new GSI connections.
 * @ref globus_xio_server_register_accept() will accept a new
 * connection for processing. @ref globus_xio_server_register_close()
 * cleans up the internal resources associated with the http server
 * and calls close on the listener.<commit_msg>Documentation update<commit_after>#ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
/**
 * @file globus_xio_gsi.h
 * @author <NAME>
 * 
 * $RCSfile$
 * $Revision$
 * $Date$
 */
#endif

#ifndef GLOBUS_XIO_GSI_DRIVER_INCLUDE
#define GLOBUS_XIO_GSI_DRIVER_INCLUDE

#include "gssapi.h"
#include "globus_common.h"

/**
 * @defgroup gsi_driver Globus XIO GSI Driver
 * The GSI driver.
 */

/**
 * @defgroup gsi_driver_instance Opening/Closing
 * @ingroup gsi_driver
 * 
 * An XIO handle with the gsi driver can be created with either
 * @ref globus_xio_handle_create() or @ref globus_xio_server_register_accept().
 *
 * If the handle is created with
 * @ref globus_xio_server_register_accept(), the
 * @ref globus_xio_register_open() call will proceed to accept a GSSAPI
 * security context. Upon successful completion of the open, ie after
 * the open callback has been called, the application may
 * proceed to read or write data associated with the GSI session.
 *
 * If the handle is created with @ref globus_xio_handle_create(), then
 * the XIO handle will implement the client-side (init) of the GSSAPI call
 * sequence and establish a security context with the accepting side indicated
 * by the contact_string passed to @ref globus_xio_register_open().
 */
 
/**
 * @defgroup gsi_driver_io Reading/Writing
 * @ingroup gsi_driver
 * The GSI driver behaves similar to the underlying transport driver with
 * respect to reads and writes, except for the try-read and try-write
 * operations (ie. waitforbytes ==0) which always return immediately. This is
 * due to the fact that the security layer needs to read and write tokens of a
 * certain minimal size and thus needs to rely on the underlying transport to
 * handle greater than 0 reads/write which is not possible in "try" mode.
 */

/**
 * @defgroup gsi_driver_server Server
 * @ingroup gsi_driver
 *
 * @ref globus_xio_server_create() causes a new transport-specific
 * listener socket to be created to handle new GSI connections.
 * @ref globus_xio_server_register_accept() will accept a new
 * connection for processing. @ref globus_xio_server_register_close()
 * cleans up the internal resources associated with the http server
 * and calls close on the listener.
{'fraction_non_alphanumeric': 0.0727630285152409, 'fraction_numerical': 0.0004916420845624386, 'mean_word_length': 4.604683195592287, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7134621', 'n_tokens_mistral': 1252, 'n_tokens_neox': 1224, 'n_words': 467}