Mercurial Hosting > luan
diff src/luan/modules/IoLuan.java @ 1330:f41919741100
fix security
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 11 Feb 2019 01:38:55 -0700 |
parents | 15af473045c4 |
children | 25746915a241 |
line wrap: on
line diff
--- a/src/luan/modules/IoLuan.java Sun Feb 10 02:01:49 2019 -0700 +++ b/src/luan/modules/IoLuan.java Mon Feb 11 01:38:55 2019 -0700 @@ -28,6 +28,7 @@ import java.nio.file.Files; import java.util.Enumeration; import java.util.Map; +import luan.Luan; import luan.LuanState; import luan.LuanTable; import luan.LuanFunction; @@ -640,44 +641,24 @@ } } - public static LuanTable my_ips(LuanState luan) throws IOException { + public static LuanTable my_ips(LuanState luan) throws IOException, LuanException { LuanTable tbl = new LuanTable(luan); for( Enumeration<NetworkInterface> e1 = NetworkInterface.getNetworkInterfaces(); e1.hasMoreElements(); ) { NetworkInterface ni = e1.nextElement(); for( Enumeration<InetAddress> e2 = ni.getInetAddresses(); e2.hasMoreElements(); ) { InetAddress ia = e2.nextElement(); if( ia instanceof Inet4Address ) - tbl.rawPut(ia.getHostAddress(),true); + tbl.put(ia.getHostAddress(),true); } } return tbl; } - // security - - public static void unrestricted(LuanState luan) throws LuanException { - JavaLuan.check(luan); - luan.javaOk.unrestrictedIo = true; - } - - public interface Security { - public void check(LuanState luan,String name) throws LuanException; + private static void check(LuanState luan,String name) throws LuanException { + Luan.checkSecurity(luan,"uri",name); } - private static String SECURITY_KEY = "Io.Security"; - - private static void check(LuanState luan,String name) throws LuanException { - if( luan.javaOk.unrestrictedIo ) - return; - Security s = (Security)luan.registry().get(SECURITY_KEY); - if( s!=null ) - s.check(luan,name); - } - - public static void setSecurity(LuanState luan,Security s) { - luan.registry().put(SECURITY_KEY,s); - } private void IoLuan() {} // never }