You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

addr.lua 953B

12345678910111213141516171819202122232425262728293031323334
  1. -- inet addr tests
  2. context("Inet addr check functions", function()
  3. local ffi = require("ffi")
  4. ffi.cdef[[
  5. typedef struct rspamd_inet_addr_s rspamd_inet_addr_t;
  6. bool rspamd_parse_inet_address (rspamd_inet_addr_t **target,
  7. const char *src);
  8. void rspamd_inet_address_free (rspamd_inet_addr_t *addr);
  9. ]]
  10. local cases = {
  11. {'192.168.1.1', true},
  12. {'2a01:4f8:190:43b5::99', true},
  13. {'256.1.1.1', false},
  14. {'/tmp/socket', true},
  15. {'./socket', true},
  16. {'[fe80::f919:8b26:ff93:3092%5]', true},
  17. {'[fe80::f919:8b26:ff93:3092]', true},
  18. }
  19. for i,c in ipairs(cases) do
  20. test("Create inet addr from string " .. i, function()
  21. local ip = ffi.new("rspamd_inet_addr_t* [1]");
  22. local res = ffi.C.rspamd_parse_inet_address(ip, c[1])
  23. assert_equal(res, c[2], "Expect " .. tostring(c[2]) .. " while parsing " .. c[1])
  24. if res then
  25. ffi.C.rspamd_inet_address_free(ip[0])
  26. end
  27. end)
  28. end
  29. end)