1/* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. 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 NETWORK_IO_H 18#define NETWORK_IO_H 19 20#include "apr_private.h" 21#include "apr_network_io.h" 22#include "apr_general.h" 23#include "apr_arch_os2calls.h" 24#include "apr_poll.h" 25 26#if APR_HAVE_NETDB_H 27#include <netdb.h> 28#endif 29 30typedef struct sock_userdata_t sock_userdata_t; 31struct sock_userdata_t { 32 sock_userdata_t *next; 33 const char *key; 34 void *data; 35}; 36 37struct apr_socket_t { 38 apr_pool_t *pool; 39 int socketdes; 40 int type; 41 int protocol; 42 apr_sockaddr_t *local_addr; 43 apr_sockaddr_t *remote_addr; 44 apr_interval_time_t timeout; 45 int nonblock; 46 int local_port_unknown; 47 int local_interface_unknown; 48 int remote_addr_unknown; 49 apr_int32_t options; 50 apr_int32_t inherit; 51 sock_userdata_t *userdata; 52 53 /* if there is a timeout set, then this pollset is used */ 54 apr_pollset_t *pollset; 55}; 56 57/* Error codes returned from sock_errno() */ 58#define SOCBASEERR 10000 59#define SOCEPERM (SOCBASEERR+1) /* Not owner */ 60#define SOCESRCH (SOCBASEERR+3) /* No such process */ 61#define SOCEINTR (SOCBASEERR+4) /* Interrupted system call */ 62#define SOCENXIO (SOCBASEERR+6) /* No such device or address */ 63#define SOCEBADF (SOCBASEERR+9) /* Bad file number */ 64#define SOCEACCES (SOCBASEERR+13) /* Permission denied */ 65#define SOCEFAULT (SOCBASEERR+14) /* Bad address */ 66#define SOCEINVAL (SOCBASEERR+22) /* Invalid argument */ 67#define SOCEMFILE (SOCBASEERR+24) /* Too many open files */ 68#define SOCEPIPE (SOCBASEERR+32) /* Broken pipe */ 69#define SOCEOS2ERR (SOCBASEERR+100) /* OS/2 Error */ 70 71const char *apr_inet_ntop(int af, const void *src, char *dst, apr_size_t size); 72int apr_inet_pton(int af, const char *src, void *dst); 73void apr_sockaddr_vars_set(apr_sockaddr_t *, int, apr_port_t); 74 75#endif /* ! NETWORK_IO_H */ 76 77