Annotation of mqtt/src/client.c, revision 1.1.2.7
1.1.2.1 misho 1: #include "global.h"
2: #include "mqtt.h"
3:
4:
5: int
6: InitClient(void)
7: {
8: int sock;
9:
10: sock = socket(args->addr.sa.sa_family, SOCK_STREAM, IPPROTO_TCP);
11: if (sock == -1) {
12: printf("Error:: socket() #%d - %s\n", errno, strerror(errno));
13: return -1;
14: }
15: if (connect(sock, &args->addr.sa, args->addr.sa.sa_len) == -1) {
16: printf("Error:: connect() #%d - %s\n", errno, strerror(errno));
17: return -1;
18: }
19:
20: return sock;
21: }
1.1.2.2 misho 22:
23: int
1.1.2.4 misho 24: try2Connect(int sock)
1.1.2.2 misho 25: {
1.1.2.4 misho 26: int siz = 0;
1.1.2.6 misho 27: struct pollfd pfd;
1.1.2.4 misho 28:
1.1.2.6 misho 29: printf("ka=%d\n", args->ka);
1.1.2.7 ! misho 30: siz = mqtt_msgCONNECT(args->msg, (char*) AIT_GET_STR(&args->ConnID), args->ka,
! 31: (char*) AIT_GET_STR(&args->User), (char*) AIT_GET_STR(&args->Pass),
! 32: (char*) args->Will.Topic.val.string, (char*) args->Will.Msg.val.string,
1.1.2.5 misho 33: !args->notClear, args->QoS, args->Retain);
1.1.2.4 misho 34: if (siz == -1) {
35: printf("Error:: msgCONNECT #%d - %s\n", mqtt_GetErrno(), mqtt_GetError());
36: return -1;
37: }
38:
39: siz = send(sock, args->msg->msg_base, siz, 0);
40: if (siz == -1) {
41: printf("Error:: send() #%d - %s\n", errno, strerror(errno));
42: return -1;
43: } else
1.1.2.7 ! misho 44: ioVERBOSE(3) printf("Sended CONNECT %d bytes\n", siz);
1.1.2.4 misho 45:
1.1.2.6 misho 46: printf("ka=%d\n", args->ka);
47: pfd.fd = sock;
48: pfd.events = POLLIN;
49: switch (poll(&pfd, 1, args->ka * 1000)) {
50: case -1:
51: printf("Error:: poll() #%d - %s\n", errno, strerror(errno));
52: return -1;
53: case 0:
54: printf("ka=%d\n", args->ka);
1.1.2.7 ! misho 55: ioVERBOSE(3) printf("Timeout reached (%d) ...\n", args->ka * 1000);
1.1.2.6 misho 56: return -1;
57: }
58: if (pfd.revents & (POLLERR | POLLHUP | POLLNVAL))
59: return -1;
60:
61: siz = recv(sock, args->msg->msg_base, args->msg->msg_len, 0);
62: if (siz == -1) {
63: printf("Error:: recv() #%d - %s\n", errno, strerror(errno));
64: return -1;
65: } else
1.1.2.7 ! misho 66: ioVERBOSE(3) printf("Received %d bytes\n", siz);
1.1.2.6 misho 67:
68: return (u_char) mqtt_readCONNACK(args->msg);
1.1.2.2 misho 69: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>