test: guess_raw_type: plain signed incoming message
[libisds.git] / client / addbox.c
blob912369bdc37a23844c960cc6476b940ae164a86f
1 #define _XOPEN_SOURCE 500
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <locale.h>
5 #include <time.h>
6 #include <string.h>
7 #include <isds.h>
8 #include "common.h"
11 int main(int argc, char **argv) {
12 struct isds_ctx *ctx = NULL;
13 isds_error err;
14 struct isds_DbOwnerInfo *db_owner_info = NULL;
15 struct isds_list *users = NULL;
17 setlocale(LC_ALL, "");
19 err = isds_init();
20 if (err) {
21 printf("isds_init() failed: %s\n", isds_strerror(err));
22 exit(EXIT_FAILURE);
25 isds_set_logging(ILF_ALL & ~ILF_HTTP, ILL_ALL);
27 ctx = isds_ctx_create();
28 if (!ctx) {
29 printf("isds_ctx_create() failed");
32 err = isds_set_timeout(ctx, 10000);
33 if (err) {
34 printf("isds_set_timeout() failed: %s\n", isds_strerror(err));
37 /* err = isds_set_tls(ctx, ITLS_VERIFY_SERVER, 0);
38 if (err) {
39 printf("isds_set_tls(ITLS_VERIFY_SERVER) failed: %s\n",
40 isds_strerror(err));
43 err = isds_set_tls(ctx, ITLS_CA_FILE, "/etc/ssl/certs/ca-certificates.crt");
44 if (err) {
45 printf("isds_set_tls(ITLS_CA_FILE) failed: %s\n",
46 isds_strerror(err));
47 }*/
49 err = isds_login(ctx, url, username, password, NULL);
50 if (err) {
51 printf("isds_login() failed: %s: %s\n", isds_strerror(err),
52 isds_long_message(ctx));
53 } else {
54 printf("Logged in :)\n");
59 printf("Getting info about my box:\n");
60 err = isds_GetOwnerInfoFromLogin(ctx, &db_owner_info);
61 if (err) {
62 printf("isds_GetOwnerInfoFromLogin() failed: %s: %s\n",
63 isds_strerror(err), isds_long_message(ctx));
64 } else {
65 printf("isds_GetOwnerInfoFromLogin() succeeded\n");
67 print_DbOwnerInfo(db_owner_info);
71 /* Get info all users of this box */
72 if (db_owner_info) {
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);
76 if (err) {
77 printf("isds_GetDataBoxUsers() failed: %s: %s\n",
78 isds_strerror(err), isds_long_message(ctx));
79 } else {
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 */
90 if (db_owner_info) {
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);
98 if (err) {
99 printf("isds_add_box() failed: %s: %s\n",
100 isds_strerror(err), isds_long_message(ctx));
101 } else {
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);
113 if (err) {
114 printf("isds_logout() failed: %s\n", isds_strerror(err));
118 err = isds_ctx_free(&ctx);
119 if (err) {
120 printf("isds_ctx_free() failed: %s\n", isds_strerror(err));
124 err = isds_cleanup();
125 if (err) {
126 printf("isds_cleanup() failed: %s\n", isds_strerror(err));
129 exit (EXIT_SUCCESS);