// stop using capability
//caps_in_use[uid].erase(in->get_ext_cap(uid)->get_id());
- capcache->close_cap(uid, capcache->get_cache_cap(in->ino(), uid)->get_id());
+
+ //capcache->close_cap(uid, capcache->get_cache_cap(in->ino(), uid)->get_id());
// hose fh
fh_map.erase(fh);
utime_t get_ts() { return t_s; }
utime_t get_te() { return t_e; }
set<cap_id_t>& get_renewed_caps() { return renewed_caps; }
+ int num_renewed_caps() { return renewed_caps.size(); }
void add_cap(cap_id_t cid) { renewed_caps.insert(cid); }
+ void add_set(set<cap_id_t>& newcaps) {
+ for (set<cap_id_t>::iterator si = renewed_caps.begin();
+ si != renewed_caps.end();
+ si++) {
+ renewed_caps.insert(*si);;
+ }
+ }
void sign_renewal(esignPriv privKey) {
cap_id_t capids[renewed_caps.size()];
mds->recent_caps.insert(*si);
}
}
- if (new_caps) {
+ if (new_caps || mds->token.num_renewed_caps() == 0) {
// re-make extension
mds->token = Renewal(mds->recent_caps);
+ //mds->token.add_set(mds->recent_caps);
+
// re-sign
mds->token.sign_renewal(mds->getPrvKey());
cout << "Made a new token" << endl;
}
- else
+ else
cout << "Cached token was good" << endl;
+
// if no new caps && cached extension, return cached extension
// create extension for entire recent_cap set
// cache the extension