*
* Usage: echod -h give all info
*
- * $Id: TCP_echod.c,v 1.7 2003/06/19 14:18:27 piccardi Exp $
+ * $Id: TCP_echod.c,v 1.10 2003/07/29 22:41:36 piccardi Exp $
*
****************************************************************/
/*
#include <syslog.h> /* syslog system functions */
#include <signal.h> /* signal functions */
#include <errno.h> /* error code */
+#include <string.h> /* error strings */
#include "Gapil.h"
#define BACKLOG 10
*
* ***********************************************************/
/* install SIGCHLD handler */
- Signal(SIGCHLD, HandSigCHLD); /* establish handler */
+ SignalRestart(SIGCHLD, HandSigCHLD); /* establish handler */
/* create socket */
if ( (list_fd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
perror("Socket creation error");
int size;
/* main loop, reading 0 char means client close connection */
while ( (nread = read(sockfd, buffer, MAXLINE)) != 0) {
+ if (nread < 0) {
+ snprintf(debug, MAXLINE+20, "Errore in lettura: %s \n",
+ strerror(errno));
+ if (demonize) { /* daemon mode */
+ syslog(LOG_DEBUG, debug);
+ } else {
+ printf("%s", debug);
+ }
+ }
nwrite = FullWrite(sockfd, buffer, nread);
+ if (nwrite) {
+ snprintf(debug, MAXLINE+20, "Errore in scrittura: %s \n",
+ strerror(errno));
+ if (demonize) { /* daemon mode */
+ syslog(LOG_DEBUG, debug);
+ } else {
+ printf("%s", debug);
+ }
+ }
if (debugging) {
buffer[nread] = 0;
snprintf(debug, MAXLINE+20, "Letti %d byte, %s", nread, buffer);
* routine to print error on stout or syslog
*/
void PrintErr(char * error) {
- if (demonize) { /* daemon mode */
- syslog(LOG_ERR, error);
+ if (demonize) { /* daemon mode */
+ syslog(LOG_ERR, "%s: %m", error); /* log string and error message */
} else {
perror(error);
}