X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fui.c;h=9b3eba6643edc8b521d764cde2f1c64136bccc14;hb=186031535760dcfde374afa84946ec24fcf5bb3e;hp=df421eca317014f902f885e292f9cee4f10dde0e;hpb=9a64a4f7bb7ce4d48fa1beb5241306a1a2e7d682;p=doldaconnect.git diff --git a/daemon/ui.c b/daemon/ui.c index df421ec..9b3eba6 100644 --- a/daemon/ui.c +++ b/daemon/ui.c @@ -590,7 +590,7 @@ static void cmd_fnetconnect(struct socket *sk, struct uidata *data, int argc, wc args = NULL; for(i = 3; i < argc - 1; i += 2) newwcspair(argv[i], argv[i + 1], &args); - fn = fnetinitconnect(argv[1], buf, args); + fn = fnetinitconnect(argv[1], data->userinfo->name, buf, args); err = errno; free(buf); if(fn == NULL) @@ -641,6 +641,11 @@ static void cmd_disconnect(struct socket *sk, struct uidata *data, int argc, wch sq(sk, 0, L"510", L"No such node", NULL); return; } + if(wpfind(fn->args, L"locked") && !((data->userinfo->perms & PERM_ADMIN) || !wcscmp(data->userinfo->name, fn->owner))) + { + sq(sk, 0, L"502", L"This node is locked and you are neither administrator nor its owner", NULL); + return; + } killfnetnode(fn); unlinkfnetnode(fn); }