Improve socket client example + work on review comments

Signed-off-by: DL6ER <dl6er@dl6er.de>
This commit is contained in:
DL6ER
2018-01-01 21:33:39 +01:00
parent 8a720b6f19
commit 7638d8cdb1
2 changed files with 16 additions and 26 deletions
+5 -5
View File
@@ -181,7 +181,7 @@ void swrite(char server_message[SOCKETBUFFERLEN], int sock)
logg("WARNING: Socket write returned error code %i", errno);
}
int telnet_listener(int sockfd)
int listener(int sockfd)
{
struct sockaddr_in cli_addr;
// set all values in the buffer to zero
@@ -246,7 +246,7 @@ void *telnet_connection_handler_thread(void *socket_desc)
if(sock == 0)
{
// Client disconnected by seding EOT or ">quit"
// Client disconnected by sending EOT or ">quit"
break;
}
}
@@ -304,7 +304,7 @@ void *socket_connection_handler_thread(void *socket_desc)
if(sock == 0)
{
// Socket connection interrupted by seding EOT or ">quit"
// Socket connection interrupted by sending EOT or ">quit"
break;
}
}
@@ -344,7 +344,7 @@ void *telnet_listening_thread(void *args)
while(!killed)
{
// Look for new clients that want to connect
int csck = telnet_listener(telnetfd);
int csck = listener(telnetfd);
// Allocate memory used to transport client socket ID to client listening thread
int *newsock;
@@ -382,7 +382,7 @@ void *socket_listening_thread(void *args)
while(!killed)
{
// Look for new clients that want to connect
int csck = telnet_listener(socketfd);
int csck = listener(socketfd);
// Allocate memory used to transport client socket ID to client listening thread
int *newsock;
+11 -21
View File
@@ -1,5 +1,3 @@
/* uds_client.c */
#include <sys/types.h>
/* Pi-hole: A black hole for Internet advertisements
* (c) 2017 Pi-hole, LLC (https://pi-hole.net)
* Network-wide ad blocking via your own hardware.
@@ -9,7 +7,7 @@
*
* This file is copyright under the latest version of the EUPL.
* Please see LICENSE file for your rights under this license. */
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <netinet/in.h>
@@ -57,31 +55,23 @@ int main (int argc, char **argv) {
sprintf(buffer, ">stats");
send(socketfd, buffer, strlen (buffer), 0);
// Receive message
size = recv(socketfd, buffer, BUF-1, 0);
// Zero-terminate incoming message
if(size > 0)
buffer[size] = '\0';
// Try to receive data until either recv() fails or we see "--EOM--"
while(size > -1 && strstr(buffer, "--EOM--") == NULL)
while((size = recv(socketfd, buffer, BUF-1, 0)) > -1)
{
// Print received data to stdout
printf("%s", buffer);
// Receive potential new message
size = recv(socketfd, buffer, BUF-1, 0);
// Zero-terminate incoming message
if(size > 0)
buffer[size] = '\0';
}
// Print received data to stdout
printf("%s", buffer);
// Print received data to stdout
printf("%s", buffer);
// Exit on End Of Message
if(strstr(buffer, "--EOM--") != NULL)
break;
}
// Close Unix socket connection
close(socketfd);
return EXIT_SUCCESS;
}
}