PageRenderTime 29ms CodeModel.GetById 23ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/library/server/fcgi/spec/include/libfcgi/fcgios.h

http://github.com/jocelyn/EiffelWebReloaded
C++ Header | 130 lines | 84 code | 20 blank | 26 comment | 4 complexity | d7f7c1317851bd53dfd4a631ac9694fd MD5 | raw file
  1/*
  2 * fcgios.h --
  3 *
  4 *      Description of file.
  5 *
  6 *
  7 *  Copyright (c) 1996 Open Market, Inc.
  8 *  All rights reserved.
  9 *
 10 *  This file contains proprietary and confidential information and
 11 *  remains the unpublished property of Open Market, Inc. Use,
 12 *  disclosure, or reproduction is prohibited except as permitted by
 13 *  express written license agreement with Open Market, Inc.
 14 *
 15 *  Bill Snapper
 16 *  snapper@openmarket.com
 17 */
 18#ifndef _FCGIOS_H

 19#define _FCGIOS_H

 20
 21#ifdef _WIN32

 22#define WIN32_LEAN_AND_MEAN 

 23#include <windows.h>

 24#include <winsock2.h>

 25#endif

 26
 27#include "fcgi_config.h"

 28
 29#ifdef HAVE_SYS_TIME_H

 30#include <sys/time.h>

 31#endif

 32
 33#ifdef HAVE_SYS_TYPES_H

 34#include <sys/types.h>

 35#endif

 36
 37#if defined (c_plusplus) || defined (__cplusplus)

 38extern "C" {
 39#endif

 40
 41#ifdef _WIN32

 42#define OS_Errno GetLastError()

 43#define OS_SetErrno(err) SetLastError(err)

 44#ifndef O_NONBLOCK

 45#define O_NONBLOCK     0x0004  /* no delay */

 46#endif

 47#else /* !_WIN32 */

 48#define OS_Errno errno

 49#define OS_SetErrno(err) errno = (err)

 50#endif /* !_WIN32 */

 51
 52#ifndef DLLAPI

 53#ifdef _WIN32

 54#define DLLAPI __declspec(dllimport)

 55#else

 56#define DLLAPI

 57#endif

 58#endif

 59
 60
 61/* This is the initializer for a "struct timeval" used in a select() call
 62 * right after a new request is accept()ed to determine readablity.  Its
 63 * a drop-dead timer.  Its only used for AF_UNIX sockets (not TCP sockets).
 64 * Its a workaround for a kernel bug in Linux 2.0.x and SCO Unixware.
 65 * Making this as small as possible, yet remain reliable would be best.
 66 * 2 seconds is very conservative.  0,0 is not reliable.  The shorter the
 67 * timeout, the faster request processing will recover.  The longer the
 68 * timeout, the more likely this application being "busy" will cause other
 69 * requests to abort and cause more dead sockets that need this timeout. */
 70#define READABLE_UNIX_FD_DROP_DEAD_TIMEVAL 2,0

 71
 72#ifndef STDIN_FILENO

 73#define STDIN_FILENO  0

 74#endif

 75
 76#ifndef STDOUT_FILENO

 77#define STDOUT_FILENO 1

 78#endif

 79
 80#ifndef STDERR_FILENO

 81#define STDERR_FILENO 2

 82#endif

 83
 84#ifndef MAXPATHLEN

 85#define MAXPATHLEN 1024

 86#endif

 87
 88#ifndef X_OK

 89#define X_OK       0x01

 90#endif

 91
 92#ifndef _CLIENTDATA

 93#   if defined(__STDC__) || defined(__cplusplus)

 94    typedef void *ClientData;
 95#   else

 96    typedef int *ClientData;
 97#   endif /* __STDC__ */

 98#define _CLIENTDATA

 99#endif

100
101typedef void (*OS_AsyncProc) (ClientData clientData, int len);
102
103DLLAPI int OS_LibInit(int stdioFds[3]);
104DLLAPI void OS_LibShutdown(void);
105DLLAPI int OS_CreateLocalIpcFd(const char *bindPath, int backlog);
106DLLAPI int OS_FcgiConnect(char *bindPath);
107DLLAPI int OS_Read(int fd, char * buf, size_t len);
108DLLAPI int OS_Write(int fd, char * buf, size_t len);
109DLLAPI int OS_SpawnChild(char *execPath, int listenFd);
110DLLAPI int OS_AsyncReadStdin(void *buf, int len, OS_AsyncProc procPtr,
111                      ClientData clientData);
112DLLAPI int OS_AsyncRead(int fd, int offset, void *buf, int len,
113		 OS_AsyncProc procPtr, ClientData clientData);
114DLLAPI int OS_AsyncWrite(int fd, int offset, void *buf, int len,
115		  OS_AsyncProc procPtr, ClientData clientData);
116DLLAPI int OS_Close(int fd);
117DLLAPI int OS_CloseRead(int fd);
118DLLAPI int OS_DoIo(struct timeval *tmo);
119DLLAPI int OS_Accept(int listen_sock, int fail_on_intr, const char *webServerAddrs);
120DLLAPI int OS_IpcClose(int ipcFd);
121DLLAPI int OS_IsFcgi(int sock);
122DLLAPI void OS_SetFlags(int fd, int flags);
123
124DLLAPI void OS_ShutdownPending(void);
125
126#if defined (__cplusplus) || defined (c_plusplus)

127} /* terminate extern "C" { */
128#endif

129
130#endif /* _FCGIOS_H */