summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2025-04-17 02:49:53 -0600
committerLuke T. Shumaker <lukeshu@lukeshu.com>2025-04-17 12:24:46 -0600
commit3ae25b0b620ba0f71e5c91f0c28873be1ba68497 (patch)
tree8a60faa2890e1c9ad82da1c934ddbc5623b3eeb6
parent5c4004ff3bd66306e03579f6ee350b3517aa4ea9 (diff)
lib9p_srv: Rename ->authinfo->{uname,uid} to ->userid->{name,num}
-rw-r--r--lib9p/srv.c102
-rw-r--r--lib9p/srv_include/lib9p/srv.h8
-rw-r--r--lib9p/tests/test_server/fs_whoami.c8
3 files changed, 59 insertions, 59 deletions
diff --git a/lib9p/srv.c b/lib9p/srv.c
index 8917084..81fe625 100644
--- a/lib9p/srv.c
+++ b/lib9p/srv.c
@@ -96,7 +96,7 @@ struct srv_pathinfo {
struct srv_fidinfo {
srv_path_t path;
- struct lib9p_srv_authinfo *authinfo;
+ struct lib9p_srv_userid *user;
uint8_t flags;
enum srv_filetype type;
union {
@@ -174,42 +174,42 @@ static inline bool srv_check_perm(struct srv_req *ctx, struct lib9p_stat *stat,
return mode & action;
}
-struct lib9p_srv_authinfo *srv_authinfo_new(struct lib9p_s uname
+struct lib9p_srv_userid *srv_userid_new(struct lib9p_s name
#if CONFIG_9P_ENABLE_9P2000_u || CONFIG_9P_ENABLE_9P2000_L
- , lib9p_nuid_t uid
+ , lib9p_nuid_t num
#endif
) {
- struct lib9p_srv_authinfo *ret = malloc(sizeof(struct lib9p_srv_authinfo) + uname.len);
+ struct lib9p_srv_userid *ret = malloc(sizeof(struct lib9p_srv_userid) + name.len);
if (!ret)
return NULL;
#if CONFIG_9P_ENABLE_9P2000_u || CONFIG_9P_ENABLE_9P2000_L
- ret->uid = uid;
+ ret->num = num;
#endif
- ret->uname.len = uname.len;
- ret->uname.utf8 = (void *)&ret[1];
- memcpy(ret->uname.utf8, uname.utf8, uname.len);
+ ret->name.len = name.len;
+ ret->name.utf8 = (void *)&ret[1];
+ memcpy(ret->name.utf8, name.utf8, name.len);
ret->refcount = 1;
return ret;
}
#if !(CONFIG_9P_ENABLE_9P2000_u || CONFIG_9P_ENABLE_9P2000_L)
-#define srv_authinfo_new(name, num) srv_authinfo_new(name)
+#define srv_userid_new(name, num) srv_userid_new(name)
#endif
-struct lib9p_srv_authinfo *srv_authinfo_decref(struct lib9p_srv_authinfo *authinfo) {
- assert(authinfo);
- assert(authinfo->refcount);
- authinfo->refcount--;
- if (!authinfo->refcount) {
- free(authinfo);
+struct lib9p_srv_userid *srv_userid_decref(struct lib9p_srv_userid *userid) {
+ assert(userid);
+ assert(userid->refcount);
+ userid->refcount--;
+ if (!userid->refcount) {
+ free(userid);
return NULL;
}
- return authinfo;
+ return userid;
}
-struct lib9p_srv_authinfo *srv_authinfo_incref(struct lib9p_srv_authinfo *authinfo) {
- assert(authinfo);
- authinfo->refcount++;
- return authinfo;
+struct lib9p_srv_userid *srv_userid_incref(struct lib9p_srv_userid *userid) {
+ assert(userid);
+ userid->refcount++;
+ return userid;
}
/**
@@ -311,7 +311,7 @@ static inline void srv_fid_del(struct srv_req *ctx, lib9p_fid_t fid, bool remove
}
pathinfo->io_refcount--;
}
- fidinfo->authinfo = srv_authinfo_decref(fidinfo->authinfo);
+ fidinfo->user = srv_userid_decref(fidinfo->user);
srv_path_decref(ctx, fidinfo->path);
map_del(&ctx->parent_sess->fids, fid);
}
@@ -338,7 +338,7 @@ static inline struct srv_fidinfo *srv_fid_store(struct srv_req *ctx, lib9p_fid_t
assert(old_fidinfo->type == SRV_FILETYPE_DIR);
assert(old_fidinfo->flags == 0);
- old_fidinfo->authinfo = srv_authinfo_decref(old_fidinfo->authinfo);
+ old_fidinfo->user = srv_userid_decref(old_fidinfo->user);
srv_path_decref(ctx, old_fidinfo->path);
map_del(&ctx->parent_sess->fids, fid);
} else {
@@ -348,9 +348,9 @@ static inline struct srv_fidinfo *srv_fid_store(struct srv_req *ctx, lib9p_fid_t
}
}
struct srv_fidinfo *fidinfo = map_store(&ctx->parent_sess->fids, fid, (struct srv_fidinfo){
- .path = qid.path,
- .type = srv_qid_filetype(qid),
- .authinfo = srv_authinfo_incref(ctx->authinfo),
+ .path = qid.path,
+ .type = srv_qid_filetype(qid),
+ .user = srv_userid_incref(ctx->user),
});
assert(fidinfo);
return fidinfo;
@@ -797,7 +797,7 @@ static void handle_Tauth(struct srv_req *ctx,
return;
}
- ctx->authinfo = srv_authinfo_new(req->uname, req->n_uid);
+ ctx->user = srv_userid_new(req->uname, req->n_uid);
srv->auth(ctx, req->aname);
@@ -805,7 +805,7 @@ static void handle_Tauth(struct srv_req *ctx,
LIB9P_ERRNO_L_EOPNOTSUPP, "TODO: auth not implemented");
if (lib9p_ctx_has_error(&ctx->basectx))
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
}
static void handle_Tattach(struct srv_req *ctx,
@@ -828,16 +828,16 @@ static void handle_Tattach(struct srv_req *ctx,
else if (afid->type != SRV_FILETYPE_AUTH)
lib9p_error(&ctx->basectx,
LIB9P_ERRNO_L_EACCES, "FID provided as auth-file is not an auth-file");
- else if (!lib9p_str_eq(afid->authinfo->uname, req->uname))
+ else if (!lib9p_str_eq(afid->user->name, req->uname))
lib9p_errorf(&ctx->basectx,
LIB9P_ERRNO_L_EACCES, "FID provided as auth-file is for user=\"%.*s\" and cannot be used for user=\"%.*s\"",
- afid->authinfo->uname.len, afid->authinfo->uname.utf8,
+ afid->user->name.len, afid->user->name.utf8,
req->uname.len, req->uname.utf8);
#if CONFIG_9P_ENABLE_9P2000_u || CONFIG_9P_ENABLE_9P2000_L
- else if (afid->authinfo->uid != req->n_uid)
+ else if (afid->user->num != req->n_uid)
lib9p_errorf(&ctx->basectx,
LIB9P_ERRNO_L_EACCES, "FID provided as auth-file is for user=%"PRIu32" and cannot be used for user=%"PRIu32,
- afid->authinfo->uid, req->n_uid);
+ afid->user->num, req->n_uid);
#endif
else if (!lib9p_str_eq(afid->auth.aname, req->aname))
lib9p_errorf(&ctx->basectx,
@@ -849,21 +849,21 @@ static void handle_Tattach(struct srv_req *ctx,
LIB9P_ERRNO_L_EACCES, "FID provided as auth-file has not completed authentication");
if (lib9p_ctx_has_error(&ctx->basectx))
return;
- ctx->authinfo = srv_authinfo_incref(afid->authinfo);
+ ctx->user = srv_userid_incref(afid->user);
} else {
if (req->afid != LIB9P_FID_NOFID) {
lib9p_error(&ctx->basectx,
LIB9P_ERRNO_L_EACCES, "FID provided as auth-file, but no auth-file is required");
return;
}
- ctx->authinfo = srv_authinfo_new(req->uname, req->n_uid);
+ ctx->user = srv_userid_new(req->uname, req->n_uid);
}
/* 1. File object */
lo_interface lib9p_srv_file root_file = srv->rootdir(ctx, req->aname);
assert(LO_IS_NULL(root_file) == lib9p_ctx_has_error(&ctx->basectx));
if (lib9p_ctx_has_error(&ctx->basectx)) {
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
return;
}
@@ -876,11 +876,11 @@ static void handle_Tattach(struct srv_req *ctx,
/* 3. fidinfo */
if (!srv_fid_store(ctx, req->fid, root_pathinfo, false)) {
srv_path_decref(ctx, root_qid.path);
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
return;
}
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
resp->qid = root_qid;
return;
}
@@ -930,7 +930,7 @@ static void handle_Twalk(struct srv_req *ctx,
LIB9P_ERRNO_L_EALREADY, "cannot walk on FID open for I/O");
return;
}
- ctx->authinfo = srv_authinfo_incref(fidinfo->authinfo);
+ ctx->user = srv_userid_incref(fidinfo->user);
struct srv_pathinfo *pathinfo = map_load(&ctx->parent_sess->paths, fidinfo->path);
assert(pathinfo);
@@ -985,7 +985,7 @@ static void handle_Twalk(struct srv_req *ctx,
if (resp->nwqid > 0)
lib9p_ctx_clear_error(&ctx->basectx);
}
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
}
static void handle_Topen(struct srv_req *ctx,
@@ -1014,7 +1014,7 @@ static void handle_Topen(struct srv_req *ctx,
return;
}
}
- ctx->authinfo = srv_authinfo_incref(fidinfo->authinfo);
+ ctx->user = srv_userid_incref(fidinfo->user);
/* Variables. */
lib9p_o_t reqmode = req->mode;
@@ -1116,7 +1116,7 @@ static void handle_Topen(struct srv_req *ctx,
resp->qid = qid;
resp->iounit = iounit;
topen_return:
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
}
static void handle_Tcreate(struct srv_req *ctx,
@@ -1149,7 +1149,7 @@ static void handle_Tread(struct srv_req *ctx,
}
/* Do it. */
- ctx->authinfo = srv_authinfo_incref(fidinfo->authinfo);
+ ctx->user = srv_userid_incref(fidinfo->user);
switch (fidinfo->type) {
case SRV_FILETYPE_DIR:
/* Translate byte-offset to object-index. */
@@ -1162,7 +1162,7 @@ static void handle_Tread(struct srv_req *ctx,
lib9p_errorf(&ctx->basectx,
LIB9P_ERRNO_L_EINVAL, "invalid offset (must be 0 or %"PRIu64"): %"PRIu64,
fidinfo->dir.off, req->offset);
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
return;
}
/* Do it. */
@@ -1194,7 +1194,7 @@ static void handle_Tread(struct srv_req *ctx,
assert_notreached("TODO: auth not yet implemented");
break;
}
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
}
static void handle_Twrite(struct srv_req *ctx,
@@ -1218,9 +1218,9 @@ static void handle_Twrite(struct srv_req *ctx,
}
/* Do it. */
- ctx->authinfo = srv_authinfo_incref(fidinfo->authinfo);
+ ctx->user = srv_userid_incref(fidinfo->user);
resp->count = LO_CALL(fidinfo->file.io, pwrite, ctx, req->data, req->count, req->offset);
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
}
static void handle_Tclunk(struct srv_req *ctx,
@@ -1235,9 +1235,9 @@ static void handle_Tclunk(struct srv_req *ctx,
return;
}
- ctx->authinfo = srv_authinfo_incref(fidinfo->authinfo);
+ ctx->user = srv_userid_incref(fidinfo->user);
srv_fid_del(ctx, req->fid, false);
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
}
static void handle_Tremove(struct srv_req *ctx,
@@ -1252,9 +1252,9 @@ static void handle_Tremove(struct srv_req *ctx,
return;
}
- ctx->authinfo = srv_authinfo_incref(fidinfo->authinfo);
+ ctx->user = srv_userid_incref(fidinfo->user);
srv_fid_del(ctx, req->fid, true);
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
}
static void handle_Tstat(struct srv_req *ctx,
@@ -1271,11 +1271,11 @@ static void handle_Tstat(struct srv_req *ctx,
struct srv_pathinfo *pathinfo = map_load(&ctx->parent_sess->paths, fidinfo->path);
assert(pathinfo);
- ctx->authinfo = srv_authinfo_incref(fidinfo->authinfo);
+ ctx->user = srv_userid_incref(fidinfo->user);
resp->stat = LO_CALL(pathinfo->file, stat, ctx);
if (!lib9p_ctx_has_error(&ctx->basectx))
lib9p_stat_assert(resp->stat);
- ctx->authinfo = srv_authinfo_decref(ctx->authinfo);
+ ctx->user = srv_userid_decref(ctx->user);
}
static void handle_Twstat(struct srv_req *ctx,
diff --git a/lib9p/srv_include/lib9p/srv.h b/lib9p/srv_include/lib9p/srv.h
index e9d2e91..026075e 100644
--- a/lib9p/srv_include/lib9p/srv.h
+++ b/lib9p/srv_include/lib9p/srv.h
@@ -19,11 +19,11 @@
/* context ********************************************************************/
-struct lib9p_srv_authinfo {
+struct lib9p_srv_userid {
+ struct lib9p_s name;
#if CONFIG_9P_ENABLE_9P2000_u || CONFIG_9P_ENABLE_9P2000_L
- lib9p_nuid_t uid;
+ lib9p_nuid_t num;
#endif
- struct lib9p_s uname;
BEGIN_PRIVATE(LIB9P_SRV_H);
unsigned int refcount;
@@ -39,7 +39,7 @@ CR_CHAN_DECLARE(_lib9p_srv_flush_ch, enum _lib9p_srv_flush_result);
struct lib9p_srv_ctx {
struct lib9p_ctx basectx;
- struct lib9p_srv_authinfo *authinfo;
+ struct lib9p_srv_userid *user;
BEGIN_PRIVATE(LIB9P_SRV_H);
struct _lib9p_srv_sess *parent_sess;
diff --git a/lib9p/tests/test_server/fs_whoami.c b/lib9p/tests/test_server/fs_whoami.c
index 653ac4b..b81e6c8 100644
--- a/lib9p/tests/test_server/fs_whoami.c
+++ b/lib9p/tests/test_server/fs_whoami.c
@@ -23,10 +23,10 @@ LO_IMPLEMENTATION_C(lib9p_srv_fio, struct whoami_fio, whoami_fio, static);
size_t whoami_len(struct lib9p_srv_ctx *ctx) {
assert(ctx);
- assert(ctx->authinfo);
+ assert(ctx->user);
size_t len = 0;
- uint32_t uid = ctx->authinfo->uid;
+ uint32_t uid = ctx->user->num;
while (uid) {
len++;
uid /= 10;
@@ -34,7 +34,7 @@ size_t whoami_len(struct lib9p_srv_ctx *ctx) {
if (!len)
len++;
len += 2;
- len += ctx->authinfo->uname.len;
+ len += ctx->user->name.len;
return len;
}
@@ -138,7 +138,7 @@ static void whoami_fio_pread(struct whoami_fio *self, struct lib9p_srv_ctx *ctx,
self->buf_len = data_size+1;
}
snprintf(self->buf, self->buf_len, "%"PRIu32" %.*s\n",
- ctx->authinfo->uid, ctx->authinfo->uname.len, ctx->authinfo->uname.utf8);
+ ctx->user->num, ctx->user->name.len, ctx->user->name.utf8);
if (byte_offset > (uint64_t)data_size) {
lib9p_error(&ctx->basectx,