X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=etc%2Fafpd%2Fauth.c;h=f04404edd2f469af47152fccf96db6ccae7d23e8;hp=dcb36a2ce4701f260273cafeab5a859fd9ab664a;hb=130d356c840ea83c31c4724c8ae92660360eb07b;hpb=8da0f366ed162f10b4a34b98e57e5273c7bc9b4d diff --git a/etc/afpd/auth.c b/etc/afpd/auth.c index dcb36a2c..f04404ed 100644 --- a/etc/afpd/auth.c +++ b/etc/afpd/auth.c @@ -223,6 +223,11 @@ static int login(AFPObj *obj, struct passwd *pwd, void (*logout)(void), int expi return AFPERR_NOTAUTH; } + if (obj->cnx_cnt > obj->cnx_max) { + LOG(log_error, logtype_dsi, "login: too many connections, limit: %d", obj->cnx_max); + return AFPERR_MAXSESS; + } + LOG(log_note, logtype_afpd, "%s Login by %s", afp_versions[afp_version_index].av_name, pwd->pw_name); @@ -1013,7 +1018,7 @@ int auth_register(const int type, struct uam_obj *uam) } /* load all of the modules */ -int auth_load(const char *path, const char *list) +int auth_load(AFPObj *obj, const char *path, const char *list) { char name[MAXPATHLEN + 1], buf[MAXPATHLEN + 1], *p; struct uam_mod *mod; @@ -1040,7 +1045,7 @@ int auth_load(const char *path, const char *list) if ((stat(name, &st) == 0) && (mod = uam_load(name, p))) { */ if (stat(name, &st) == 0) { - if ((mod = uam_load(name, p))) { + if ((mod = uam_load(obj, name, p))) { uam_attach(&uam_modules, mod); LOG(log_debug, logtype_afpd, "uam: %s loaded", p); } else {