1#ifndef HEADER_CURL_SETUP_OS400_H 2#define HEADER_CURL_SETUP_OS400_H 3/*************************************************************************** 4 * _ _ ____ _ 5 * Project ___| | | | _ \| | 6 * / __| | | | |_) | | 7 * | (__| |_| | _ <| |___ 8 * \___|\___/|_| \_\_____| 9 * 10 * Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al. 11 * 12 * This software is licensed as described in the file COPYING, which 13 * you should have received as part of this distribution. The terms 14 * are also available at http://curl.haxx.se/docs/copyright.html. 15 * 16 * You may opt to use, copy, modify, merge, publish, distribute and/or sell 17 * copies of the Software, and permit persons to whom the Software is 18 * furnished to do so, under the terms of the COPYING file. 19 * 20 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 21 * KIND, either express or implied. 22 * 23 ***************************************************************************/ 24 25 26/* OS/400 netdb.h does not define NI_MAXHOST. */ 27#define NI_MAXHOST 1025 28 29/* OS/400 netdb.h does not define NI_MAXSERV. */ 30#define NI_MAXSERV 32 31 32/* No OS/400 header file defines u_int32_t. */ 33typedef unsigned long u_int32_t; 34 35 36/* System API wrapper prototypes & definitions to support ASCII parameters. */ 37 38#include <sys/socket.h> 39#include <netdb.h> 40#include <qsossl.h> 41#include <gskssl.h> 42#include <qsoasync.h> 43#include <gssapi.h> 44 45extern int Curl_getaddrinfo_a(const char * nodename, 46 const char * servname, 47 const struct addrinfo * hints, 48 struct addrinfo * * res); 49#define getaddrinfo Curl_getaddrinfo_a 50 51 52extern int Curl_getnameinfo_a(const struct sockaddr * sa, 53 curl_socklen_t salen, 54 char * nodename, curl_socklen_t nodenamelen, 55 char * servname, curl_socklen_t servnamelen, 56 int flags); 57#define getnameinfo Curl_getnameinfo_a 58 59 60/* SSL wrappers. */ 61 62extern int Curl_SSL_Init_Application_a(SSLInitApp * init_app); 63#define SSL_Init_Application Curl_SSL_Init_Application_a 64 65 66extern int Curl_SSL_Init_a(SSLInit * init); 67#define SSL_Init Curl_SSL_Init_a 68 69 70extern char * Curl_SSL_Strerror_a(int sslreturnvalue, 71 SSLErrorMsg * serrmsgp); 72#define SSL_Strerror Curl_SSL_Strerror_a 73 74 75/* GSKit wrappers. */ 76 77extern int Curl_gsk_environment_open(gsk_handle * my_env_handle); 78#define gsk_environment_open Curl_gsk_environment_open 79 80extern int Curl_gsk_secure_soc_open(gsk_handle my_env_handle, 81 gsk_handle * my_session_handle); 82#define gsk_secure_soc_open Curl_gsk_secure_soc_open 83 84extern int Curl_gsk_environment_close(gsk_handle * my_env_handle); 85#define gsk_environment_close Curl_gsk_environment_close 86 87extern int Curl_gsk_secure_soc_close(gsk_handle * my_session_handle); 88#define gsk_secure_soc_close Curl_gsk_secure_soc_close 89 90extern int Curl_gsk_environment_init(gsk_handle my_env_handle); 91#define gsk_environment_init Curl_gsk_environment_init 92 93extern int Curl_gsk_secure_soc_init(gsk_handle my_session_handle); 94#define gsk_secure_soc_init Curl_gsk_secure_soc_init 95 96extern int Curl_gsk_attribute_set_buffer_a(gsk_handle my_gsk_handle, 97 GSK_BUF_ID bufID, 98 const char * buffer, 99 int bufSize); 100#define gsk_attribute_set_buffer Curl_gsk_attribute_set_buffer_a 101 102extern int Curl_gsk_attribute_set_enum(gsk_handle my_gsk_handle, 103 GSK_ENUM_ID enumID, 104 GSK_ENUM_VALUE enumValue); 105#define gsk_attribute_set_enum Curl_gsk_attribute_set_enum 106 107extern int Curl_gsk_attribute_set_numeric_value(gsk_handle my_gsk_handle, 108 GSK_NUM_ID numID, 109 int numValue); 110#define gsk_attribute_set_numeric_value Curl_gsk_attribute_set_numeric_value 111 112extern int Curl_gsk_attribute_set_callback(gsk_handle my_gsk_handle, 113 GSK_CALLBACK_ID callBackID, 114 void * callBackAreaPtr); 115#define gsk_attribute_set_callback Curl_gsk_attribute_set_callback 116 117extern int Curl_gsk_attribute_get_buffer_a(gsk_handle my_gsk_handle, 118 GSK_BUF_ID bufID, 119 const char * * buffer, 120 int * bufSize); 121#define gsk_attribute_get_buffer Curl_gsk_attribute_get_buffer_a 122 123extern int Curl_gsk_attribute_get_enum(gsk_handle my_gsk_handle, 124 GSK_ENUM_ID enumID, 125 GSK_ENUM_VALUE * enumValue); 126#define gsk_attribute_get_enum Curl_gsk_attribute_get_enum 127 128extern int Curl_gsk_attribute_get_numeric_value(gsk_handle my_gsk_handle, 129 GSK_NUM_ID numID, 130 int * numValue); 131#define gsk_attribute_get_numeric_value Curl_gsk_attribute_get_numeric_value 132 133extern int Curl_gsk_attribute_get_cert_info(gsk_handle my_gsk_handle, 134 GSK_CERT_ID certID, 135 const gsk_cert_data_elem * * certDataElem, 136 int * certDataElementCount); 137#define gsk_attribute_get_cert_info Curl_gsk_attribute_get_cert_info 138 139extern int Curl_gsk_secure_soc_misc(gsk_handle my_session_handle, 140 GSK_MISC_ID miscID); 141#define gsk_secure_soc_misc Curl_gsk_secure_soc_misc 142 143extern int Curl_gsk_secure_soc_read(gsk_handle my_session_handle, 144 char * readBuffer, 145 int readBufSize, int * amtRead); 146#define gsk_secure_soc_read Curl_gsk_secure_soc_read 147 148extern int Curl_gsk_secure_soc_write(gsk_handle my_session_handle, 149 char * writeBuffer, 150 int writeBufSize, int * amtWritten); 151#define gsk_secure_soc_write Curl_gsk_secure_soc_write 152 153extern const char * Curl_gsk_strerror_a(int gsk_return_value); 154#define gsk_strerror Curl_gsk_strerror_a 155 156extern int Curl_gsk_secure_soc_startInit(gsk_handle my_session_handle, 157 int IOCompletionPort, 158 Qso_OverlappedIO_t * communicationsArea); 159#define gsk_secure_soc_startInit Curl_gsk_secure_soc_startInit 160 161 162/* GSSAPI wrappers. */ 163 164extern OM_uint32 Curl_gss_import_name_a(OM_uint32 * minor_status, 165 gss_buffer_t in_name, 166 gss_OID in_name_type, 167 gss_name_t * out_name); 168#define gss_import_name Curl_gss_import_name_a 169 170 171extern OM_uint32 Curl_gss_display_status_a(OM_uint32 * minor_status, 172 OM_uint32 status_value, 173 int status_type, gss_OID mech_type, 174 gss_msg_ctx_t * message_context, 175 gss_buffer_t status_string); 176#define gss_display_status Curl_gss_display_status_a 177 178 179extern OM_uint32 Curl_gss_init_sec_context_a(OM_uint32 * minor_status, 180 gss_cred_id_t cred_handle, 181 gss_ctx_id_t * context_handle, 182 gss_name_t target_name, 183 gss_OID mech_type, 184 gss_flags_t req_flags, 185 OM_uint32 time_req, 186 gss_channel_bindings_t 187 input_chan_bindings, 188 gss_buffer_t input_token, 189 gss_OID * actual_mech_type, 190 gss_buffer_t output_token, 191 gss_flags_t * ret_flags, 192 OM_uint32 * time_rec); 193#define gss_init_sec_context Curl_gss_init_sec_context_a 194 195 196extern OM_uint32 Curl_gss_delete_sec_context_a(OM_uint32 * minor_status, 197 gss_ctx_id_t * context_handle, 198 gss_buffer_t output_token); 199#define gss_delete_sec_context Curl_gss_delete_sec_context_a 200 201 202/* LDAP wrappers. */ 203 204#define BerValue struct berval 205 206#define ldap_url_parse ldap_url_parse_utf8 207#define ldap_init Curl_ldap_init_a 208#define ldap_simple_bind_s Curl_ldap_simple_bind_s_a 209#define ldap_search_s Curl_ldap_search_s_a 210#define ldap_get_values_len Curl_ldap_get_values_len_a 211#define ldap_err2string Curl_ldap_err2string_a 212#define ldap_get_dn Curl_ldap_get_dn_a 213#define ldap_first_attribute Curl_ldap_first_attribute_a 214#define ldap_next_attribute Curl_ldap_next_attribute_a 215 216/* Some socket functions must be wrapped to process textual addresses 217 like AF_UNIX. */ 218 219extern int Curl_os400_connect(int sd, struct sockaddr * destaddr, int addrlen); 220extern int Curl_os400_bind(int sd, struct sockaddr * localaddr, int addrlen); 221extern int Curl_os400_sendto(int sd, char * buffer, int buflen, int flags, 222 struct sockaddr * dstaddr, int addrlen); 223extern int Curl_os400_recvfrom(int sd, char * buffer, int buflen, int flags, 224 struct sockaddr * fromaddr, int * addrlen); 225 226#define connect Curl_os400_connect 227#define bind Curl_os400_bind 228#define sendto Curl_os400_sendto 229#define recvfrom Curl_os400_recvfrom 230 231#ifdef HAVE_LIBZ 232#define zlibVersion Curl_os400_zlibVersion 233#define inflateInit_ Curl_os400_inflateInit_ 234#define inflateInit2_ Curl_os400_inflateInit2_ 235#define inflate Curl_os400_inflate 236#define inflateEnd Curl_os400_inflateEnd 237#endif 238 239#endif /* HEADER_CURL_SETUP_OS400_H */ 240