From 271a8baaeb5cbd19047c50681d955c14115fc86f Mon Sep 17 00:00:00 2001 From: xengineering Date: Sun, 4 Dec 2022 14:04:06 +0100 Subject: Connect on mouse click With this commit the client starts the connection to the server as soon as the user clicks into the application window. Disconnect or reading / writing to the stream is not implemented. --- xmpp.c | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) (limited to 'xmpp.c') diff --git a/xmpp.c b/xmpp.c index c574ba5..dcf19a5 100644 --- a/xmpp.c +++ b/xmpp.c @@ -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); +// } +// } } -- cgit v1.2.3-70-g09d2