struct servent*s,
const char *proto);
-#ifdef USE_THREADS
-#ifdef USE_DECLSPEC_THREAD
-__declspec(thread) struct servent myservent;
-__declspec(thread) int init_socktype;
-#else
-#define myservent (thr->i.Wservent)
-#define init_socktype (thr->i.Winit_socktype)
-#endif
-#else
-static struct servent myservent;
-#endif
-
static int wsock_started = 0;
void
start_sockets(void)
{
+ dTHXo;
unsigned short version;
WSADATA retdata;
int ret;
- dPERLOBJ;
/*
* initalize the winsock interface and insure that it is
#ifdef USE_SOCKETS_AS_HANDLES
#ifdef USE_THREADS
dTHX;
- if(!init_socktype) {
+ if (!w32_init_socktype) {
#endif
- int iSockOpt = SO_SYNCHRONOUS_NONALERT;
- /*
- * Enable the use of sockets as filehandles
- */
- setsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE,
- (char *)&iSockOpt, sizeof(iSockOpt));
+ int iSockOpt = SO_SYNCHRONOUS_NONALERT;
+ /*
+ * Enable the use of sockets as filehandles
+ */
+ setsockopt(INVALID_SOCKET, SOL_SOCKET, SO_OPENTYPE,
+ (char *)&iSockOpt, sizeof(iSockOpt));
#ifdef USE_THREADS
- init_socktype = 1;
+ w32_init_socktype = 1;
}
#endif
#endif /* USE_SOCKETS_AS_HANDLES */
struct servent *
win32_getservbyname(const char *name, const char *proto)
{
+ dTHXo;
struct servent *r;
- dTHX;
SOCKET_TEST(r = getservbyname(name, proto), NULL);
if (r) {
- r = win32_savecopyservent(&myservent, r, proto);
+ r = win32_savecopyservent(&w32_servent, r, proto);
}
return r;
}
struct servent *
win32_getservbyport(int port, const char *proto)
{
+ dTHXo;
struct servent *r;
- dTHX;
SOCKET_TEST(r = getservbyport(port, proto), NULL);
if (r) {
- r = win32_savecopyservent(&myservent, r, proto);
+ r = win32_savecopyservent(&w32_servent, r, proto);
}
return r;
}
int
win32_ioctl(int i, unsigned int u, char *data)
{
+ dTHXo;
u_long argp = (u_long)data;
int retval;
- dPERLOBJ;
if (!wsock_started) {
Perl_croak_nocontext("ioctl implemented only on sockets");
void
win32_endhostent()
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("endhostent not implemented!\n");
}
void
win32_endnetent()
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("endnetent not implemented!\n");
}
void
win32_endprotoent()
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("endprotoent not implemented!\n");
}
void
win32_endservent()
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("endservent not implemented!\n");
}
struct netent *
win32_getnetent(void)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("getnetent not implemented!\n");
return (struct netent *) NULL;
}
struct netent *
win32_getnetbyname(char *name)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("getnetbyname not implemented!\n");
return (struct netent *)NULL;
}
struct netent *
win32_getnetbyaddr(long net, int type)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("getnetbyaddr not implemented!\n");
return (struct netent *)NULL;
}
struct protoent *
win32_getprotoent(void)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("getprotoent not implemented!\n");
return (struct protoent *) NULL;
}
struct servent *
win32_getservent(void)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("getservent not implemented!\n");
return (struct servent *) NULL;
}
void
win32_sethostent(int stayopen)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("sethostent not implemented!\n");
}
void
win32_setnetent(int stayopen)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("setnetent not implemented!\n");
}
void
win32_setprotoent(int stayopen)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("setprotoent not implemented!\n");
}
void
win32_setservent(int stayopen)
{
- dPERLOBJ;
+ dTHXo;
Perl_croak_nocontext("setservent not implemented!\n");
}