Line data Source code
1 : #include <config.h>
2 :
3 : #if HAVE_STRING_H
4 : #include <string.h>
5 : #endif /* HAVE_STRING_H */
6 :
7 : #include <stdio.h>
8 : #include <ctpublic.h>
9 : #include "common.h"
10 :
11 : /* Testing: Server messages limit */
12 : int
13 8 : main(int argc, char *argv[])
14 : {
15 : CS_CONTEXT *ctx;
16 : CS_CONNECTION *conn;
17 : CS_COMMAND *cmd;
18 8 : int verbose = 0;
19 : CS_RETCODE ret;
20 : int i;
21 : CS_INT num_msgs, totMsgs;
22 : CS_SERVERMSG server_message;
23 :
24 : if (verbose) {
25 : printf("Trying login\n");
26 : }
27 8 : ret = try_ctlogin(&ctx, &conn, &cmd, verbose);
28 8 : if (ret != CS_SUCCEED) {
29 0 : fprintf(stderr, "Login failed\n");
30 0 : return 1;
31 : }
32 :
33 8 : if (ct_diag(conn, CS_INIT, CS_UNUSED, CS_UNUSED, NULL) != CS_SUCCEED) {
34 0 : fprintf(stderr, "ct_diag(CS_INIT) failed\n");
35 0 : return 1;
36 : }
37 :
38 8 : totMsgs = 4;
39 :
40 8 : if (ct_diag(conn, CS_MSGLIMIT, CS_SERVERMSG_TYPE, CS_UNUSED, &totMsgs) != CS_SUCCEED) {
41 0 : fprintf(stderr, "ct_diag(CS_STATUS) failed\n");
42 0 : return 1;
43 : }
44 :
45 8 : printf("Maximum message limit is set to %d.\n", totMsgs);
46 :
47 8 : if (ct_diag(conn, CS_STATUS, CS_SERVERMSG_TYPE, CS_UNUSED, &num_msgs) != CS_SUCCEED) {
48 0 : fprintf(stderr, "ct_diag(CS_STATUS) failed\n");
49 0 : return 1;
50 : }
51 :
52 8 : printf("Number of messages returned: %d\n", num_msgs);
53 :
54 8 : for (i = 0; i < num_msgs; i++) {
55 :
56 0 : if (ct_diag(conn, CS_GET, CS_SERVERMSG_TYPE, i + 1, &server_message) != CS_SUCCEED) {
57 0 : fprintf(stderr, "cs_diag(CS_GET) failed\n");
58 0 : return 1;
59 : }
60 :
61 0 : servermsg_cb(ctx, conn, &server_message);
62 :
63 : }
64 :
65 8 : if (ct_diag(conn, CS_CLEAR, CS_SERVERMSG_TYPE, CS_UNUSED, NULL) != CS_SUCCEED) {
66 0 : fprintf(stderr, "cs_diag(CS_CLEAR) failed\n");
67 0 : return 1;
68 : }
69 :
70 8 : if (ct_diag(conn, CS_STATUS, CS_SERVERMSG_TYPE, CS_UNUSED, &num_msgs) != CS_SUCCEED) {
71 0 : fprintf(stderr, "cs_diag(CS_STATUS) failed\n");
72 0 : return 1;
73 : }
74 8 : if (num_msgs != 0) {
75 0 : fprintf(stderr, "cs_diag(CS_CLEAR) failed there are still %d messages on queue\n", num_msgs);
76 0 : return 1;
77 : }
78 :
79 8 : ret = try_ctlogout(ctx, conn, cmd, verbose);
80 8 : if (ret != CS_SUCCEED) {
81 0 : fprintf(stderr, "Logout failed\n");
82 0 : return 1;
83 : }
84 :
85 : return 0;
86 : }
|