diff options
Diffstat (limited to 'xmpp.c')
-rw-r--r-- | xmpp.c | 40 |
1 files changed, 21 insertions, 19 deletions
@@ -135,11 +135,11 @@ int xmpp_start_stream(int sock_fd, char *jid, char *domainpart) } /* - * Initialize the network connection to the XMPP server + * Initialize the network connection to the XMPP server and return socket fd * * TODO: Error handling is missing. */ -void xmpp_connect(void) +int xmpp_connect(void) { printf("net_init()\n"); @@ -155,36 +155,38 @@ void xmpp_connect(void) int sock = socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol); if (sock == -1) { printf("Failed to get socket from OS!."); - return; + return sock; } else { printf("Got socket number %d from OS.\n", sock); } if (connect(sock, addr->ai_addr, addr->ai_addrlen) == -1) { printf("Failed to connect!\n"); - return; + return sock; } else { printf("Successfully connected.\n"); } if (xmpp_start_stream(sock, jid, domain) == -1) { printf("Failed to init stream!\n"); - return; + return sock; } printf("Stream init sent.\n"); - printf("This is the server response:\n"); - char buf; - while(1) { - int retval = recv(sock, (void *)&buf, 1, 0); - if (retval == 0) { - printf("Connection closed!\n"); - break; - } else if (retval == 1) { - write(1, (const void *)&buf, 1); - } else { - printf(strerror(errno)); - printf("Unhandled recv() return value %d!\n", retval); - } - } + return sock; + +// printf("This is the server response:\n"); +// char buf; +// while(1) { +// int retval = recv(sock, (void *)&buf, 1, 0); +// if (retval == 0) { +// printf("Connection closed!\n"); +// break; +// } else if (retval == 1) { +// write(1, (const void *)&buf, 1); +// } else { +// printf(strerror(errno)); +// printf("Unhandled recv() return value %d!\n", retval); +// } +// } } |