diff options
-rw-r--r-- | pttbbs/daemon/angelbeats/angelbeats.c | 15 | ||||
-rw-r--r-- | pttbbs/include/daemons.h | 17 |
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; |