comparison core/src/luan/modules/PackageLuan.java @ 277:8ac3eaf8ecd9

fix security git-svn-id: https://luan-java.googlecode.com/svn/trunk@278 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 21 Nov 2014 05:39:46 +0000
parents 1507149fc447
children 4a0a84c38617
comparison
equal deleted inserted replaced
276:e5a0dd95f3e7 277:8ac3eaf8ecd9
44 t.put( method, new LuanJavaFunction(PackageLuan.class.getMethod(method,parameterTypes),null) ); 44 t.put( method, new LuanJavaFunction(PackageLuan.class.getMethod(method,parameterTypes),null) );
45 } 45 }
46 46
47 public static LuanTable loaded(LuanState luan) { 47 public static LuanTable loaded(LuanState luan) {
48 return luan.registryTable("Package.loaded"); 48 return luan.registryTable("Package.loaded");
49 }
50
51 private static LuanTable blocked(LuanState luan) {
52 return luan.registryTable("Package.blocked");
53 } 49 }
54 50
55 private static Object pkg(LuanState luan,String key) { 51 private static Object pkg(LuanState luan,String key) {
56 LuanTable t = (LuanTable)loaded(luan).get("Package"); 52 LuanTable t = (LuanTable)loaded(luan).get("Package");
57 return t==null ? null : t.get(key); 53 return t==null ? null : t.get(key);
101 LuanFunction fn = loader(luan,modName,true); 97 LuanFunction fn = loader(luan,modName,true);
102 return fn==null ? null : new Object[]{fn,modName}; 98 return fn==null ? null : new Object[]{fn,modName};
103 } 99 }
104 100
105 101
106 public static void block(LuanState luan,String key) {
107 blocked(luan).put(key,true);
108 }
109
110 public static boolean is_blocked(LuanState luan,String key) {
111 return blocked(luan).get(key) != null;
112 }
113
114 public static LuanFunction load_lib(LuanState luan,String path) 102 public static LuanFunction load_lib(LuanState luan,String path)
115 throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, LuanException 103 throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException, LuanException
116 { 104 {
117 int i = path.lastIndexOf('.'); 105 int i = path.lastIndexOf('.');
118 String clsPath = path.substring(0,i); 106 String clsPath = path.substring(0,i);