17 #ifndef GLOBUS_GLOBUS_IO_H
18 #define GLOBUS_GLOBUS_IO_H
20 #include "globus_xio.h"
25 #define GLOBUS_IO_OVER_XIO 1
31 #define GLOBUS_IO_MODULE (&globus_l_io_module)
35 #define _IOSL(s) globus_common_i18n_get_string( \
39 typedef struct globus_l_io_handle_s * globus_io_handle_t;
40 typedef struct globus_l_io_attr_s * globus_io_attr_t;
42 typedef struct blah_s * globus_netlogger_handle_t;
45 (*globus_io_callback_t)(
47 globus_io_handle_t * handle,
51 (*globus_io_read_callback_t)(
53 globus_io_handle_t * handle,
59 (*globus_io_write_callback_t)(
61 globus_io_handle_t * handle,
67 (*globus_io_writev_callback_t)(
69 globus_io_handle_t * handle,
77 GLOBUS_IO_HANDLE_TYPE_TCP_LISTENER,
78 GLOBUS_IO_HANDLE_TYPE_TCP_CONNECTED,
79 GLOBUS_IO_HANDLE_TYPE_UDSS_LISTENER,
80 GLOBUS_IO_HANDLE_TYPE_UDSS_CONNECTED,
81 GLOBUS_IO_HANDLE_TYPE_FILE,
82 GLOBUS_IO_HANDLE_TYPE_UDP_UNCONNECTED,
83 GLOBUS_IO_HANDLE_TYPE_UDP_CONNECTED,
84 GLOBUS_IO_HANDLE_TYPE_UDDS_UNCONNECTED,
85 GLOBUS_IO_HANDLE_TYPE_UDDS_CONNECTED,
86 GLOBUS_IO_HANDLE_TYPE_INTERNAL
87 } globus_io_handle_type_t;
98 } globus_io_file_flag_t;
114 } globus_io_file_create_mode_t;
121 } globus_io_whence_t;
127 } globus_io_file_type_t;
132 } globus_io_send_flags_t;
135 globus_io_register_cancel(
136 globus_io_handle_t * handle,
138 globus_io_callback_t cancel_callback,
143 globus_io_handle_t * handle,
147 globus_io_register_close(
148 globus_io_handle_t * handle,
149 globus_io_callback_t callback,
150 void * callback_arg);
154 globus_io_handle_t * handle);
156 globus_io_handle_type_t
157 globus_io_get_handle_type(
158 globus_io_handle_t * handle);
161 globus_io_handle_get_user_pointer(
162 globus_io_handle_t * handle,
163 void ** user_pointer);
166 globus_io_handle_set_user_pointer(
167 globus_io_handle_t * handle,
168 void * user_pointer);
171 globus_io_register_read(
172 globus_io_handle_t * handle,
176 globus_io_read_callback_t callback,
177 void * callback_arg);
181 globus_io_handle_t * handle,
188 globus_io_handle_t * handle,
195 globus_io_register_write(
196 globus_io_handle_t * handle,
199 globus_io_write_callback_t write_callback,
200 void * callback_arg);
203 globus_io_register_send(
204 globus_io_handle_t * handle,
208 globus_io_write_callback_t write_callback,
209 void * callback_arg);
212 globus_io_register_writev(
213 globus_io_handle_t * handle,
216 globus_io_writev_callback_t writev_callback,
217 void * callback_arg);
221 globus_io_handle_t * handle,
228 globus_io_handle_t * handle,
236 globus_io_handle_t * handle,
243 globus_io_handle_t * handle,
251 globus_io_handle_t * handle,
257 globus_io_tcp_register_connect(
260 globus_io_attr_t * attr,
261 globus_io_callback_t callback,
263 globus_io_handle_t * handle);
266 globus_io_tcp_connect(
269 globus_io_attr_t * attr,
270 globus_io_handle_t * handle);
273 globus_io_tcp_create_listener(
274 unsigned short * port,
276 globus_io_attr_t * attr,
277 globus_io_handle_t * handle);
279 #define globus_io_register_listen globus_io_tcp_register_listen
280 #define globus_io_listen globus_io_tcp_listen
283 globus_io_tcp_register_listen(
284 globus_io_handle_t * handle,
285 globus_io_callback_t callback,
286 void * callback_arg);
289 globus_io_tcp_listen(
290 globus_io_handle_t * handle);
293 globus_io_tcp_register_accept(
294 globus_io_handle_t * listener_handle,
295 globus_io_attr_t * attr,
296 globus_io_handle_t * new_handle,
297 globus_io_callback_t callback,
298 void * callback_arg);
301 globus_io_tcp_accept(
302 globus_io_handle_t * listener_handle,
303 globus_io_attr_t * attr,
304 globus_io_handle_t * handle);
307 globus_io_register_select(
308 globus_io_handle_t * handle,
309 globus_io_callback_t read_callback_func,
310 void * read_callback_arg,
311 globus_io_callback_t write_callback_func,
312 void * write_callback_arg,
313 globus_io_callback_t except_callback_func,
314 void * except_callback_arg);
318 globus_io_tcp_get_local_address(
319 globus_io_handle_t * handle,
321 unsigned short * port);
324 globus_io_tcp_get_remote_address(
325 globus_io_handle_t * handle,
327 unsigned short * port);
333 globus_io_tcp_get_local_address_ex(
334 globus_io_handle_t * handle,
337 unsigned short * port);
340 globus_io_tcp_get_remote_address_ex(
341 globus_io_handle_t * handle,
344 unsigned short * port);
347 globus_io_tcp_posix_convert(
349 globus_io_attr_t * attributes,
350 globus_io_handle_t * handle);
353 globus_io_tcp_posix_convert_listener(
355 globus_io_attr_t * attributes,
356 globus_io_handle_t * handle);
359 globus_io_fileattr_init(
360 globus_io_attr_t * attr);
363 globus_io_fileattr_destroy(
364 globus_io_attr_t * attr);
367 globus_io_attr_set_file_type(
368 globus_io_attr_t * attr,
369 globus_io_file_type_t file_type);
372 globus_io_attr_get_file_type(
373 globus_io_attr_t * attr,
374 globus_io_file_type_t * file_type);
381 globus_io_attr_t * attr,
382 globus_io_handle_t * handle);
386 globus_io_handle_t * handle,
388 globus_io_whence_t whence);
391 globus_io_file_posix_convert(
393 globus_io_attr_t * attr,
394 globus_io_handle_t * handle);
397 globus_io_tcpattr_init(
398 globus_io_attr_t * attr);
401 globus_io_tcpattr_destroy(
402 globus_io_attr_t * attr);
405 globus_io_tcp_get_attr(
406 globus_io_handle_t * handle,
407 globus_io_attr_t * attr);
410 globus_io_attr_set_tcp_restrict_port(
411 globus_io_attr_t * attr,
415 globus_io_attr_get_tcp_restrict_port(
416 globus_io_attr_t * attr,
420 globus_io_attr_set_socket_reuseaddr(
421 globus_io_attr_t * attr,
425 globus_io_attr_get_socket_reuseaddr(
426 globus_io_attr_t * attr,
430 globus_io_attr_set_socket_keepalive(
431 globus_io_attr_t * attr,
435 globus_io_attr_get_socket_keepalive(
436 globus_io_attr_t * attr,
440 globus_io_attr_set_socket_linger(
441 globus_io_attr_t * attr,
446 globus_io_attr_get_socket_linger(
447 globus_io_attr_t * attr,
452 globus_io_attr_set_socket_oobinline(
453 globus_io_attr_t * attr,
457 globus_io_attr_get_socket_oobinline(
458 globus_io_attr_t * attr,
462 globus_io_attr_set_socket_sndbuf(
463 globus_io_attr_t * attr,
467 globus_io_attr_get_socket_sndbuf(
468 globus_io_attr_t * attr,
472 globus_io_attr_set_socket_rcvbuf(
473 globus_io_attr_t * attr,
477 globus_io_attr_get_socket_rcvbuf(
478 globus_io_attr_t * attr,
482 globus_io_attr_set_tcp_nodelay(
483 globus_io_attr_t * attr,
487 globus_io_attr_get_tcp_nodelay(
488 globus_io_attr_t * attr,
492 globus_io_attr_set_tcp_interface(
493 globus_io_attr_t * attr,
494 const char * interface_addr);
497 globus_io_attr_get_tcp_interface(
498 globus_io_attr_t * attr,
499 char ** interface_addr);
502 globus_io_attr_set_tcp_allow_ipv6(
503 globus_io_attr_t * attr,
508 globus_object_t * eof);
511 globus_io_attr_set_callback_space(
512 globus_io_attr_t * attr,
516 globus_io_attr_get_callback_space(
517 globus_io_attr_t * attr,
522 #ifndef _HAVE_GSI_EXTENDED_GSSAPI
523 #include "globus_gss_ext_compat.h"
526 typedef struct globus_l_io_secure_authorization_data_s * globus_io_secure_authorization_data_t;
529 (*globus_io_secure_authorization_callback_t)(
531 globus_io_handle_t * handle,
534 gss_ctx_id_t context_handle);
537 (* globus_io_delegation_callback_t)(
539 globus_io_handle_t * handle,
541 gss_cred_id_t delegated_cred,
546 GLOBUS_IO_SECURE_AUTHENTICATION_MODE_NONE,
547 GLOBUS_IO_SECURE_AUTHENTICATION_MODE_GSSAPI,
548 GLOBUS_IO_SECURE_AUTHENTICATION_MODE_MUTUAL,
549 GLOBUS_IO_SECURE_AUTHENTICATION_MODE_ANONYMOUS
550 } globus_io_secure_authentication_mode_t;
554 GLOBUS_IO_SECURE_AUTHORIZATION_MODE_NONE =
556 GLOBUS_IO_SECURE_AUTHORIZATION_MODE_SELF =
558 GLOBUS_IO_SECURE_AUTHORIZATION_MODE_IDENTITY =
560 GLOBUS_IO_SECURE_AUTHORIZATION_MODE_HOST =
562 GLOBUS_IO_SECURE_AUTHORIZATION_MODE_CALLBACK
563 } globus_io_secure_authorization_mode_t;
567 GLOBUS_IO_SECURE_PROTECTION_MODE_NONE =
569 GLOBUS_IO_SECURE_PROTECTION_MODE_SAFE =
571 GLOBUS_IO_SECURE_PROTECTION_MODE_PRIVATE =
573 } globus_io_secure_protection_mode_t;
577 GLOBUS_IO_SECURE_DELEGATION_MODE_NONE =
579 GLOBUS_IO_SECURE_DELEGATION_MODE_LIMITED_PROXY =
581 GLOBUS_IO_SECURE_DELEGATION_MODE_FULL_PROXY =
583 } globus_io_secure_delegation_mode_t;
587 GLOBUS_IO_SECURE_PROXY_MODE_NONE =
589 GLOBUS_IO_SECURE_PROXY_MODE_LIMITED =
591 GLOBUS_IO_SECURE_PROXY_MODE_MANY =
593 } globus_io_secure_proxy_mode_t;
597 GLOBUS_IO_SECURE_CHANNEL_MODE_CLEAR = 0,
598 GLOBUS_IO_SECURE_CHANNEL_MODE_GSI_WRAP,
599 GLOBUS_IO_SECURE_CHANNEL_MODE_SSL_WRAP,
600 GLOBUS_IO_SECURE_CHANNEL_MODE_GSI_WRAP_SSL3
601 } globus_io_secure_channel_mode_t;
604 globus_io_tcp_get_security_context(
605 globus_io_handle_t * handle,
606 gss_ctx_id_t * context);
609 globus_io_tcp_get_delegated_credential(
610 globus_io_handle_t * handle,
611 gss_cred_id_t * cred);
615 globus_io_tcp_set_credential(
616 globus_io_handle_t * handle,
617 gss_cred_id_t credential);
620 globus_io_tcp_get_credential(
621 globus_io_handle_t * handle,
622 gss_cred_id_t * credential);
625 globus_io_register_init_delegation(
626 globus_io_handle_t * handle,
627 const gss_cred_id_t cred_handle,
628 const gss_OID_set restriction_oids,
629 const gss_buffer_set_t restriction_buffers,
631 globus_io_delegation_callback_t callback,
632 void * callback_arg);
635 globus_io_init_delegation(
636 globus_io_handle_t * handle,
637 const gss_cred_id_t cred_handle,
638 const gss_OID_set restriction_oids,
639 const gss_buffer_set_t restriction_buffers,
643 globus_io_register_accept_delegation(
644 globus_io_handle_t * handle,
645 const gss_OID_set restriction_oids,
646 const gss_buffer_set_t restriction_buffers,
648 globus_io_delegation_callback_t callback,
649 void * callback_arg);
652 globus_io_accept_delegation(
653 globus_io_handle_t * handle,
654 gss_cred_id_t * delegated_cred,
655 const gss_OID_set restriction_oids,
656 const gss_buffer_set_t restriction_buffers,
658 OM_uint32 * time_rec);
662 globus_io_attr_set_secure_authentication_mode(
663 globus_io_attr_t * attr,
664 globus_io_secure_authentication_mode_t
666 gss_cred_id_t credential);
669 globus_io_attr_get_secure_authentication_mode(
670 globus_io_attr_t * attr,
671 globus_io_secure_authentication_mode_t *
673 gss_cred_id_t * credential);
676 globus_io_attr_set_secure_authorization_mode(
677 globus_io_attr_t * attr,
678 globus_io_secure_authorization_mode_t
680 globus_io_secure_authorization_data_t *
684 globus_io_attr_get_secure_authorization_mode(
685 globus_io_attr_t * attr,
686 globus_io_secure_authorization_mode_t *
688 globus_io_secure_authorization_data_t *
691 globus_io_attr_set_secure_extension_oids(
692 globus_io_attr_t * attr,
693 gss_OID_set extension_oids);
696 globus_io_attr_get_secure_extension_oids(
697 globus_io_attr_t * attr,
698 gss_OID_set * extension_oids);
701 globus_io_secure_authorization_data_initialize(
702 globus_io_secure_authorization_data_t *
705 globus_io_secure_authorization_data_destroy(
706 globus_io_secure_authorization_data_t *
709 globus_io_secure_authorization_data_set_identity(
710 globus_io_secure_authorization_data_t *
715 globus_io_secure_authorization_data_get_identity(
716 globus_io_secure_authorization_data_t *
721 globus_io_secure_authorization_data_set_callback(
722 globus_io_secure_authorization_data_t *
724 globus_io_secure_authorization_callback_t
726 void * callback_arg);
729 globus_io_secure_authorization_data_get_callback(
730 globus_io_secure_authorization_data_t *
732 globus_io_secure_authorization_callback_t *
734 void ** callback_arg);
737 globus_io_attr_set_secure_channel_mode(
738 globus_io_attr_t * attr,
739 globus_io_secure_channel_mode_t mode);
742 globus_io_attr_get_secure_channel_mode(
743 globus_io_attr_t * attr,
744 globus_io_secure_channel_mode_t * mode);
747 globus_io_attr_set_secure_protection_mode(
748 globus_io_attr_t * attr,
749 globus_io_secure_protection_mode_t mode);
752 globus_io_attr_get_secure_protection_mode(
753 globus_io_attr_t * attr,
754 globus_io_secure_protection_mode_t *mode);
757 globus_io_attr_set_secure_delegation_mode(
758 globus_io_attr_t * attr,
759 globus_io_secure_delegation_mode_t mode);
762 globus_io_attr_get_secure_delegation_mode(
763 globus_io_attr_t * attr,
764 globus_io_secure_delegation_mode_t *
767 globus_io_attr_set_secure_proxy_mode(
768 globus_io_attr_t * attr,
769 globus_io_secure_proxy_mode_t mode);
772 globus_io_attr_get_secure_proxy_mode(
773 globus_io_attr_t * attr,
774 globus_io_secure_proxy_mode_t * mode);
780 globus_io_attr_netlogger_set_handle(
781 globus_io_attr_t * attr,
782 globus_netlogger_handle_t * nl_handle);
785 globus_io_attr_netlogger_copy_handle(
786 globus_netlogger_handle_t * src,
787 globus_netlogger_handle_t * dst);
790 globus_netlogger_write(
791 globus_netlogger_handle_t * nl_handle,
798 globus_netlogger_handle_init(
799 globus_netlogger_handle_t * gnl_handle,
800 const char * hostname,
801 const char * progname,
805 globus_netlogger_handle_destroy(
806 globus_netlogger_handle_t * nl_handle);
809 globus_netlogger_get_nlhandle(
810 globus_netlogger_handle_t * nl_handle,
814 globus_netlogger_set_desc(
815 globus_netlogger_handle_t * nl_handle,
819 globus_io_handle_get_socket_buf(
820 globus_io_handle_t * handle,
825 globus_io_compat_get_tcp_driver();
828 globus_io_compat_get_gsi_driver();
831 globus_io_compat_get_file_driver();
834 globus_io_handle_get_xio_handle(
835 globus_io_handle_t * handle,
836 globus_xio_handle_t * xio_handle);
839 globus_io_attr_get_xio_attr(
840 globus_io_attr_t * attr,
841 globus_xio_attr_t * xio_attr);
844 globus_io_attr_set_stack(
845 globus_io_attr_t * attr,
846 globus_xio_stack_t stack);
852 #include "globus_io_error_hierarchy.h"
Definition: globus_xio_file_driver.h:259
Definition: globus_xio_gsi.h:333
Definition: globus_xio_tcp_driver.h:387
Definition: globus_xio_file_driver.h:287
Definition: globus_xio_file_driver.h:224
Definition: globus_xio_gsi.h:319
Definition: globus_xio_file_driver.h:273
Definition: globus_xio_file_driver.h:228
Definition: globus_xio_file_driver.h:263
Definition: globus_xio_file_driver.h:275
Definition: globus_xio_file_driver.h:218
int globus_bool_t
Boolean type.
Definition: globus_types.h:93
Definition: globus_xio_file_driver.h:261
Definition: globus_xio_file_driver.h:265
Definition: globus_xio_file_driver.h:267
Definition: globus_xio_file_driver.h:226
Definition: globus_xio_file_driver.h:271
Definition: globus_xio_file_driver.h:236
Definition: globus_xio_file_driver.h:222
Header file for XIO TCP Driver.
Definition: globus_xio_gsi.h:343
Definition: globus_xio_file_driver.h:257
Definition: globus_xio_file_driver.h:234
Definition: globus_xio_gsi.h:315
Definition: globus_xio_file_driver.h:289
Definition: globus_xio_gsi.h:331
Definition: globus_xio_gsi.h:349
size_t globus_size_t
Standard size of memory objectThe globus_size_t is the size of a memory object. It is identical to si...
Definition: globus_types.h:48
unsigned char globus_byte_t
Unsigned byte datatypeThis is used for byte-addressable arrays of arbitrary data which is not subject...
Definition: globus_types.h:85
Definition: globus_xio_gsi.h:372
uint32_t globus_result_t
Definition: globus_types.h:99
Definition: globus_xio_file_driver.h:253
Definition: globus_xio_gsi.h:347
Definition: globus_xio_file_driver.h:216
Definition: globus_xio_gsi.h:329
Definition: globus_xio_gsi.h:364
Definition: globus_xio_gsi.h:362
Definition: globus_xio_file_driver.h:291
Definition: globus_xio_gsi.h:368
Definition: globus_xio_file_driver.h:269
Definition: globus_xio_file_driver.h:255
Definition: globus_xio_gsi.h:317
int globus_callback_space_t
Callback space handle.
Definition: globus_callback.h:112
Definition: globus_xio_file_driver.h:220
Module Descriptor.
Definition: globus_module.h:71