MCPcopy Create free account
hub / github.com/OpenPrinting/cups / cupsdExpireSubscriptions

Function cupsdExpireSubscriptions

scheduler/subscriptions.c:642–684  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

640 */
641
642void
643cupsdExpireSubscriptions(
644 cupsd_printer_t *dest, /* I - Printer, if any */
645 cupsd_job_t *job) /* I - Job, if any */
646{
647 cupsd_subscription_t *sub; /* Current subscription */
648 int update = 0; /* Update subscriptions.conf? */
649 time_t curtime; /* Current time */
650
651
652 _cupsRWLockWrite(&SubscriptionsLock);
653
654 if (cupsArrayCount(Subscriptions) == 0)
655 goto done;
656
657 curtime = time(NULL);
658
659 cupsdLogMessage(CUPSD_LOG_DEBUG, "Expiring subscriptions...");
660
661 for (sub = (cupsd_subscription_t *)cupsArrayFirst(Subscriptions);
662 sub;
663 sub = (cupsd_subscription_t *)cupsArrayNext(Subscriptions))
664 {
665 if ((!sub->job && !dest && sub->expire && sub->expire <= curtime) ||
666 (dest && sub->dest == dest) ||
667 (job && sub->job == job))
668 {
669 cupsdLogMessage(CUPSD_LOG_INFO, "Subscription %d has expired...",
670 sub->id);
671
672 cupsdDeleteSubscription(sub, -1);
673
674 update = 1;
675 }
676 }
677
678 done:
679
680 _cupsRWUnlock(&SubscriptionsLock);
681
682 if (update)
683 cupsdMarkDirty(CUPSD_DIRTY_SUBSCRIPTIONS);
684}
685
686
687/*

Callers 7

cupsdStopServerFunction · 0.85
delete_printerFunction · 0.85
get_subscription_attrsFunction · 0.85
get_subscriptionsFunction · 0.85
cupsdSetJobStateFunction · 0.85
mainFunction · 0.85
cupsdDeletePrinterFunction · 0.85

Calls 8

_cupsRWLockWriteFunction · 0.85
cupsArrayCountFunction · 0.85
cupsdLogMessageFunction · 0.85
cupsArrayFirstFunction · 0.85
cupsArrayNextFunction · 0.85
cupsdDeleteSubscriptionFunction · 0.85
_cupsRWUnlockFunction · 0.85
cupsdMarkDirtyFunction · 0.85

Tested by

no test coverage detected