bump to zig 0.11.0-dev.3735+a72d634b7
This commit is contained in:
parent
f723d48fe2
commit
ff0f5bca77
@ -33,7 +33,7 @@ Project goals
|
||||
Dependencies
|
||||
------------
|
||||
|
||||
1. zig around `0.11.0-dev.3312+ab37ab33c`.
|
||||
1. zig around `0.11.0-dev.3735+a72d634b7`.
|
||||
2. [cmph][cmph]: bundled with this repository.
|
||||
|
||||
Building
|
||||
|
@ -155,7 +155,7 @@ pub fn build(b: *zbs.Builder) void {
|
||||
const so = b.addSharedLibrary(.{
|
||||
.name = "nss_turbo",
|
||||
.root_source_file = .{ .path = "src/libnss.zig" },
|
||||
.version = builtin.Version{
|
||||
.version = std.SemanticVersion{
|
||||
.major = 2,
|
||||
.minor = 0,
|
||||
.patch = 0,
|
||||
|
@ -95,7 +95,7 @@ pub fn init(
|
||||
for (name_idx) |entry| {
|
||||
const user = try usersConst[entry.idx].clone(allocator);
|
||||
users.appendAssumeCapacity(user);
|
||||
getpw_bufsize = math.max(getpw_bufsize, user.strlenZ());
|
||||
getpw_bufsize = @max(getpw_bufsize, user.strlenZ());
|
||||
}
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ pub fn init(
|
||||
for (gid_idx) |entry| {
|
||||
const group = try groupsConst[entry.idx].clone(allocator);
|
||||
groups.appendAssumeCapacity(group);
|
||||
getgr_bufsize = math.max(getgr_bufsize, group.strlenZ());
|
||||
getgr_bufsize = @max(getgr_bufsize, group.strlenZ());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -194,7 +194,7 @@ pub fn iov(self: *align(8) const DB) BoundedArray(os.iovec_const, DB_fields.len
|
||||
.iov_base = bytes.ptr,
|
||||
.iov_len = bytes.len,
|
||||
});
|
||||
const padding = mem.alignForward(bytes.len, section_length) - bytes.len;
|
||||
const padding = mem.alignForward(usize, bytes.len, section_length) - bytes.len;
|
||||
if (padding != 0)
|
||||
result.appendAssumeCapacity(.{
|
||||
.iov_base = zeroes,
|
||||
@ -595,7 +595,7 @@ fn usersSection(
|
||||
gids.idx2offset[i],
|
||||
shells.shell2idx,
|
||||
);
|
||||
try blob.appendNTimes(0, mem.alignForward(blob.items.len, 8) - blob.items.len);
|
||||
try blob.appendNTimes(0, mem.alignForward(usize, blob.items.len, 8) - blob.items.len);
|
||||
}
|
||||
return UsersSection{
|
||||
.len = @intCast(u32, users.len),
|
||||
@ -686,7 +686,7 @@ fn groupsSection(
|
||||
.members_offset = members_offset_i,
|
||||
};
|
||||
try PackedGroup.packTo(&blob, group_stored);
|
||||
try blob.appendNTimes(0, mem.alignForward(blob.items.len, 8) - blob.items.len);
|
||||
try blob.appendNTimes(0, mem.alignForward(usize, blob.items.len, 8) - blob.items.len);
|
||||
}
|
||||
|
||||
return GroupsSection{
|
||||
@ -733,7 +733,7 @@ pub fn nblocks_n(comptime T: type, nbytes: usize) T {
|
||||
u64 => u70,
|
||||
else => @compileError("unsupported type " ++ @typeName(T)),
|
||||
};
|
||||
const upper = @intCast(B, mem.alignForward(nbytes, section_length));
|
||||
const upper = @intCast(B, mem.alignForward(usize, nbytes, section_length));
|
||||
assert(upper & (section_length - 1) == 0);
|
||||
return @truncate(T, upper >> section_length_bits);
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ pub fn write(self: *ErrCtx, bytes: []const u8) error{}!usize {
|
||||
if (can_add == 0) return bytes.len;
|
||||
|
||||
self.overflow = bytes.len > can_add;
|
||||
self.buf.appendSliceAssumeCapacity(bytes[0..math.min(bytes.len, can_add)]);
|
||||
self.buf.appendSliceAssumeCapacity(bytes[0..@min(bytes.len, can_add)]);
|
||||
// not adding the final zero is ok, because it will
|
||||
// be ignored in the iterator anyway.
|
||||
_ = self.buf.append(0) catch null;
|
||||
@ -68,24 +68,24 @@ pub fn wrapf(self: *ErrCtx, comptime format: []const u8, args: anytype) *ErrCtx
|
||||
return self;
|
||||
}
|
||||
|
||||
pub fn iterator(self: *const ErrCtx) mem.SplitIterator(u8) {
|
||||
pub fn iterator(self: *const ErrCtx) mem.SplitIterator(u8, .scalar) {
|
||||
const slice = self.buf.constSlice();
|
||||
const last_byte = if (slice[slice.len - 1] == 0) slice.len - 1 else slice.len;
|
||||
return mem.split(u8, slice[0..last_byte], "\x00");
|
||||
return mem.splitScalar(u8, slice[0..last_byte], 0);
|
||||
}
|
||||
|
||||
pub fn rev(self: *const ErrCtx) mem.SplitBackwardsIterator(u8) {
|
||||
pub fn rev(self: *const ErrCtx) mem.SplitBackwardsIterator(u8, .scalar) {
|
||||
const slice = self.buf.constSlice();
|
||||
if (slice.len == 0) {
|
||||
return mem.SplitBackwardsIterator(u8){
|
||||
return mem.SplitBackwardsIterator(u8, .scalar){
|
||||
.buffer = slice,
|
||||
.index = null,
|
||||
.delimiter = "\x00",
|
||||
.delimiter = 0,
|
||||
};
|
||||
}
|
||||
|
||||
const last_byte = if (slice[slice.len - 1] == 0) (slice.len - 1) else slice.len;
|
||||
return mem.splitBackwards(u8, slice[0..last_byte], "\x00");
|
||||
return mem.splitBackwardsScalar(u8, slice[0..last_byte], 0);
|
||||
}
|
||||
|
||||
pub fn unwrap(self: *const ErrCtx) BoundedArray(u8, capacity * 2) {
|
||||
|
@ -52,7 +52,7 @@ pub fn fromBytes(bytes: []align(8) const u8) error{Overflow}!Entry {
|
||||
.groupdata = bytes[start_blob..end_strings],
|
||||
.members_offset = members_offset.value,
|
||||
},
|
||||
.end = mem.alignForward(end_blob, 8),
|
||||
.end = mem.alignForward(usize, end_blob, 8),
|
||||
};
|
||||
}
|
||||
|
||||
@ -142,7 +142,7 @@ test "PackedGroup construct" {
|
||||
|
||||
for (groups) |group| {
|
||||
try PackedGroup.packTo(&buf, group);
|
||||
try buf.appendNTimes(0, mem.alignForward(buf.items.len, 8) - buf.items.len);
|
||||
try buf.appendNTimes(0, mem.alignForward(usize, buf.items.len, 8) - buf.items.len);
|
||||
}
|
||||
|
||||
var i: u29 = 0;
|
||||
|
@ -96,7 +96,7 @@ pub fn fromBytes(blob: []align(8) const u8) error{Overflow}!Entry {
|
||||
.var_payload = blob[start_var_payload..end_payload],
|
||||
.additional_gids_offset = gids_offset.value,
|
||||
},
|
||||
.end = mem.alignForward(end_payload, 8),
|
||||
.end = mem.alignForward(usize, end_payload, 8),
|
||||
};
|
||||
}
|
||||
|
||||
@ -289,7 +289,7 @@ test "PackedUser construct section" {
|
||||
defer shellIndex.deinit();
|
||||
for (users) |user| {
|
||||
try PackedUser.packTo(&buf, user, additional_gids, shellIndex);
|
||||
try buf.appendNTimes(0, mem.alignForward(buf.items.len, 8) - buf.items.len);
|
||||
try buf.appendNTimes(0, mem.alignForward(usize, buf.items.len, 8) - buf.items.len);
|
||||
}
|
||||
|
||||
var i: u29 = 0;
|
||||
|
@ -142,13 +142,13 @@ fn getpwuid_r(
|
||||
var cuser = db.getpwuid(uid, buffer[0..buflen]) catch |err| switch (err) {
|
||||
error.Overflow => return badFile(errnop),
|
||||
error.BufferTooSmall => {
|
||||
errnop.* = @enumToInt(os.E.RANGE);
|
||||
errnop.* = @intFromEnum(os.E.RANGE);
|
||||
return c.NSS_STATUS_TRYAGAIN;
|
||||
},
|
||||
};
|
||||
|
||||
const got_cuser = cuser orelse {
|
||||
errnop.* = @enumToInt(os.E.NOENT);
|
||||
errnop.* = @intFromEnum(os.E.NOENT);
|
||||
return c.NSS_STATUS_NOTFOUND;
|
||||
};
|
||||
|
||||
@ -181,13 +181,13 @@ fn getpwnam_r(
|
||||
const cuser = db.getpwnam(nameSlice, buf) catch |err| switch (err) {
|
||||
error.Overflow => return badFile(errnop),
|
||||
error.BufferTooSmall => {
|
||||
errnop.* = @enumToInt(os.E.RANGE);
|
||||
errnop.* = @intFromEnum(os.E.RANGE);
|
||||
return c.NSS_STATUS_TRYAGAIN;
|
||||
},
|
||||
};
|
||||
|
||||
const got_cuser = cuser orelse {
|
||||
errnop.* = @enumToInt(os.E.NOENT);
|
||||
errnop.* = @intFromEnum(os.E.NOENT);
|
||||
return c.NSS_STATUS_NOTFOUND;
|
||||
};
|
||||
|
||||
@ -204,7 +204,7 @@ export fn _nss_turbo_getgrgid_r(
|
||||
) c.enum_nss_status {
|
||||
global_init.call();
|
||||
var state = &(global_state orelse {
|
||||
errnop.* = @enumToInt(os.E.AGAIN);
|
||||
errnop.* = @intFromEnum(os.E.AGAIN);
|
||||
return c.NSS_STATUS_UNAVAIL;
|
||||
});
|
||||
return getgrgid_r(state, gid, gr, buffer, buflen, errnop);
|
||||
@ -225,13 +225,13 @@ fn getgrgid_r(
|
||||
const cgroup = db.getgrgid(gid, buf, omit_members) catch |err| switch (err) {
|
||||
error.Overflow => return badFile(errnop),
|
||||
error.BufferTooSmall => {
|
||||
errnop.* = @enumToInt(os.E.RANGE);
|
||||
errnop.* = @intFromEnum(os.E.RANGE);
|
||||
return c.NSS_STATUS_TRYAGAIN;
|
||||
},
|
||||
};
|
||||
|
||||
gr.* = cgroup orelse {
|
||||
errnop.* = @enumToInt(os.E.NOENT);
|
||||
errnop.* = @intFromEnum(os.E.NOENT);
|
||||
return c.NSS_STATUS_NOTFOUND;
|
||||
};
|
||||
|
||||
@ -247,7 +247,7 @@ export fn _nss_turbo_getgrnam_r(
|
||||
) c.enum_nss_status {
|
||||
global_init.call();
|
||||
var state = &(global_state orelse {
|
||||
errnop.* = @enumToInt(os.E.AGAIN);
|
||||
errnop.* = @intFromEnum(os.E.AGAIN);
|
||||
return c.NSS_STATUS_UNAVAIL;
|
||||
});
|
||||
return getgrnam_r(state, name, group, buffer, buflen, errnop);
|
||||
@ -268,12 +268,12 @@ fn getgrnam_r(
|
||||
const cgroup = db.getgrnam(nameSlice, buf, omit_members) catch |err| switch (err) {
|
||||
error.Overflow => return badFile(errnop),
|
||||
error.BufferTooSmall => {
|
||||
errnop.* = @enumToInt(os.E.RANGE);
|
||||
errnop.* = @intFromEnum(os.E.RANGE);
|
||||
return c.NSS_STATUS_TRYAGAIN;
|
||||
},
|
||||
};
|
||||
group.* = cgroup orelse {
|
||||
errnop.* = @enumToInt(os.E.NOENT);
|
||||
errnop.* = @intFromEnum(os.E.NOENT);
|
||||
return c.NSS_STATUS_NOTFOUND;
|
||||
};
|
||||
return c.NSS_STATUS_SUCCESS;
|
||||
@ -347,7 +347,7 @@ export fn _nss_turbo_getgrent_r(
|
||||
) c.enum_nss_status {
|
||||
global_init.call();
|
||||
var state = &(global_state orelse {
|
||||
errnop.* = @enumToInt(os.E.AGAIN);
|
||||
errnop.* = @intFromEnum(os.E.AGAIN);
|
||||
return c.NSS_STATUS_UNAVAIL;
|
||||
});
|
||||
return getgrent_r(state, result, buffer, buflen, errnop);
|
||||
@ -365,7 +365,7 @@ fn getgrent_r(
|
||||
|
||||
var it = &(state.getgrent_iterator orelse {
|
||||
// logic from _nss_systemd_getgrent_r
|
||||
errnop.* = @enumToInt(os.E.HOSTDOWN);
|
||||
errnop.* = @intFromEnum(os.E.HOSTDOWN);
|
||||
return c.NSS_STATUS_UNAVAIL;
|
||||
});
|
||||
|
||||
@ -391,7 +391,7 @@ fn getgrent_r(
|
||||
},
|
||||
error.BufferTooSmall => {
|
||||
it.rollback();
|
||||
errnop.* = @enumToInt(os.E.RANGE);
|
||||
errnop.* = @intFromEnum(os.E.RANGE);
|
||||
return c.NSS_STATUS_TRYAGAIN;
|
||||
},
|
||||
}
|
||||
@ -405,7 +405,7 @@ export fn _nss_turbo_getpwent_r(
|
||||
) c.enum_nss_status {
|
||||
global_init.call();
|
||||
var state = &(global_state orelse {
|
||||
errnop.* = @enumToInt(os.E.AGAIN);
|
||||
errnop.* = @intFromEnum(os.E.AGAIN);
|
||||
return c.NSS_STATUS_UNAVAIL;
|
||||
});
|
||||
|
||||
@ -424,7 +424,7 @@ fn getpwent_r(
|
||||
|
||||
var it = &(state.getpwent_iterator orelse {
|
||||
// logic from _nss_systemd_getgrent_r
|
||||
errnop.* = @enumToInt(os.E.HOSTDOWN);
|
||||
errnop.* = @intFromEnum(os.E.HOSTDOWN);
|
||||
return c.NSS_STATUS_UNAVAIL;
|
||||
});
|
||||
|
||||
@ -439,7 +439,7 @@ fn getpwent_r(
|
||||
const cuser = state.file.db.writeUser(user, buf) catch |err| switch (err) {
|
||||
error.BufferTooSmall => {
|
||||
it.rollback();
|
||||
errnop.* = @enumToInt(os.E.RANGE);
|
||||
errnop.* = @intFromEnum(os.E.RANGE);
|
||||
return c.NSS_STATUS_TRYAGAIN;
|
||||
},
|
||||
};
|
||||
@ -459,7 +459,7 @@ export fn _nss_turbo_initgroups_dyn(
|
||||
) c.enum_nss_status {
|
||||
global_init.call();
|
||||
var state = &(global_state orelse {
|
||||
errnop.* = @enumToInt(os.E.AGAIN);
|
||||
errnop.* = @intFromEnum(os.E.AGAIN);
|
||||
return c.NSS_STATUS_UNAVAIL;
|
||||
});
|
||||
return initgroups_dyn(state, user_name, gid, start, size, groupsp, limit, errnop);
|
||||
@ -479,7 +479,7 @@ fn initgroups_dyn(
|
||||
const user = db.getUserByName(mem.sliceTo(user_name, 0)) catch |err| switch (err) {
|
||||
error.Overflow => return badFile(errnop),
|
||||
} orelse {
|
||||
errnop.* = @enumToInt(os.E.NOENT);
|
||||
errnop.* = @intFromEnum(os.E.NOENT);
|
||||
return c.NSS_STATUS_NOTFOUND;
|
||||
};
|
||||
|
||||
@ -510,7 +510,7 @@ fn initgroups_dyn(
|
||||
const newsize: usize = if (limit <= 0)
|
||||
newsize_want
|
||||
else
|
||||
math.min(@intCast(usize, limit), newsize_want);
|
||||
@min(@intCast(usize, limit), newsize_want);
|
||||
|
||||
var buf = groupsp.*[0..oldsize];
|
||||
const new_groups = state.initgroups_dyn_allocator.realloc(
|
||||
@ -523,7 +523,7 @@ fn initgroups_dyn(
|
||||
size.* = @intCast(c_long, newsize);
|
||||
} else |err| switch (err) {
|
||||
error.OutOfMemory => {
|
||||
errnop.* = @enumToInt(os.E.NOMEM);
|
||||
errnop.* = @intFromEnum(os.E.NOMEM);
|
||||
return c.NSS_STATUS_TRYAGAIN;
|
||||
},
|
||||
}
|
||||
@ -540,14 +540,14 @@ fn initgroups_dyn(
|
||||
fn getDBErrno(errnop: *c_int) ?*const DB {
|
||||
global_init.call();
|
||||
var state = &(global_state orelse {
|
||||
errnop.* = @enumToInt(os.E.AGAIN);
|
||||
errnop.* = @intFromEnum(os.E.AGAIN);
|
||||
return null;
|
||||
});
|
||||
return &state.file.db;
|
||||
}
|
||||
|
||||
fn badFile(errnop: *c_int) c.enum_nss_status {
|
||||
errnop.* = @enumToInt(os.E.NOENT);
|
||||
errnop.* = @intFromEnum(os.E.NOENT);
|
||||
return c.NSS_STATUS_NOTFOUND;
|
||||
}
|
||||
|
||||
@ -605,7 +605,7 @@ test "libnss getpwuid_r and getpwnam_r" {
|
||||
c.NSS_STATUS_NOTFOUND,
|
||||
getpwnam_r(&state.file.db, "does not exist", &passwd, &buf, buf.len, &errno),
|
||||
);
|
||||
try testing.expectEqual(@enumToInt(os.E.NOENT), @intCast(u16, errno));
|
||||
try testing.expectEqual(@intFromEnum(os.E.NOENT), @intCast(u16, errno));
|
||||
|
||||
passwd = undefined;
|
||||
var small_buffer: [1]u8 = undefined;
|
||||
@ -613,7 +613,7 @@ test "libnss getpwuid_r and getpwnam_r" {
|
||||
c.NSS_STATUS_TRYAGAIN,
|
||||
getpwuid_r(&state.file.db, 0, &passwd, &small_buffer, small_buffer.len, &errno),
|
||||
);
|
||||
try testing.expectEqual(@enumToInt(os.E.RANGE), @intCast(u16, errno));
|
||||
try testing.expectEqual(@intFromEnum(os.E.RANGE), @intCast(u16, errno));
|
||||
}
|
||||
|
||||
fn testVidmantas(u: CUser) !void {
|
||||
@ -657,7 +657,7 @@ test "libnss getgrgid_r and getgrnam_r" {
|
||||
c.NSS_STATUS_NOTFOUND,
|
||||
getgrnam_r(&state, "does not exist", &group, &buf, buf.len, &errno),
|
||||
);
|
||||
try testing.expectEqual(@enumToInt(os.E.NOENT), @intCast(u16, errno));
|
||||
try testing.expectEqual(@intFromEnum(os.E.NOENT), @intCast(u16, errno));
|
||||
}
|
||||
|
||||
fn testSvcGroup(g: CGroup) !void {
|
||||
|
@ -132,7 +132,7 @@ pub const ShellWriter = struct {
|
||||
try deque.add(KV{ .shell = entry.key_ptr.*, .score = score });
|
||||
}
|
||||
|
||||
const total = std.math.min(deque.count(), limit);
|
||||
const total = @min(deque.count(), limit);
|
||||
var topShells = BoundedArray([]const u8, max_shells).init(total) catch unreachable;
|
||||
|
||||
var i: u32 = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user