* Sebastian Hammer, Adam Dickmeiss
*
* $Log: tcpip.c,v $
- * Revision 1.13 1996-11-01 08:45:18 adam
+ * Revision 1.14 1997-05-01 15:06:32 adam
+ * Moved WINSOCK init. code to tcpip_init routine.
+ *
+ * Revision 1.13 1996/11/01 08:45:18 adam
* Bug fix: used close on MS-Windows. Fixed to closesocket.
*
* Revision 1.12 1996/07/06 19:58:30 quinn
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#ifndef WINDOWS
#include <unistd.h>
+#endif
#include <errno.h>
#include <fcntl.h>
#define TRC(X)
#endif
-static int initialized = 0;
-
typedef struct tcpip_state
{
char *altbuf; /* alternate buffer for surplus data */
int (*complete)(unsigned char *buf, int len); /* length/completeness */
} tcpip_state;
+#ifdef WINDOWS
+static int tcpip_init (void)
+{
+ static int initialized = 0;
+ if (!initialized)
+ {
+ WORD requested;
+ WSADATA wd;
+
+ requested = MAKEWORD(1, 1);
+ if (WSAStartup(requested, &wd))
+ return 0;
+ initialized = 1;
+ }
+ return 1;
+}
+#else
+static int tcpip_init (void)
+{
+ return 1;
+}
+#endif
/*
* This function is always called through the cs_create() macro.
* s >= 0: socket has already been established for us.
struct protoent *proto;
#endif
- if (!initialized)
- {
-#ifdef WINDOWS
- WORD requested;
- WSADATA wd;
-
- requested = MAKEWORD(1, 1);
- if (WSAStartup(requested, &wd))
- return 0;
-#endif
- initialized = 1;
- }
-
+ if (!tcpip_init ())
+ return 0;
if (s < 0)
{
#ifndef WINDOWS
short int port = 210;
unsigned tmpadd;
+ if (!tcpip_init ())
+ return 0;
TRC(fprintf(stderr, "tcpip_strtoaddress: %s\n", str ? str : "NULL"));
add.sin_family = AF_INET;
strcpy(buf, str);