- common_log(LOG_DEBUG, __METHOD__ . ': setting up');
- $sub = new HubSub();
- $sub->topic = $feed;
- $sub->callback = $callback;
- $sub->secret = $this->arg('hub.secret', null);
- $sub->setLease(intval($this->arg('hub.lease_seconds')));
-
- // @fixme check for feeds we don't manage
- // @fixme check the verification mode, might want a return immediately?
-
- common_log(LOG_DEBUG, __METHOD__ . ': inserting');
- $ok = $sub->insert();
-
- if (!$ok) {
- throw new ServerException("Failed to save subscription record", 500);
+ $lease = $this->arg('hub.lease_seconds', null);
+ if ($mode == 'subscribe' && $lease != '' && !preg_match('/^\d+$/', $lease)) {
+ throw new ClientException("Invalid hub.lease $lease; must be empty or positive integer.");