5 #define NTDDI_VERSION 0x06000000 10 w32error_make_error(
DWORD e)
17 w32error_raise(
DWORD e)
23 get_dns_server_list(
VALUE self)
25 FIXED_INFO *fixedinfo =
NULL;
30 ret = GetNetworkParams(
NULL, &buflen);
31 if (ret != NO_ERROR && ret != ERROR_BUFFER_OVERFLOW) {
34 fixedinfo =
ALLOCV(buf, buflen);
35 ret = GetNetworkParams(fixedinfo, &buflen);
36 if (ret == NO_ERROR) {
37 const IP_ADDR_STRING *ipaddr = &fixedinfo->DnsServerList;
40 const char *s = ipaddr->IpAddress.String;
42 if (strcmp(s,
"0.0.0.0") == 0)
continue;
44 }
while ((ipaddr = ipaddr->Next) !=
NULL);
47 if (ret != NO_ERROR) w32error_raise(ret);
void rb_define_private_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_ary_push(VALUE ary, VALUE item)
VALUE rb_path2class(const char *)
VALUE rb_singleton_class(VALUE obj)
Returns the singleton class of obj.
unsigned char buf[MIME_BUF_SIZE]
void rb_exc_raise(VALUE mesg)
Raises an exception in the current thread.
VALUE rb_str_new_cstr(const char *)
VALUE rb_define_module_under(VALUE outer, const char *name)
VALUE rb_class_new_instance(int, const VALUE *, VALUE)
Allocates and initializes an instance of klass.
VALUE rb_define_module(const char *name)