| ... | @@ -542,7 +542,7 @@ pub const ResolvConf = struct { | ... | @@ -542,7 +542,7 @@ pub const ResolvConf = struct { |
| 542 | error.NotDir, | 542 | error.NotDir, |
| 543 | error.AccessDenied, | 543 | error.AccessDenied, |
| 544 | => { | 544 | => { |
| 545 | try addNumeric(&rc, "127.0.0.1", 53); | 545 | try addNumeric(&rc, io, "127.0.0.1", 53); |
| 546 | return rc; | 546 | return rc; |
| 547 | }, | 547 | }, |
| 548 | | 548 | |
| ... | @@ -552,7 +552,7 @@ pub const ResolvConf = struct { | ... | @@ -552,7 +552,7 @@ pub const ResolvConf = struct { |
| 552 | | 552 | |
| 553 | var line_buf: [512]u8 = undefined; | 553 | var line_buf: [512]u8 = undefined; |
| 554 | var file_reader = file.reader(io, &line_buf); | 554 | var file_reader = file.reader(io, &line_buf); |
| 555 | parse(&rc, &file_reader.interface) catch |err| switch (err) { | 555 | parse(&rc, io, &file_reader.interface) catch |err| switch (err) { |
| 556 | error.ReadFailed => return file_reader.err.?, | 556 | error.ReadFailed => return file_reader.err.?, |
| 557 | else => |e| return e, | 557 | else => |e| return e, |
| 558 | }; | 558 | }; |
| ... | @@ -562,7 +562,7 @@ pub const ResolvConf = struct { | ... | @@ -562,7 +562,7 @@ pub const ResolvConf = struct { |
| 562 | const Directive = enum { options, nameserver, domain, search }; | 562 | const Directive = enum { options, nameserver, domain, search }; |
| 563 | const Option = enum { ndots, attempts, timeout }; | 563 | const Option = enum { ndots, attempts, timeout }; |
| 564 | | 564 | |
| 565 | fn parse(rc: *ResolvConf, reader: *Io.Reader) !void { | 565 | fn parse(rc: *ResolvConf, io: Io, reader: *Io.Reader) !void { |
| 566 | while (reader.takeSentinel('\n')) |line_with_comment| { | 566 | while (reader.takeSentinel('\n')) |line_with_comment| { |
| 567 | const line = line: { | 567 | const line = line: { |
| 568 | var split = std.mem.splitScalar(u8, line_with_comment, '#'); | 568 | var split = std.mem.splitScalar(u8, line_with_comment, '#'); |
| ... | @@ -588,7 +588,7 @@ pub const ResolvConf = struct { | ... | @@ -588,7 +588,7 @@ pub const ResolvConf = struct { |
| 588 | }, | 588 | }, |
| 589 | .nameserver => { | 589 | .nameserver => { |
| 590 | const ip_txt = line_it.next() orelse continue; | 590 | const ip_txt = line_it.next() orelse continue; |
| 591 | try addNumeric(rc, ip_txt, 53); | 591 | try addNumeric(rc, io, ip_txt, 53); |
| 592 | }, | 592 | }, |
| 593 | .domain, .search => { | 593 | .domain, .search => { |
| 594 | const rest = line_it.rest(); | 594 | const rest = line_it.rest(); |
| ... | @@ -602,13 +602,13 @@ pub const ResolvConf = struct { | ... | @@ -602,13 +602,13 @@ pub const ResolvConf = struct { |
| 602 | } | 602 | } |
| 603 | | 603 | |
| 604 | if (rc.nameservers_len == 0) { | 604 | if (rc.nameservers_len == 0) { |
| 605 | try addNumeric(rc, "127.0.0.1", 53); | 605 | try addNumeric(rc, io, "127.0.0.1", 53); |
| 606 | } | 606 | } |
| 607 | } | 607 | } |
| 608 | | 608 | |
| 609 | fn addNumeric(rc: *ResolvConf, name: []const u8, port: u16) !void { | 609 | fn addNumeric(rc: *ResolvConf, io: Io, name: []const u8, port: u16) !void { |
| 610 | assert(rc.nameservers_len < rc.nameservers_buffer.len); | 610 | assert(rc.nameservers_len < rc.nameservers_buffer.len); |
| 611 | rc.nameservers_buffer[rc.nameservers_len] = try .parse(name, port); | 611 | rc.nameservers_buffer[rc.nameservers_len] = try .resolve(io, name, port); |
| 612 | rc.nameservers_len += 1; | 612 | rc.nameservers_len += 1; |
| 613 | } | 613 | } |
| 614 | | 614 | |