diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-04-03 07:06:12 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-04-03 07:06:12 +0000 |
commit | 13c6d55afa635942d3703ea1d73eb249186edfd4 (patch) | |
tree | f74beb40afa9d7242d655be2d8d4a6e799c05c53 /pp_sys.c | |
parent | e336de0d01f30cc4061b6d6a00d11df30fc67cd3 (diff) | |
parent | a1896f58c36512e60681e1b3d5e3658044b57e2d (diff) | |
download | perl-13c6d55afa635942d3703ea1d73eb249186edfd4.tar.gz |
[win32] integrate mainline
p4raw-id: //depot/win32/perl@865
Diffstat (limited to 'pp_sys.c')
-rw-r--r-- | pp_sys.c | 81 |
1 files changed, 53 insertions, 28 deletions
@@ -54,7 +54,11 @@ extern "C" int syscall(unsigned long,...); #endif #endif -#ifdef HOST_NOT_FOUND +/* XXX Configure test needed. + h_errno might not be a simple 'int', especially for multi-threaded + applications. HOST_NOT_FOUND is typically defined in <netdb.h>. +*/ +#if defined(HOST_NOT_FOUND) && !defined(h_errno) extern int h_errno; #endif @@ -2107,7 +2111,7 @@ PP(pp_stat) laststatval = PerlLIO_lstat(SvPV(statname, na), &statcache); else #endif - laststatval = Stat(SvPV(statname, na), &statcache); + laststatval = PerlLIO_stat(SvPV(statname, na), &statcache); if (laststatval < 0) { if (dowarn && strchr(SvPV(statname, na), '\n')) warn(warn_nl, "stat"); @@ -2678,11 +2682,11 @@ PP(pp_rename) #ifdef HAS_RENAME anum = rename(tmps, tmps2); #else - if (!(anum = Stat(tmps, &statbuf))) { + if (!(anum = PerlLIO_stat(tmps, &statbuf))) { if (same_dirent(tmps2, tmps)) /* can always rename to same name */ anum = 1; else { - if (euid || Stat(tmps2, &statbuf) < 0 || !S_ISDIR(statbuf.st_mode)) + if (euid || PerlLIO_stat(tmps2, &statbuf) < 0 || !S_ISDIR(statbuf.st_mode)) (void)UNLINK(tmps2); if (!(anum = link(tmps, tmps2))) anum = UNLINK(tmps); @@ -2819,7 +2823,7 @@ char *filename; return 0; } else { /* some mkdirs return no failure indication */ - anum = (Stat(save_filename, &statbuf) >= 0); + anum = (PerlLIO_stat(save_filename, &statbuf) >= 0); if (op->op_type == OP_RMDIR) anum = !anum; if (anum) @@ -3621,33 +3625,38 @@ PP(pp_ghostent) I32 which = op->op_type; register char **elem; register SV *sv; -#if defined(HAS_GETHOSTENT) && !defined(DONT_DECLARE_STD) +#ifndef HAS_GETHOST_PROTOS /* XXX Do we need individual probes? */ struct hostent *PerlSock_gethostbyaddr(Netdb_host_t, Netdb_hlen_t, int); struct hostent *PerlSock_gethostbyname(Netdb_name_t); -#ifndef PerlSock_gethostent struct hostent *PerlSock_gethostent(void); #endif -#endif struct hostent *hent; unsigned long len; EXTEND(SP, 10); - if (which == OP_GHBYNAME) { + if (which == OP_GHBYNAME) +#ifdef HAS_GETHOSTBYNAME hent = PerlSock_gethostbyname(POPp); - } +#else + DIE(no_sock_func, "gethostbyname"); +#endif else if (which == OP_GHBYADDR) { +#ifdef HAS_GETHOSTBYADDR int addrtype = POPi; SV *addrsv = POPs; STRLEN addrlen; Netdb_host_t addr = (Netdb_host_t) SvPV(addrsv, addrlen); hent = PerlSock_gethostbyaddr(addr, (Netdb_hlen_t) addrlen, addrtype); +#else + DIE(no_sock_func, "gethostbyaddr"); +#endif } else #ifdef HAS_GETHOSTENT hent = PerlSock_gethostent(); #else - DIE("gethostent not implemented"); + DIE(no_sock_func, "gethostent"); #endif #ifdef HOST_NOT_FOUND @@ -3724,22 +3733,34 @@ PP(pp_gnetent) I32 which = op->op_type; register char **elem; register SV *sv; -#ifdef NETDB_H_OMITS_GETNET - struct netent *getnetbyaddr(Netdb_net_t, int); - struct netent *getnetbyname(Netdb_name_t); - struct netent *getnetent(void); +#ifndef HAS_GETNET_PROTOS /* XXX Do we need individual probes? */ + struct netent *PerlSock_getnetbyaddr(Netdb_net_t, int); + struct netent *PerlSock_getnetbyname(Netdb_name_t); + struct netent *PerlSock_getnetent(void); #endif struct netent *nent; if (which == OP_GNBYNAME) - nent = getnetbyname(POPp); +#ifdef HAS_GETNETBYNAME + nent = PerlSock_getnetbyname(POPp); +#else + DIE(no_sock_func, "getnetbyname"); +#endif else if (which == OP_GNBYADDR) { +#ifdef HAS_GETNETBYADDR int addrtype = POPi; Netdb_net_t addr = (Netdb_net_t) U_L(POPn); - nent = getnetbyaddr(addr, addrtype); + nent = PerlSock_getnetbyaddr(addr, addrtype); +#else + DIE(no_sock_func, "getnetbyaddr"); +#endif } else - nent = getnetent(); +#ifdef HAS_GETNETENT + nent = PerlSock_getnetent(); +#else + DIE(no_sock_func, "getnetent"); +#endif EXTEND(SP, 4); if (GIMME != G_ARRAY) { @@ -3799,13 +3820,11 @@ PP(pp_gprotoent) I32 which = op->op_type; register char **elem; register SV *sv; -#ifndef DONT_DECLARE_STD +#ifndef HAS_GETPROTO_PROTOS /* XXX Do we need individual probes? */ struct protoent *PerlSock_getprotobyname(Netdb_name_t); struct protoent *PerlSock_getprotobynumber(int); -#ifndef PerlSock_getprotoent struct protoent *PerlSock_getprotoent(void); #endif -#endif struct protoent *pent; if (which == OP_GPBYNAME) @@ -3883,16 +3902,15 @@ PP(pp_gservent) I32 which = op->op_type; register char **elem; register SV *sv; -#ifndef DONT_DECLARE_STD +#ifndef HAS_GETSERV_PROTOS /* XXX Do we need individual probes? */ struct servent *PerlSock_getservbyname(Netdb_name_t, Netdb_name_t); struct servent *PerlSock_getservbyport(int, Netdb_name_t); -#ifndef PerlSock_getservent struct servent *PerlSock_getservent(void); #endif -#endif struct servent *sent; if (which == OP_GSBYNAME) { +#ifdef HAS_GETSERVBYNAME char *proto = POPp; char *name = POPp; @@ -3900,8 +3918,12 @@ PP(pp_gservent) proto = Nullch; sent = PerlSock_getservbyname(name, proto); +#else + DIE(no_sock_func, "getservbyname"); +#endif } else if (which == OP_GSBYPORT) { +#ifdef HAS_GETSERVBYPORT char *proto = POPp; unsigned short port = POPu; @@ -3909,6 +3931,9 @@ PP(pp_gservent) port = PerlSock_htons(port); #endif sent = PerlSock_getservbyport(port, proto); +#else + DIE(no_sock_func, "getservbyport"); +#endif } else #ifdef HAS_GETSERVENT @@ -4007,7 +4032,7 @@ PP(pp_ehostent) { djSP; #ifdef HAS_ENDHOSTENT - endhostent(); + PerlSock_endhostent(); EXTEND(SP,1); RETPUSHYES; #else @@ -4019,7 +4044,7 @@ PP(pp_enetent) { djSP; #ifdef HAS_ENDNETENT - endnetent(); + PerlSock_endnetent(); EXTEND(SP,1); RETPUSHYES; #else @@ -4031,7 +4056,7 @@ PP(pp_eprotoent) { djSP; #ifdef HAS_ENDPROTOENT - endprotoent(); + PerlSock_endprotoent(); EXTEND(SP,1); RETPUSHYES; #else @@ -4043,7 +4068,7 @@ PP(pp_eservent) { djSP; #ifdef HAS_ENDSERVENT - endservent(); + PerlSock_endservent(); EXTEND(SP,1); RETPUSHYES; #else |