projects
/
gapil.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ultime modifiche
[gapil.git]
/
sources
/
TCP_echod.c
diff --git
a/sources/TCP_echod.c
b/sources/TCP_echod.c
index 08d926f5d462b700d0888e754472a8e8546013d2..576c47f2069ac3d03bcd2b177af409d20f9c9bdb 100644
(file)
--- a/
sources/TCP_echod.c
+++ b/
sources/TCP_echod.c
@@
-26,7
+26,7
@@
*
* Usage: echod -h give all info
*
*
* Usage: echod -h give all info
*
- * $Id: TCP_echod.c,v 1.
4 2003/06/18 21:19:24
piccardi Exp $
+ * $Id: TCP_echod.c,v 1.
7 2003/06/19 14:18:27
piccardi Exp $
*
****************************************************************/
/*
*
****************************************************************/
/*
@@
-58,9
+58,11
@@
int main(int argc, char *argv[])
* Variables definition
*/
int list_fd, conn_fd;
* Variables definition
*/
int list_fd, conn_fd;
- int waiting;
+ int waiting
= 0
;
pid_t pid;
pid_t pid;
- struct sockaddr_in serv_add;
+ struct sockaddr_in serv_add, cli_add;
+ socklen_t len;
+ char debug[MAXLINE], ipaddr[20];
/*
* Input section: decode parameters passed in the calling
* Use getopt function
/*
* Input section: decode parameters passed in the calling
* Use getopt function
@@
-142,12
+144,21
@@
int main(int argc, char *argv[])
/* handle echo to client */
while (1) {
/* accept connection */
/* handle echo to client */
while (1) {
/* accept connection */
- while (((conn_fd = accept(list_fd,
NULL, NULL)) < 0
)
- && (errno == EINTR));
+ while (((conn_fd = accept(list_fd,
(struct sockaddr *)&cli_add, &len)
)
+
< 0)
&& (errno == EINTR));
if ( conn_fd < 0) {
PrintErr("accept error");
exit(1);
}
if ( conn_fd < 0) {
PrintErr("accept error");
exit(1);
}
+ if (debugging) {
+ inet_ntop(AF_INET, &cli_add.sin_addr, ipaddr, sizeof(ipaddr));
+ snprintf(debug, MAXLINE, "Accepted connection form %s\n", ipaddr);
+ if (demonize) {
+ syslog(LOG_DEBUG, debug);
+ } else {
+ printf("%s", debug);
+ }
+ }
/* fork to handle connection */
if ( (pid = fork()) < 0 ){
PrintErr("fork error");
/* fork to handle connection */
if ( (pid = fork()) < 0 ){
PrintErr("fork error");
@@
-172,8
+183,9
@@
void usage(void) {
printf("Usage:\n");
printf(" echod [-h] \n");
printf(" -h print this help\n");
printf("Usage:\n");
printf(" echod [-h] \n");
printf(" -h print this help\n");
- printf(" -d
print
debug info\n");
+ printf(" -d
write
debug info\n");
printf(" -i use interactively\n");
printf(" -i use interactively\n");
+ printf(" -w N wait N sec. before calling accept\n");
exit(1);
}
/*
exit(1);
}
/*
@@
-190,7
+202,7
@@
void ServEcho(int sockfd) {
if (debugging) {
buffer[nread] = 0;
snprintf(debug, MAXLINE+20, "Letti %d byte, %s", nread, buffer);
if (debugging) {
buffer[nread] = 0;
snprintf(debug, MAXLINE+20, "Letti %d byte, %s", nread, buffer);
- if (demonize) { /*
go daemon
*/
+ if (demonize) { /*
daemon mode
*/
syslog(LOG_DEBUG, debug);
} else {
printf("%s", debug);
syslog(LOG_DEBUG, debug);
} else {
printf("%s", debug);
@@
-203,7
+215,7
@@
void ServEcho(int sockfd) {
* routine to print error on stout or syslog
*/
void PrintErr(char * error) {
* routine to print error on stout or syslog
*/
void PrintErr(char * error) {
- if (demonize) { /*
go daemon
*/
+ if (demonize) { /*
daemon mode
*/
syslog(LOG_ERR, error);
} else {
perror(error);
syslog(LOG_ERR, error);
} else {
perror(error);