+
+int is_subscribed(const char *from, const char *to) {
+ char filename[FILENAME_MAX];
+ struct stringbucket * sb;
+ int ret = 0;
+
+ snprintf(filename, FILENAME_MAX, "%s/%s/subscriptions", blergconf.data_path, from);
+ sb = stringbucket_open(filename);
+ if (stringbucket_find(sb, to) != -1)
+ ret = 1;
+ stringbucket_close(sb);
+
+ return ret;
+}
+
+int subscription_count_items(const char *user) {
+ char filename[FILENAME_MAX];
+ struct stat st;
+
+ if (!valid_name(user))
+ return -1;
+
+ snprintf(filename, FILENAME_MAX, "%s/%s/subscription_feed", blergconf.data_path, user);
+
+ if (access(filename, R_OK) != 0)
+ return 0;
+ stat(filename, &st);
+ return st.st_size / sizeof(struct blergref);
+}