summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2013-03-22 13:14:36 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2013-03-22 13:14:36 +0800
commitc741f36c7c69f901098f3cf641c3716928fd8fbe (patch)
tree0a2e8ffb32a2c653b0e5b1edcf5adea584e6a8a5
parent6e3f60a4bc6dbeb49d35c4b77d776c07fc85bd2f (diff)
downloadpttbbs-c741f36c7c69f901098f3cf641c3716928fd8fbe.tar
pttbbs-c741f36c7c69f901098f3cf641c3716928fd8fbe.tar.gz
pttbbs-c741f36c7c69f901098f3cf641c3716928fd8fbe.tar.bz2
pttbbs-c741f36c7c69f901098f3cf641c3716928fd8fbe.tar.lz
pttbbs-c741f36c7c69f901098f3cf641c3716928fd8fbe.tar.xz
pttbbs-c741f36c7c69f901098f3cf641c3716928fd8fbe.tar.zst
pttbbs-c741f36c7c69f901098f3cf641c3716928fd8fbe.zip
Make angelbeats upgrade process more smooth.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5817 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/daemon/angelbeats/angelbeats.c15
-rw-r--r--pttbbs/include/daemons.h17
2 files changed, 31 insertions, 1 deletions
diff --git a/pttbbs/daemon/angelbeats/angelbeats.c b/pttbbs/daemon/angelbeats/angelbeats.c
index 2c2c0b0e..1de7c70d 100644
--- a/pttbbs/daemon/angelbeats/angelbeats.c
+++ b/pttbbs/daemon/angelbeats/angelbeats.c
@@ -750,6 +750,21 @@ client_cb(int fd, short event, void *arg) {
goto end;
}
break;
+ case ANGELBEATS_REQ_REPORT1:
+ log("%s angel [%s] request for report v1\n",
+ Cdatelite(&clk), master_uid);
+ {
+ angel_beats_report rpt = {0};
+ angel_beats_report_v1 v1 = {0};
+ rpt.cb = sizeof(rpt);
+ create_angel_report(data.angel_uid, &rpt);
+ memcpy(&v1, &rpt, sizeof(v1));
+ v1.cb = sizeof(v1);
+ // write different kind of data!
+ write(fd, &v1, sizeof(v1));
+ goto end;
+ }
+ break;
case ANGELBEATS_REQ_GET_ONLINE_LIST:
log("%s get_online_uid_list\n", Cdatelite(&clk));
{
diff --git a/pttbbs/include/daemons.h b/pttbbs/include/daemons.h
index 634a3ff4..8270beaa 100644
--- a/pttbbs/include/daemons.h
+++ b/pttbbs/include/daemons.h
@@ -66,7 +66,7 @@ typedef struct login_data
enum ANGELBEATS_OPERATIONS {
ANGELBEATS_REQ_INVALID = 0,
- ANGELBEATS_REQ_REPORT,
+ ANGELBEATS_REQ_REPORT1,
ANGELBEATS_REQ_RELOAD,
ANGELBEATS_REQ_SUGGEST,
ANGELBEATS_REQ_SUGGEST_AND_LINK,
@@ -77,6 +77,7 @@ enum ANGELBEATS_OPERATIONS {
ANGELBEATS_REQ_REG_NEW,
ANGELBEATS_REQ_BLAME,
ANGELBEATS_REQ_SAVE_STATE,
+ ANGELBEATS_REQ_REPORT,
};
typedef struct {
@@ -92,6 +93,20 @@ typedef struct {
short total_angels;
short total_online_angels;
short total_active_angels;
+ short min_masters_of_online_angels;
+ short max_masters_of_online_angels;
+ short min_masters_of_active_angels;
+ short max_masters_of_active_angels;
+ short my_index;
+ short my_active_index;
+ short my_active_masters;
+} angel_beats_report_v1 ;
+
+typedef struct {
+ short cb;
+ short total_angels;
+ short total_online_angels;
+ short total_active_angels;
short min_masters_of_online_angels;
short max_masters_of_online_angels;