X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fui.c;h=b3a514df34323b3948309e936cb298f01a79426d;hb=d0a94602e094f0c50c9b95e5651eb5017c730481;hp=4484a1d008c51fdf35de585bb184a304dc350938;hpb=0a1bc5b19fe40d88790d02f236ea4c9637024969;p=doldaconnect.git diff --git a/daemon/ui.c b/daemon/ui.c index 4484a1d..b3a514d 100644 --- a/daemon/ui.c +++ b/daemon/ui.c @@ -144,7 +144,7 @@ struct uidata size_t inbufsize, indata; /* Wordset storage */ wchar_t **argv; - int argc, args; + size_t argc, args; /* WCS conversation stuff */ wchar_t *cb; /* Conversation buffer */ size_t cbsize, cbdata; @@ -571,6 +571,11 @@ static void cmd_fnetconnect(struct socket *sk, struct uidata *data, int argc, wc haveargs(3); havepriv(PERM_FNETCTL); + for(i = 0, fn = fnetnodes; fn != NULL; i++, fn = fn->next); + if((confgetint("fnet", "maxnodes") > 0) && (i >= confgetint("fnet", "maxnodes"))) { + sq(sk, 0, L"515", L"Too many fnetnodes connected already", NULL); + return; + } if((buf = icwcstombs(argv[2], NULL)) == NULL) { sq(sk, 0, L"504", L"Could not convert data to locale charset", NULL); @@ -592,8 +597,8 @@ static void cmd_fnetconnect(struct socket *sk, struct uidata *data, int argc, wc } linkfnetnode(fn); fnetsetname(fn, argv[2]); + sq(sk, 0, L"200", L"%%i", fn->id, L"Connection under way", NULL); putfnetnode(fn); - sq(sk, 0, L"200", L"Connection under way", NULL); } static void cmd_lsnodes(struct socket *sk, struct uidata *data, int argc, wchar_t **argv) @@ -1119,7 +1124,7 @@ static void cmd_filtercmd(struct socket *sk, struct uidata *data, int argc, wcha sq(sk, 0, L"505", L"System error - Could not fork session", "Internal error", NULL); return; } - if((filtercmd = findfile(icswcstombs(confgetstr("ui", "filtercmd"), NULL, NULL), "dcdl-filtercmd", pwent->pw_dir)) == NULL) + if((filtercmd = findfile(icswcstombs(confgetstr("ui", "filtercmd"), NULL, NULL), "dcdl-filtercmd", pwent->pw_dir, 0)) == NULL) { flog(LOG_WARNING, "could not find filtercmd executable for user %s", pwent->pw_name); sq(sk, 0, L"505", L"System error - Could not fork session", L"Could not find filtercmd executable", NULL);