set.uc 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. {%
  2. let o_local_bypass = "
  3. 0.0.0.0/8
  4. 10.0.0.0/8
  5. 100.64.0.0/10
  6. 127.0.0.0/8
  7. 169.254.0.0/16
  8. 172.16.0.0/12
  9. 192.0.0.0/24
  10. 192.0.2.0/24
  11. 192.31.196.0/24
  12. 192.52.193.0/24
  13. 192.88.99.0/24
  14. 192.168.0.0/16
  15. 192.175.48.0/24
  16. 198.18.0.0/15
  17. 198.51.100.0/24
  18. 203.0.113.0/24
  19. 224.0.0.0/4
  20. 240.0.0.0/4
  21. ";
  22. let set_suffix = {
  23. "acl_neteasemusic_http": {
  24. str: o_acl_http_addr,
  25. },
  26. "acl_neteasemusic_https": {
  27. str: o_acl_https_addr,
  28. },
  29. "local_addr": {
  30. str: o_local_bypass,
  31. },
  32. "neteasemusic": {
  33. str: o_neteasemusic_addr,
  34. },
  35. };
  36. function set_elements_parse(res, str) {
  37. for (let addr in split(str, /[ \t\n]/)) {
  38. addr = trim(addr);
  39. if (!addr) continue;
  40. push(res, addr);
  41. }
  42. }
  43. function set_elements(suf) {
  44. let obj = set_suffix[suf];
  45. let res = [];
  46. let addr;
  47. let str = obj["str"];
  48. if (str) {
  49. set_elements_parse(res, str);
  50. }
  51. return res;
  52. }
  53. %}
  54. {% for (let suf in set_suffix): %}
  55. set {{ suf }} {
  56. type ipv4_addr;
  57. flags interval;
  58. {% let elems = set_elements(suf); if (length(elems)): %}
  59. elements = {
  60. {% for (let i = 0; i < length(elems); i++): %}
  61. {{ elems[i] }}{% if (i < length(elems) - 1): %},{% endif %}{% print("\n") %}
  62. {% endfor %}
  63. }
  64. {% endif %}
  65. }
  66. {% endfor %}