Grid Community Toolkit  6.2.1705709074 (tag: v6.2.20240202)
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
globus_io.h
1 /*
2  * Copyright 1999-2006 University of Chicago
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef GLOBUS_GLOBUS_IO_H
18 #define GLOBUS_GLOBUS_IO_H
19 
20 #include "globus_xio.h"
21 #include "globus_xio_tcp_driver.h"
22 #include "globus_xio_file_driver.h"
23 #include "globus_xio_gsi.h"
24 
25 #define GLOBUS_IO_OVER_XIO 1
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 #define GLOBUS_IO_MODULE (&globus_l_io_module)
32 
33 extern globus_module_descriptor_t globus_l_io_module;
34 
35 #define _IOSL(s) globus_common_i18n_get_string( \
36  GLOBUS_IO_MODULE, \
37  s)
38 
39 typedef struct globus_l_io_handle_s * globus_io_handle_t;
40 typedef struct globus_l_io_attr_s * globus_io_attr_t;
41 /*** XXXX ***/
42 typedef struct blah_s * globus_netlogger_handle_t;
43 
44 typedef void
45 (*globus_io_callback_t)(
46  void * callback_arg,
47  globus_io_handle_t * handle,
48  globus_result_t result);
49 
50 typedef void
51 (*globus_io_read_callback_t)(
52  void * arg,
53  globus_io_handle_t * handle,
54  globus_result_t result,
55  globus_byte_t * buf,
56  globus_size_t nbytes);
57 
58 typedef void
59 (*globus_io_write_callback_t)(
60  void * arg,
61  globus_io_handle_t * handle,
62  globus_result_t result,
63  globus_byte_t * buf,
64  globus_size_t nbytes);
65 
66 typedef void
67 (*globus_io_writev_callback_t)(
68  void * arg,
69  globus_io_handle_t * handle,
70  globus_result_t result,
71  struct iovec * iov,
72  globus_size_t iovcnt,
73  globus_size_t nbytes);
74 
75 typedef enum
76 {
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;
88 
89 typedef enum
90 {
91  GLOBUS_IO_FILE_CREAT = GLOBUS_XIO_FILE_CREAT,
92  GLOBUS_IO_FILE_EXCL = GLOBUS_XIO_FILE_EXCL,
93  GLOBUS_IO_FILE_RDONLY = GLOBUS_XIO_FILE_RDONLY,
94  GLOBUS_IO_FILE_WRONLY = GLOBUS_XIO_FILE_WRONLY,
95  GLOBUS_IO_FILE_RDWR = GLOBUS_XIO_FILE_RDWR,
96  GLOBUS_IO_FILE_TRUNC = GLOBUS_XIO_FILE_TRUNC,
97  GLOBUS_IO_FILE_APPEND = GLOBUS_XIO_FILE_APPEND
98 } globus_io_file_flag_t;
99 
100 typedef enum
101 {
102  GLOBUS_IO_FILE_IRWXU = GLOBUS_XIO_FILE_IRWXU,
103  GLOBUS_IO_FILE_IRUSR = GLOBUS_XIO_FILE_IRUSR,
104  GLOBUS_IO_FILE_IWUSR = GLOBUS_XIO_FILE_IWUSR,
105  GLOBUS_IO_FILE_IXUSR = GLOBUS_XIO_FILE_IXUSR,
106  GLOBUS_IO_FILE_IRWXO = GLOBUS_XIO_FILE_IRWXO,
107  GLOBUS_IO_FILE_IROTH = GLOBUS_XIO_FILE_IROTH,
108  GLOBUS_IO_FILE_IWOTH = GLOBUS_XIO_FILE_IWOTH,
109  GLOBUS_IO_FILE_IXOTH = GLOBUS_XIO_FILE_IXOTH,
110  GLOBUS_IO_FILE_IRWXG = GLOBUS_XIO_FILE_IRWXG,
111  GLOBUS_IO_FILE_IRGRP = GLOBUS_XIO_FILE_IRGRP,
112  GLOBUS_IO_FILE_IWGRP = GLOBUS_XIO_FILE_IWGRP,
113  GLOBUS_IO_FILE_IXGRP = GLOBUS_XIO_FILE_IXGRP
114 } globus_io_file_create_mode_t;
115 
116 typedef enum
117 {
118  GLOBUS_IO_SEEK_SET = GLOBUS_XIO_FILE_SEEK_SET,
119  GLOBUS_IO_SEEK_CUR = GLOBUS_XIO_FILE_SEEK_CUR,
120  GLOBUS_IO_SEEK_END = GLOBUS_XIO_FILE_SEEK_END
121 } globus_io_whence_t;
122 
123 typedef enum
124 {
125  GLOBUS_IO_FILE_TYPE_TEXT = GLOBUS_XIO_FILE_TEXT,
126  GLOBUS_IO_FILE_TYPE_BINARY = GLOBUS_XIO_FILE_BINARY
127 } globus_io_file_type_t;
128 
129 typedef enum
130 {
131  GLOBUS_IO_SEND_MSG_OOB = GLOBUS_XIO_TCP_SEND_OOB
132 } globus_io_send_flags_t;
133 
135 globus_io_register_cancel(
136  globus_io_handle_t * handle,
137  globus_bool_t perform_callbacks,
138  globus_io_callback_t cancel_callback,
139  void * cancel_arg);
140 
142 globus_io_cancel(
143  globus_io_handle_t * handle,
144  globus_bool_t perform_callbacks);
145 
147 globus_io_register_close(
148  globus_io_handle_t * handle,
149  globus_io_callback_t callback,
150  void * callback_arg);
151 
153 globus_io_close(
154  globus_io_handle_t * handle);
155 
156 globus_io_handle_type_t
157 globus_io_get_handle_type(
158  globus_io_handle_t * handle);
159 
161 globus_io_handle_get_user_pointer(
162  globus_io_handle_t * handle,
163  void ** user_pointer);
164 
166 globus_io_handle_set_user_pointer(
167  globus_io_handle_t * handle,
168  void * user_pointer);
169 
171 globus_io_register_read(
172  globus_io_handle_t * handle,
173  globus_byte_t * buf,
174  globus_size_t max_nbytes,
175  globus_size_t wait_for_nbytes,
176  globus_io_read_callback_t callback,
177  void * callback_arg);
178 
180 globus_io_try_read(
181  globus_io_handle_t * handle,
182  globus_byte_t * buf,
183  globus_size_t max_nbytes,
184  globus_size_t * nbytes_read);
185 
187 globus_io_read(
188  globus_io_handle_t * handle,
189  globus_byte_t * buf,
190  globus_size_t max_nbytes,
191  globus_size_t wait_for_nbytes,
192  globus_size_t * nbytes_read);
193 
195 globus_io_register_write(
196  globus_io_handle_t * handle,
197  globus_byte_t * buf,
198  globus_size_t nbytes,
199  globus_io_write_callback_t write_callback,
200  void * callback_arg);
201 
203 globus_io_register_send(
204  globus_io_handle_t * handle,
205  globus_byte_t * buf,
206  globus_size_t nbytes,
207  int flags,
208  globus_io_write_callback_t write_callback,
209  void * callback_arg);
210 
212 globus_io_register_writev(
213  globus_io_handle_t * handle,
214  struct iovec * iov,
215  globus_size_t iovcnt,
216  globus_io_writev_callback_t writev_callback,
217  void * callback_arg);
218 
220 globus_io_try_write(
221  globus_io_handle_t * handle,
222  globus_byte_t * buf,
223  globus_size_t max_nbytes,
224  globus_size_t * nbytes_written);
225 
227 globus_io_try_send(
228  globus_io_handle_t * handle,
229  globus_byte_t * buf,
230  globus_size_t nbytes,
231  int flags,
232  globus_size_t * nbytes_sent);
233 
235 globus_io_write(
236  globus_io_handle_t * handle,
237  globus_byte_t * buf,
238  globus_size_t nbytes,
239  globus_size_t * nbytes_written);
240 
242 globus_io_send(
243  globus_io_handle_t * handle,
244  globus_byte_t * buf,
245  globus_size_t nbytes,
246  int flags,
247  globus_size_t * nbytes_sent);
248 
250 globus_io_writev(
251  globus_io_handle_t * handle,
252  struct iovec * iov,
253  globus_size_t iovcnt,
254  globus_size_t * bytes_written);
255 
257 globus_io_tcp_register_connect(
258  const char * host,
259  unsigned short port,
260  globus_io_attr_t * attr,
261  globus_io_callback_t callback,
262  void * callback_arg,
263  globus_io_handle_t * handle);
264 
266 globus_io_tcp_connect(
267  const char * host,
268  unsigned short port,
269  globus_io_attr_t * attr,
270  globus_io_handle_t * handle);
271 
273 globus_io_tcp_create_listener(
274  unsigned short * port,
275  int backlog,
276  globus_io_attr_t * attr,
277  globus_io_handle_t * handle);
278 
279 #define globus_io_register_listen globus_io_tcp_register_listen
280 #define globus_io_listen globus_io_tcp_listen
281 
283 globus_io_tcp_register_listen(
284  globus_io_handle_t * handle,
285  globus_io_callback_t callback,
286  void * callback_arg);
287 
289 globus_io_tcp_listen(
290  globus_io_handle_t * handle);
291 
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);
299 
301 globus_io_tcp_accept(
302  globus_io_handle_t * listener_handle,
303  globus_io_attr_t * attr,
304  globus_io_handle_t * handle);
305 
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);
315 
316 /* host must have room for 4 ints. will fail if ip is ipv6 */
318 globus_io_tcp_get_local_address(
319  globus_io_handle_t * handle,
320  int * host,
321  unsigned short * port);
322 
324 globus_io_tcp_get_remote_address(
325  globus_io_handle_t * handle,
326  int * host,
327  unsigned short * port);
328 
329 /* host must have room for 16 ints,
330  * count will be passed back: 4 for ipv4, 16 for ipv6
331  */
333 globus_io_tcp_get_local_address_ex(
334  globus_io_handle_t * handle,
335  int * host,
336  int * count,
337  unsigned short * port);
338 
340 globus_io_tcp_get_remote_address_ex(
341  globus_io_handle_t * handle,
342  int * host,
343  int * count,
344  unsigned short * port);
345 
347 globus_io_tcp_posix_convert(
348  int socket,
349  globus_io_attr_t * attributes,
350  globus_io_handle_t * handle);
351 
353 globus_io_tcp_posix_convert_listener(
354  int socket,
355  globus_io_attr_t * attributes,
356  globus_io_handle_t * handle);
357 
359 globus_io_fileattr_init(
360  globus_io_attr_t * attr);
361 
363 globus_io_fileattr_destroy(
364  globus_io_attr_t * attr);
365 
367 globus_io_attr_set_file_type(
368  globus_io_attr_t * attr,
369  globus_io_file_type_t file_type);
370 
372 globus_io_attr_get_file_type(
373  globus_io_attr_t * attr,
374  globus_io_file_type_t * file_type);
375 
377 globus_io_file_open(
378  const char * path,
379  int flags,
380  int mode,
381  globus_io_attr_t * attr,
382  globus_io_handle_t * handle);
383 
385 globus_io_file_seek(
386  globus_io_handle_t * handle,
387  globus_off_t offset,
388  globus_io_whence_t whence);
389 
391 globus_io_file_posix_convert(
392  int fd,
393  globus_io_attr_t * attr,
394  globus_io_handle_t * handle);
395 
397 globus_io_tcpattr_init(
398  globus_io_attr_t * attr);
399 
401 globus_io_tcpattr_destroy(
402  globus_io_attr_t * attr);
403 
405 globus_io_tcp_get_attr(
406  globus_io_handle_t * handle,
407  globus_io_attr_t * attr);
408 
410 globus_io_attr_set_tcp_restrict_port(
411  globus_io_attr_t * attr,
412  globus_bool_t restrict_port);
413 
415 globus_io_attr_get_tcp_restrict_port(
416  globus_io_attr_t * attr,
417  globus_bool_t * restrict_port);
418 
420 globus_io_attr_set_socket_reuseaddr(
421  globus_io_attr_t * attr,
422  globus_bool_t reuseaddr);
423 
425 globus_io_attr_get_socket_reuseaddr(
426  globus_io_attr_t * attr,
427  globus_bool_t * reuseaddr);
428 
430 globus_io_attr_set_socket_keepalive(
431  globus_io_attr_t * attr,
432  globus_bool_t keepalive);
433 
435 globus_io_attr_get_socket_keepalive(
436  globus_io_attr_t * attr,
437  globus_bool_t * keepalive);
438 
440 globus_io_attr_set_socket_linger(
441  globus_io_attr_t * attr,
442  globus_bool_t linger,
443  int linger_time);
444 
446 globus_io_attr_get_socket_linger(
447  globus_io_attr_t * attr,
448  globus_bool_t * linger,
449  int * linger_time);
450 
452 globus_io_attr_set_socket_oobinline(
453  globus_io_attr_t * attr,
454  globus_bool_t oobinline);
455 
457 globus_io_attr_get_socket_oobinline(
458  globus_io_attr_t * attr,
459  globus_bool_t * oobinline);
460 
462 globus_io_attr_set_socket_sndbuf(
463  globus_io_attr_t * attr,
464  int sndbuf);
465 
467 globus_io_attr_get_socket_sndbuf(
468  globus_io_attr_t * attr,
469  int * sndbuf);
470 
472 globus_io_attr_set_socket_rcvbuf(
473  globus_io_attr_t * attr,
474  int rcvbuf);
475 
477 globus_io_attr_get_socket_rcvbuf(
478  globus_io_attr_t * attr,
479  int * rcvbuf);
480 
482 globus_io_attr_set_tcp_nodelay(
483  globus_io_attr_t * attr,
484  globus_bool_t nodelay);
485 
487 globus_io_attr_get_tcp_nodelay(
488  globus_io_attr_t * attr,
489  globus_bool_t * nodelay);
490 
492 globus_io_attr_set_tcp_interface(
493  globus_io_attr_t * attr,
494  const char * interface_addr);
495 
497 globus_io_attr_get_tcp_interface(
498  globus_io_attr_t * attr,
499  char ** interface_addr);
500 
502 globus_io_attr_set_tcp_allow_ipv6(
503  globus_io_attr_t * attr,
504  globus_bool_t allow);
505 
507 globus_io_eof(
508  globus_object_t * eof);
509 
511 globus_io_attr_set_callback_space(
512  globus_io_attr_t * attr,
514 
516 globus_io_attr_get_callback_space(
517  globus_io_attr_t * attr,
518  globus_callback_space_t * space);
519 
520 #include "globus_gss_assist.h"
521 
522 #ifndef _HAVE_GSI_EXTENDED_GSSAPI
523 #include "globus_gss_ext_compat.h"
524 #endif
525 
526 typedef struct globus_l_io_secure_authorization_data_s * globus_io_secure_authorization_data_t;
527 
528 typedef globus_bool_t
529 (*globus_io_secure_authorization_callback_t)(
530  void * arg,
531  globus_io_handle_t * handle,
532  globus_result_t result,
533  char * identity,
534  gss_ctx_id_t context_handle);
535 
536 typedef void
537 (* globus_io_delegation_callback_t)(
538  void * arg,
539  globus_io_handle_t * handle,
540  globus_result_t result,
541  gss_cred_id_t delegated_cred,
542  OM_uint32 time_rec);
543 
544 typedef enum
545 {
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;
551 
552 typedef enum
553 {
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;
564 
565 typedef enum
566 {
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;
574 
575 typedef enum
576 {
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;
584 
585 typedef enum
586 {
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;
594 
595 typedef enum
596 {
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 /* NO LONGER SUPPORTED */
601 } globus_io_secure_channel_mode_t;
602 
604 globus_io_tcp_get_security_context(
605  globus_io_handle_t * handle,
606  gss_ctx_id_t * context);
607 
609 globus_io_tcp_get_delegated_credential(
610  globus_io_handle_t * handle,
611  gss_cred_id_t * cred);
612 
613 /* new api just for gram_protocol_io */
615 globus_io_tcp_set_credential(
616  globus_io_handle_t * handle,
617  gss_cred_id_t credential);
618 
620 globus_io_tcp_get_credential(
621  globus_io_handle_t * handle,
622  gss_cred_id_t * credential);
623 
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,
630  OM_uint32 time_req,
631  globus_io_delegation_callback_t callback,
632  void * callback_arg);
633 
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,
640  OM_uint32 time_req);
641 
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,
647  OM_uint32 time_req,
648  globus_io_delegation_callback_t callback,
649  void * callback_arg);
650 
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,
657  OM_uint32 time_req,
658  OM_uint32 * time_rec);
659 
660 
662 globus_io_attr_set_secure_authentication_mode(
663  globus_io_attr_t * attr,
664  globus_io_secure_authentication_mode_t
665  mode,
666  gss_cred_id_t credential);
667 
669 globus_io_attr_get_secure_authentication_mode(
670  globus_io_attr_t * attr,
671  globus_io_secure_authentication_mode_t *
672  mode,
673  gss_cred_id_t * credential);
674 
676 globus_io_attr_set_secure_authorization_mode(
677  globus_io_attr_t * attr,
678  globus_io_secure_authorization_mode_t
679  mode,
680  globus_io_secure_authorization_data_t *
681  data);
682 
684 globus_io_attr_get_secure_authorization_mode(
685  globus_io_attr_t * attr,
686  globus_io_secure_authorization_mode_t *
687  mode,
688  globus_io_secure_authorization_data_t *
689  data);
691 globus_io_attr_set_secure_extension_oids(
692  globus_io_attr_t * attr,
693  gss_OID_set extension_oids);
694 
696 globus_io_attr_get_secure_extension_oids(
697  globus_io_attr_t * attr,
698  gss_OID_set * extension_oids);
699 
701 globus_io_secure_authorization_data_initialize(
702  globus_io_secure_authorization_data_t *
703  data);
705 globus_io_secure_authorization_data_destroy(
706  globus_io_secure_authorization_data_t *
707  data);
709 globus_io_secure_authorization_data_set_identity(
710  globus_io_secure_authorization_data_t *
711  data,
712  char * identity);
713 
715 globus_io_secure_authorization_data_get_identity(
716  globus_io_secure_authorization_data_t *
717  data,
718  char ** identity);
719 
721 globus_io_secure_authorization_data_set_callback(
722  globus_io_secure_authorization_data_t *
723  data,
724  globus_io_secure_authorization_callback_t
725  callback,
726  void * callback_arg);
727 
729 globus_io_secure_authorization_data_get_callback(
730  globus_io_secure_authorization_data_t *
731  data,
732  globus_io_secure_authorization_callback_t *
733  callback,
734  void ** callback_arg);
735 
737 globus_io_attr_set_secure_channel_mode(
738  globus_io_attr_t * attr,
739  globus_io_secure_channel_mode_t mode);
740 
742 globus_io_attr_get_secure_channel_mode(
743  globus_io_attr_t * attr,
744  globus_io_secure_channel_mode_t * mode);
745 
747 globus_io_attr_set_secure_protection_mode(
748  globus_io_attr_t * attr,
749  globus_io_secure_protection_mode_t mode);
750 
752 globus_io_attr_get_secure_protection_mode(
753  globus_io_attr_t * attr,
754  globus_io_secure_protection_mode_t *mode);
755 
757 globus_io_attr_set_secure_delegation_mode(
758  globus_io_attr_t * attr,
759  globus_io_secure_delegation_mode_t mode);
760 
762 globus_io_attr_get_secure_delegation_mode(
763  globus_io_attr_t * attr,
764  globus_io_secure_delegation_mode_t *
765  mode);
767 globus_io_attr_set_secure_proxy_mode(
768  globus_io_attr_t * attr,
769  globus_io_secure_proxy_mode_t mode);
770 
772 globus_io_attr_get_secure_proxy_mode(
773  globus_io_attr_t * attr,
774  globus_io_secure_proxy_mode_t * mode);
775 
776 
777 /* netlogger */
778 
780 globus_io_attr_netlogger_set_handle(
781  globus_io_attr_t * attr,
782  globus_netlogger_handle_t * nl_handle);
783 
785 globus_io_attr_netlogger_copy_handle(
786  globus_netlogger_handle_t * src,
787  globus_netlogger_handle_t * dst);
788 
790 globus_netlogger_write(
791  globus_netlogger_handle_t * nl_handle,
792  const char * event,
793  const char * id,
794  const char * level,
795  const char * tag);
796 
798 globus_netlogger_handle_init(
799  globus_netlogger_handle_t * gnl_handle,
800  const char * hostname,
801  const char * progname,
802  const char * pid);
803 
805 globus_netlogger_handle_destroy(
806  globus_netlogger_handle_t * nl_handle);
807 
809 globus_netlogger_get_nlhandle(
810  globus_netlogger_handle_t * nl_handle,
811  void ** handle);
812 
814 globus_netlogger_set_desc(
815  globus_netlogger_handle_t * nl_handle,
816  char * desc);
817 
819 globus_io_handle_get_socket_buf(
820  globus_io_handle_t * handle,
821  int * rcvbuf,
822  int * sndbuf);
823 
824 globus_xio_driver_t
825 globus_io_compat_get_tcp_driver();
826 
827 globus_xio_driver_t
828 globus_io_compat_get_gsi_driver();
829 
830 globus_xio_driver_t
831 globus_io_compat_get_file_driver();
832 
834 globus_io_handle_get_xio_handle(
835  globus_io_handle_t * handle,
836  globus_xio_handle_t * xio_handle);
837 
839 globus_io_attr_get_xio_attr(
840  globus_io_attr_t * attr,
841  globus_xio_attr_t * xio_attr);
842 
844 globus_io_attr_set_stack(
845  globus_io_attr_t * attr,
846  globus_xio_stack_t stack);
847 
848 #ifdef __cplusplus
849 }
850 #endif
851 
852 #include "globus_io_error_hierarchy.h"
853 
854 #endif /* GLOBUS_IO_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
XIO GSI Driver.
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
GSS Assist Header.
XIO File Driver.
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