1 import * as uci from "uci"; 2 import * as uloop from "uloop"; 3 import * as libubus from "ubus"; 4 import { access, dirname } from "fs"; 5 6 function ex_handler(e) 7 { 8 netifd.log(netifd.L_WARNING, `Exception: ${e}\n${e.stacktrace[0].context}\n`); 9 } 10 11 uloop.guard(ex_handler); 12 libubus.guard(ex_handler); 13 14 let ubus = netifd.ubus = libubus.connect(); 15 let wireless; 16 17 function uci_ctx() 18 { 19 let savedir = netifd.dummy_mode ? "./tmp" : null; 20 let ctx = uci.cursor(netifd.config_path, savedir, null, { 21 strict: false 22 }); 23 return ctx; 24 } 25 26 function config_init() 27 { 28 let ctx = uci_ctx(); 29 30 if (wireless) 31 wireless.config_init(ctx); 32 } 33 34 function config_start() 35 { 36 if (wireless) 37 wireless.config_start(); 38 } 39 40 function check_interfaces() 41 { 42 if (wireless) 43 wireless.check_interfaces(); 44 } 45 46 function hotplug(name, add) 47 { 48 if (wireless) 49 wireless.hotplug(name, add); 50 } 51 52 function ex_wrap(cb) 53 { 54 let fn = cb; 55 return (...args) => { 56 try { 57 return fn(...args); 58 } catch (e) { 59 netifd.log(netifd.L_WARNING, `${e}\n${e.stacktrace[0].context}`); 60 } 61 }; 62 } 63 64 netifd.cb = { 65 hotplug: ex_wrap(hotplug), 66 config_init: ex_wrap(config_init), 67 config_start: ex_wrap(config_start), 68 check_interfaces: ex_wrap(check_interfaces), 69 }; 70 71 const wireless_module = dirname(sourcepath()) + "/wireless.uc"; 72 if (access(wireless_module, "r")) { 73 try { 74 wireless = loadfile(wireless_module)(); 75 } catch (e) { 76 netifd.log(netifd.L_WARNING, `Error loading wireless module: ${e}\n${e.stacktrace[0].context}\n`); 77 } 78 } else { 79 netifd.log(netifd.L_WARNING, `Wireless module not found\n`); 80 }
This page was automatically generated by LXR 0.3.1. • OpenWrt