X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=utils%2Fgssd%2Fgssd_main_loop.c;h=b06c223294f2f0aadc928ba8d73d6b711e164ba0;hb=24d0b823f10f9cae2eba9b22fb830dd8dc3fb15a;hp=b5117c57cc2f3e5f7856d1b42924628bf297cdf6;hpb=24de786ec7e7a70e0587b0656a31f309b3b5eb65;p=nfs-utils.git diff --git a/utils/gssd/gssd_main_loop.c b/utils/gssd/gssd_main_loop.c index b5117c5..b06c223 100644 --- a/utils/gssd/gssd_main_loop.c +++ b/utils/gssd/gssd_main_loop.c @@ -63,6 +63,8 @@ static volatile int dir_changed = 1; static void dir_notify_handler(int sig, siginfo_t *si, void *data) { + printerr(2, "dir_notify_handler: sig %d si %p data %p\n", sig, si, data); + dir_changed = 1; } @@ -74,6 +76,17 @@ scan_poll_results(int ret) for (clp = clnt_list.tqh_first; clp != NULL; clp = clp->list.tqe_next) { + i = clp->gssd_poll_index; + if (i >= 0 && pollarray[i].revents) { + if (pollarray[i].revents & POLLHUP) + dir_changed = 1; + if (pollarray[i].revents & POLLIN) + handle_gssd_upcall(clp); + pollarray[clp->gssd_poll_index].revents = 0; + ret--; + if (!ret) + break; + } i = clp->krb5_poll_index; if (i >= 0 && pollarray[i].revents) { if (pollarray[i].revents & POLLHUP)