X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fsgp.git;a=blobdiff_plain;f=src%2Fmain.c;h=4844705fd6bad61323baa1a021a2de3c564f2bfd;hp=9ce1fb76250276a9f11c784fb732ebcedd3b2239;hb=aee41d79d3c53730bf3322a22b67be282cc97975;hpb=e339aed5e0127c2aeac31e44425901192d10fb08 diff --git a/src/main.c b/src/main.c index 9ce1fb7..4844705 100644 --- a/src/main.c +++ b/src/main.c @@ -23,11 +23,32 @@ int main(int argc, char **argv) struct sgp_group *group; struct sgp_msg *msg; struct sgp_friend *friend; + int r; /* TODO: access a database here? */ - group = sgp_group_new(); friend = sgp_friend_new("Thadeu Cascardo"); + if (!friend) + return 1; + group = sgp_group_new("Myself"); + if (!group) + goto out_group; msg = sgp_msg_new("New message for you"); - sgp_group_add_friend(group, friend); - sgp_share(group, msg); - return 0; + if (!msg) + goto out_msg; + r = sgp_group_add_friend(group, friend); + if (r) + goto out_add; + r = sgp_share(group, msg); + sgp_msg_destroy(msg); + sgp_group_destroy(group); + /* we must only destroy the friend after all group references + * are gone */ + sgp_friend_destroy(friend); + return r; +out_add: + sgp_msg_destroy(msg); +out_msg: + sgp_group_destroy(group); +out_group: + sgp_friend_destroy(friend); + return 1; }