--- cups-1.4.5/scheduler/dirsvc.c 2010-04-23 13:56:34.000000000 -0500 +++ cups-1.4.5-jason/scheduler/dirsvc.c 2010-12-27 03:42:54.000000000 -0600 @@ -1694,15 +1694,16 @@ void cupsdStartPolling(void) { - int i; /* Looping var */ - cupsd_dirsvc_poll_t *pollp; /* Current polling server */ - char polld[1024]; /* Poll daemon path */ - char sport[255]; /* Server port */ - char bport[255]; /* Browser port */ - char interval[255]; /* Poll interval */ - int statusfds[2]; /* Status pipe */ - char *argv[6]; /* Arguments */ - char *envp[100]; /* Environment */ + int i; /* Looping var */ + cupsd_dirsvc_poll_t *pollp; /* Current polling server */ + char polld[1024]; /* Poll daemon path */ + char sport[255]; /* Server port */ + char bport[255]; /* Browser port */ + char interval[255]; /* Poll interval */ + char timeout[255]; /* BrowseTimeout / lease-duraction */ + int statusfds[2]; /* Status pipe */ + char *argv[7]; /* Arguments */ + char *envp[100]; /* Environment */ /* @@ -1717,7 +1718,7 @@ } /* - * Setup string arguments for polld, port and interval options. + * Setup string arguments for polld, port, interval and timeout options. */ snprintf(polld, sizeof(polld), "%s/daemon/cups-polld", ServerBin); @@ -1729,11 +1730,14 @@ else strcpy(interval, "30"); + sprintf(timeout, "%d", BrowseTimeout); + argv[0] = "cups-polld"; argv[2] = sport; argv[3] = interval; - argv[4] = bport; - argv[5] = NULL; + argv[4] = timeout; + argv[5] = bport; + argv[6] = NULL; cupsdLoadEnv(envp, (int)(sizeof(envp) / sizeof(envp[0])));