Main Page | Class List | File List | Class Members | File Members | Related Pages

gi_sockapi.h

Go to the documentation of this file.
00001 /* 00002 * $Id: gi_sockapi.h,v 1.1.2.11 2003/12/15 08:03:47 jasta Exp $ 00003 * 00004 * Copyright (C) 2003 giFT project (gift.sourceforge.net) 00005 * 00006 * This program is free software; you can redistribute it and/or modify it 00007 * under the terms of the GNU General Public License as published by the 00008 * Free Software Foundation; either version 2, or (at your option) any 00009 * later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, but 00012 * WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * General Public License for more details. 00015 */ 00016 00017 #ifndef __GI_SOCKAPI_H 00018 #define __GI_SOCKAPI_H 00019 00020 /*****************************************************************************/ 00021 00032 /*****************************************************************************/ 00033 00034 #include <sys/types.h> 00035 00036 #ifdef WIN32 00037 # include <winsock2.h> 00038 # include <windows.h> 00039 #else /* !WIN32 */ 00040 # include <sys/socket.h> 00041 # include <netinet/in.h> 00042 # include <arpa/inet.h> 00043 # include <netdb.h> 00044 #endif /* WIN32 */ 00045 00046 /* some platforms don't have these defined, so we'll help translate them */ 00047 #ifndef AF_UNIX 00048 # define AF_UNIX AF_INET 00049 #endif 00050 00051 #ifndef AF_LOCAL 00052 # define AF_LOCAL AF_UNIX 00053 #endif 00054 00055 /*****************************************************************************/ 00056 00057 EXTERN_C_BEGIN 00058 00059 /*****************************************************************************/ 00060 00068 LIBGIFT_EXPORT 00069 int gi_sock_init (void); 00070 00078 LIBGIFT_EXPORT 00079 int gi_sock_finish (void); 00080 00081 /*****************************************************************************/ 00082 00087 LIBGIFT_EXPORT 00088 int gi_sock_errno (void); 00089 00093 LIBGIFT_EXPORT 00094 char *gi_sock_strerror (int errno_ish); 00095 00100 LIBGIFT_EXPORT 00101 char *gi_sock_strerrno (void); 00102 00103 /*****************************************************************************/ 00104 00108 LIBGIFT_EXPORT 00109 int gi_sock_close (int fd); 00110 00125 LIBGIFT_EXPORT 00126 int gi_sock_connect (int fd, struct sockaddr *saddr, size_t len); 00127 00128 #define gi_sockin_connect(fd,saddr,len) \ 00129 gi_sock_connect(fd,(struct sockaddr*)saddr,len) 00130 00131 #define gi_sockun_connect(fd,saddr,len) \ 00132 gi_sockin_connect(fd,saddr,len) 00133 00137 LIBGIFT_EXPORT 00138 int gi_sock_accept (int fd, struct sockaddr *saddr, size_t *len); 00139 00140 #define gi_sockin_accept(fd,saddr,len) \ 00141 gi_sock_accept(fd,(struct sockaddr*)saddr,len) 00142 00143 #define gi_sockun_accept(fd,saddr,len) \ 00144 gi_sockin_accept(fd,saddr,len) 00145 00149 LIBGIFT_EXPORT 00150 int gi_sock_bind (int fd, struct sockaddr *saddr, size_t len); 00151 00152 #define gi_sockin_bind(fd,saddr,len) \ 00153 gi_sock_bind(fd,(struct sockaddr*)saddr,len) 00154 00155 #define gi_sockun_bind(fd,saddr,len) \ 00156 gi_sockin_bind(fd,saddr,len) 00157 00158 /*****************************************************************************/ 00159 00167 LIBGIFT_EXPORT 00168 int gi_sock_blocking (int fd, bool blocking); 00169 00174 LIBGIFT_EXPORT 00175 int gi_sock_getopt (int fd, int level, int name, void *opt, size_t *len); 00176 00181 LIBGIFT_EXPORT 00182 int gi_sock_setopt (int fd, int level, int name, const void *opt, size_t len); 00183 00184 /*****************************************************************************/ 00185 00189 LIBGIFT_EXPORT 00190 int gi_sock_peername (int fd, struct sockaddr *name, size_t *len); 00191 00192 #define gi_sockin_peername(fd,name,len) \ 00193 gi_sock_peername(fd,(struct sockaddr*)name,len) 00194 00195 #define gi_sockun_peername(fd,name,len) \ 00196 gi_sockin_peername(fd,name,len) 00197 00201 LIBGIFT_EXPORT 00202 int gi_sock_name (int fd, struct sockaddr *name, size_t *len); 00203 00204 #define gi_sockin_name(fd,name,len) \ 00205 gi_sock_name(fd,(struct sockaddr*)name,len) 00206 00207 #define gi_sockun_name(fd,name,len) \ 00208 gi_sockin_name(fd,name,len) 00209 00210 /*****************************************************************************/ 00211 00216 LIBGIFT_EXPORT 00217 int gi_sock_recvfrom (int fd, void *buf, size_t buf_len, int flags, 00218 struct sockaddr *src, size_t *src_len); 00219 00220 #define gi_sockin_recvfrom(fd,buf,buf_len,flags,src,src_len) \ 00221 gi_sock_recvfrom(fd,buf,buf_len,flags,(struct sockaddr*)src,src_len) 00222 00223 #define gi_sockun_recvfrom(fd,buf,buf_len,flags,src,src_len) \ 00224 gi_sockin_recvfrom(fd,buf,buf_len,flags,src,src_len) 00225 00230 LIBGIFT_EXPORT 00231 int gi_sock_sendto (int fd, const void *buf, size_t buf_len, int flags, 00232 struct sockaddr *dst, size_t dst_len); 00233 00234 #define gi_sockin_sendto(fd,buf,buf_len,flags,dst,dst_len) \ 00235 gi_sock_sendto(fd,buf,buf_len,flags,(struct sockaddr*)dst,dst_len) 00236 00237 /*****************************************************************************/ 00238 00243 LIBGIFT_EXPORT 00244 int gi_sock_recv (int fd, void *buf, size_t buf_len, int flags); 00245 00250 LIBGIFT_EXPORT 00251 int gi_sock_send (int fd, const void *buf, size_t buf_len, int flags); 00252 00253 /*****************************************************************************/ 00254 00258 LIBGIFT_EXPORT 00259 int gi_inet_pton (int family, const char *src, void *dst); 00260 00264 LIBGIFT_EXPORT 00265 char *gi_inet_ntop (int family, const void *src, char *dst, size_t dst_len); 00266 00267 /*****************************************************************************/ 00268 00269 #ifndef HAVE_SOCKETPAIR 00270 00282 LIBGIFT_EXPORT 00283 int socketpair (int family, int type, int protocol, int sv[2]); 00284 #endif /* !HAVE_SOCKETPAIR */ 00285 00286 /*****************************************************************************/ 00287 00288 EXTERN_C_END 00289 00290 /*****************************************************************************/ 00291 00292 #endif /* __GI_SOCKAPI_H */

Generated on Sun Aug 22 07:56:40 2004 by doxygen 1.3.7