1 #define _XOPEN_SOURCE 500
11 int main(int argc
, char **argv
) {
12 struct isds_ctx
*ctx
= NULL
;
14 struct isds_DbOwnerInfo
*db_owner_info
= NULL
;
15 struct isds_list
*users
= NULL
;
17 setlocale(LC_ALL
, "");
21 printf("isds_init() failed: %s\n", isds_strerror(err
));
25 isds_set_logging(ILF_ALL
& ~ILF_HTTP
, ILL_ALL
);
27 ctx
= isds_ctx_create();
29 printf("isds_ctx_create() failed");
32 err
= isds_set_timeout(ctx
, 10000);
34 printf("isds_set_timeout() failed: %s\n", isds_strerror(err
));
37 /* err = isds_set_tls(ctx, ITLS_VERIFY_SERVER, 0);
39 printf("isds_set_tls(ITLS_VERIFY_SERVER) failed: %s\n",
43 err = isds_set_tls(ctx, ITLS_CA_FILE, "/etc/ssl/certs/ca-certificates.crt");
45 printf("isds_set_tls(ITLS_CA_FILE) failed: %s\n",
49 err
= isds_login(ctx
, url
, username
, password
, NULL
, NULL
);
51 printf("isds_login() failed: %s: %s\n", isds_strerror(err
),
52 isds_long_message(ctx
));
54 printf("Logged in :)\n");
59 printf("Getting info about my box:\n");
60 err
= isds_GetOwnerInfoFromLogin(ctx
, &db_owner_info
);
62 printf("isds_GetOwnerInfoFromLogin() failed: %s: %s\n",
63 isds_strerror(err
), isds_long_message(ctx
));
65 printf("isds_GetOwnerInfoFromLogin() succeeded\n");
67 print_DbOwnerInfo(db_owner_info
);
71 /* Get info all users of this box */
73 struct isds_list
*item
;
74 printf("Getting users of my box with ID `%s':\n", db_owner_info
->dbID
);
75 err
= isds_GetDataBoxUsers(ctx
, db_owner_info
->dbID
, &users
);
77 printf("isds_GetDataBoxUsers() failed: %s: %s\n",
78 isds_strerror(err
), isds_long_message(ctx
));
80 printf("isds_GetDataBoxUsers() succeeded\n");
81 for(item
= users
; item
; item
= item
->next
) {
82 printf("List item:\n");
83 print_DbUserInfo(item
->data
);
89 /* Create the same box */
91 char *refnumber
= NULL
;
92 const struct isds_approval approval
= {
93 .approved
= 1, .refference
= "Me"
95 printf("Creating already existing box\n");
96 err
= isds_add_box(ctx
, db_owner_info
, users
, "Former Names",
97 NULL
, "CEO", &approval
, &refnumber
);
99 printf("isds_add_box() failed: %s: %s\n",
100 isds_strerror(err
), isds_long_message(ctx
));
102 printf("isds_add_box() succeeded as request #%s: new box ID: %s\n",
103 refnumber
, db_owner_info
->dbID
);
108 isds_DbOwnerInfo_free(&db_owner_info
);
109 isds_list_free(&users
);
112 err
= isds_logout(ctx
);
114 printf("isds_logout() failed: %s\n", isds_strerror(err
));
118 err
= isds_ctx_free(&ctx
);
120 printf("isds_ctx_free() failed: %s\n", isds_strerror(err
));
124 err
= isds_cleanup();
126 printf("isds_cleanup() failed: %s\n", isds_strerror(err
));