// Sample code file: myio.h
// Warning: This code has been marked up for HTML
/*
//ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
//º (c) 1998 - 2002 Novell, Inc. All rights reserved. º
//º º
//º THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND º
//º TREATIES. º
//º º
//º NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED, COPIED, º
//º DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED, CONDENSED, º
//º EXPANDED, COLLECTED, COMPILED, LINKED, RECAST, TRANSFORMED OR ADAPTED º
//º WITHOUT THE PRIOR WRITTEN CONSENT OF NOVELL, INC. º
//º º
//º ANY USE OR EXPLOITATION OF THIS WORK WITHOUT AUTHORIZATION COULD SUBJECT º
//º THE PERPETRATOR TO CRIMINAL AND CIVIL LIABILITY. º
//ÌÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹
//º Source module name: MYIO.H º
//ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
*/
/*ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
//º º
//º PARENT PROGRAM: NDPSGW.NLM - NDPS Gateway: º
//º with 'accessories' (currently just SNMP/disabled) º
//º º
//º DESCRIPTION: Header for Portal specific code - IPP º
//º º
//º PROGRAMMERS: Hugo Parra º
//º º
//º HISTORY: º
//º July 1998 Coded by Hugo Parra º
//º º
//ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
*/
/* Inclusion Control */
#ifndef MYIO_H
#define MYIO_H
/* Standard Library Header Includes */
#ifndef ULONG
#define ULONG nuint32 /* needed for qos.h */
#endif
#ifndef UCHAR
#define UCHAR nuint8 /* needed for qos.h */
#endif
// #include "qos-fix.h" /* fix for missing xplat\000815\qos.h for ws2nlm.h */
#include <qos.h>
#include <ws2nlm.h>
/* Header Includes */
#ifdef MYIO_C
#define EXTERN
#else
#define EXTERN extern
#endif /* MYIO_C */
/* Manifest Constant Definitions */
#define REQ_BUF_SIZE 8192
/* Macro Definitions */
/* Type Definitions */
typedef struct
{
SOCKET sock;
LONG reqLen;
BYTE *buf;
LONG bufSize;
nint32 chunked;
nint32 leftInChunk;
char *curPtr;
char *maxPtr;
} ParserBuffer;
typedef struct _RequestBuffer
{
struct _RequestBuffer *nextPtr;
char *curPtr;
char buf[REQ_BUF_SIZE];
} RequestBuffer;
typedef LONG (* ParseBufReadRemainderCallbackFPtr)(
LONG len,
char *buf,
LONG more,
void *parmPtr );
/* Structure Definitions */
/* Global Variable Declarations */
#ifdef MYIO_C
nint32 maxXferBufferSizeGbl = 0x10000; /* 64K */
#else
extern nint32 maxXferBufferSizeGbl;
#endif /* MYIO_C */
/* Function Prototype Declarations */
LONG ParseBufCreate(
SOCKET sock,
LONG reqLen,
// char *readAheadPtr,
// LONG readAheadLen,
ParserBuffer **pBuf );
void ParseBufDestroy(
ParserBuffer **pBuf );
LONG ParseBufReadChar(
ParserBuffer *pBufPtr,
char *chPtr );
LONG ParseBufReadShort(
ParserBuffer *pBufPtr,
nint16 *sShortPtr );
LONG ParseBufReadLong(
ParserBuffer *pBufPtr,
nint32 *sLongPtr );
LONG ParseBufReadOctetStr(
ParserBuffer *pBufPtr,
LONG len,
char *bufPtr );
LONG ParseBufReadName(
ParserBuffer *pBufPtr,
nint16 len,
char *namePtr );
LONG ParseBufReadRemainder(
ParserBuffer *pBufPtr,
ParseBufReadRemainderCallbackFPtr callbackFunc,
void *parmPtr );
LONG ReqBufCreate(
RequestBuffer **resBuf );
void ReqBufDestroy(
RequestBuffer *resBuf );
LONG ReqBufWriteChar(
RequestBuffer **resBuf,
char ch );
LONG ReqBufWriteShort(
RequestBuffer **resBuf,
nint16 num16 );
LONG ReqBufWriteLong(
RequestBuffer **resBuf,
nint32 num32 );
LONG ReqBufWriteOctetStr(
RequestBuffer **resBuf,
char *buf,
LONG len );
#undef EXTERN
#endif /* MYIO_H */