A modified version of
[p5sagit/p5-mst-13.2.git] / perlio.c
index dd1c9ce..c8047f8 100644 (file)
--- a/perlio.c
+++ b/perlio.c
@@ -684,8 +684,10 @@ PerlIO_apply_layers(pTHX_ PerlIO *f, const char *mode, const char *names)
               return -1;
             }
           }
-         else
+         else {
           Perl_warn(aTHX_ "perlio: unknown layer \"%.*s\"",(int)llen,s);
+         return -1;
+        }
         }
        s = e;
       }
@@ -1696,6 +1698,7 @@ PerlIOStdio_fdopen(PerlIO_funcs *self, int fd,const char *mode)
 IV
 PerlIOStdio_pushed(PerlIO *f, const char *mode, const char *arg, STRLEN len)
 {
+ dTHX;
  if (*PerlIONext(f))
   {
    PerlIOStdio *s = PerlIOSelf(f,PerlIOStdio);
@@ -1822,12 +1825,12 @@ IV
 PerlIOStdio_close(PerlIO *f)
 {
  dTHX;
-#ifdef HAS_SOCKET
+#ifdef HAS_SOCKS5_INIT
  int optval, optlen = sizeof(int);
 #endif
  FILE *stdio = PerlIOSelf(f,PerlIOStdio)->stdio;
  return(
-#ifdef HAS_SOCKET
+#ifdef HAS_SOCKS5_INIT
    (getsockopt(PerlIO_fileno(f), SOL_SOCKET, SO_TYPE, (char *)&optval, &optlen) < 0) ?
        PerlSIO_fclose(stdio) :
        close(PerlIO_fileno(f))