* Sebastian Hammer, Adam Dickmeiss
*
* $Log: tcpip.c,v $
- * Revision 1.18 1997-09-29 07:15:25 adam
+ * Revision 1.19 1998-02-11 11:53:33 adam
+ * Changed code so that it compiles as C++.
+ *
+ * Revision 1.18 1997/09/29 07:15:25 adam
* Changed use of setsockopt to avoid warnings on MSVC.
*
* Revision 1.17 1997/09/17 12:10:30 adam
#include <comstack.h>
#include <tcpip.h>
+/* Chas added the following 2, so we get the definition of completeBER */
+#include <odr.h>
+#include <prt.h>
+
int tcpip_close(COMSTACK h);
int tcpip_put(COMSTACK h, char *buf, int size);
int tcpip_get(COMSTACK h, char **buf, int *bufsize);
/*
* Determine length/completeness of incoming packages
*/
-int completeBER(unsigned char *buf, int len); /* from the ODR module */
+/* Chas: Removed the definition of completeBERfrom here, use the one in the */
+/* include directory as that as the extern "C" around it */
+/*int completeBER(unsigned char *buf, int len); */ /* from the ODR module */
int completeWAIS(unsigned char *buf, int len); /* from waislen.c */
#ifdef TRACE_TCPIP
}
else
new_socket = 0;
- if (!(p = xmalloc(sizeof(struct comstack))))
+ if (!(p = (struct comstack *)xmalloc(sizeof(struct comstack))))
return 0;
- if (!(state = p->cprivate = xmalloc(sizeof(tcpip_state))))
+ if (!(state = (struct tcpip_state *)(p->cprivate =
+ xmalloc(sizeof(tcpip_state)))))
return 0;
#ifdef WINDOWS
void *tcpip_straddr(COMSTACK h, const char *str)
{
- tcpip_state *sp = h->cprivate;
+ tcpip_state *sp = (tcpip_state *)h->cprivate;
if (!tcpip_strtoaddr_ex (str, &sp->addr))
return 0;
int tcpip_more(COMSTACK h)
{
- tcpip_state *sp = h->cprivate;
+ tcpip_state *sp = (tcpip_state *)h->cprivate;
return sp->altlen && (*sp->complete)((unsigned char *) sp->altbuf,
sp->altlen);
*/
int tcpip_connect(COMSTACK h, void *address)
{
- struct sockaddr_in *add = address;
+ struct sockaddr_in *add = (struct sockaddr_in *)address;
TRC(fprintf(stderr, "tcpip_connect\n"));
if (connect(h->iofile, (struct sockaddr *) add, sizeof(*add)) < 0)
int tcpip_bind(COMSTACK h, void *address, int mode)
{
- struct sockaddr *addr = address;
+ struct sockaddr *addr = (struct sockaddr *)address;
#ifdef WINDOWS
BOOL one = 1;
#else
#endif
TRC(fprintf(stderr, "tcpip_bind\n"));
- if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, (void*)
+ if (setsockopt(h->iofile, SOL_SOCKET, SO_REUSEADDR, (char*)
&one, sizeof(one)) < 0)
{
h->cerrno = CSYSERR;
COMSTACK tcpip_accept(COMSTACK h)
{
COMSTACK cnew;
- tcpip_state *state, *st = h->cprivate;
+ tcpip_state *state, *st = (tcpip_state *)h->cprivate;
#ifdef WINDOWS
unsigned long tru = 1;
#endif
h->cerrno = CSOUTSTATE;
return 0;
}
- if (!(cnew = xmalloc(sizeof(*cnew))))
+ if (!(cnew = (COMSTACK)xmalloc(sizeof(*cnew))))
{
h->cerrno = CSYSERR;
return 0;
}
memcpy(cnew, h, sizeof(*h));
cnew->iofile = h->newfd;
- if (!(state = cnew->cprivate = xmalloc(sizeof(tcpip_state))))
+ if (!(state = (tcpip_state *)(cnew->cprivate = xmalloc(sizeof(tcpip_state)))))
{
h->cerrno = CSYSERR;
return 0;
*/
int tcpip_get(COMSTACK h, char **buf, int *bufsize)
{
- tcpip_state *sp = h->cprivate;
+ tcpip_state *sp = (tcpip_state *)h->cprivate;
char *tmpc;
int tmpi, berlen, rest, req, tomove;
int hasread = 0, res;
{
if (!*bufsize)
{
- if (!(*buf = xmalloc(*bufsize = CS_TCPIP_BUFCHUNK)))
+ if (!(*buf = (char *)xmalloc(*bufsize = CS_TCPIP_BUFCHUNK)))
return -1;
}
else if (*bufsize - hasread < CS_TCPIP_BUFCHUNK)
- if (!(*buf =xrealloc(*buf, *bufsize *= 2)))
+ if (!(*buf =(char *)xrealloc(*buf, *bufsize *= 2)))
return -1;
if ((res = recv(h->iofile, *buf + hasread, CS_TCPIP_BUFCHUNK, 0)) < 0)
#ifdef WINDOWS
req += CS_TCPIP_BUFCHUNK - rest;
if (!sp->altbuf)
{
- if (!(sp->altbuf = xmalloc(sp->altsize = req)))
+ if (!(sp->altbuf = (char *)xmalloc(sp->altsize = req)))
return -1;
} else if (sp->altsize < req)
- if (!(sp->altbuf =xrealloc(sp->altbuf, sp->altsize = req)))
+ if (!(sp->altbuf =(char *)xrealloc(sp->altbuf, sp->altsize = req)))
return -1;
TRC(fprintf(stderr, " Moving %d bytes to altbuf(0x%x)\n", tomove,
(unsigned) sp->altbuf));
int tcpip_put(COMSTACK h, char *buf, int size)
{
int res;
- struct tcpip_state *state = h->cprivate;
+ struct tcpip_state *state = (struct tcpip_state *)h->cprivate;
TRC(fprintf(stderr, "tcpip_put: size=%d\n", size));
if (state->towrite < 0)
int tcpip_close(COMSTACK h)
{
- tcpip_state *sp = h->cprivate;
+ tcpip_state *sp = (struct tcpip_state *)h->cprivate;
TRC(fprintf(stderr, "tcpip_close\n"));
if (h->iofile != -1)
char *tcpip_addrstr(COMSTACK h)
{
struct sockaddr_in addr;
- tcpip_state *sp = h->cprivate;
+ tcpip_state *sp = (struct tcpip_state *)h->cprivate;
char *r, *buf = sp->buf;
int len;
struct hostent *host;