diff options
author | shin <shin@FreeBSD.org> | 2000-03-09 15:07:38 +0000 |
---|---|---|
committer | shin <shin@FreeBSD.org> | 2000-03-09 15:07:38 +0000 |
commit | 4bd515c32ffabb15de94b74baf8b0f8667f7af57 (patch) | |
tree | 4b69c8292845e098e7a9e3b625046f2e66fd8b43 /usr.sbin/inetd | |
parent | af76e7b9bcaf7ae8ca96282b53656faf8bb99dfa (diff) | |
download | FreeBSD-src-4bd515c32ffabb15de94b74baf8b0f8667f7af57.zip FreeBSD-src-4bd515c32ffabb15de94b74baf8b0f8667f7af57.tar.gz |
Fix addr length argument value passed to sendto().
Some inetd internal udp servers didn't worked with problem.
Also fix recvfrom() "fromlen" arg type from int * to socklen_t *.
Approved by: jkh
Submitted by: bde
Diffstat (limited to 'usr.sbin/inetd')
-rw-r--r-- | usr.sbin/inetd/builtins.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/usr.sbin/inetd/builtins.c b/usr.sbin/inetd/builtins.c index f05971f..30cde03 100644 --- a/usr.sbin/inetd/builtins.c +++ b/usr.sbin/inetd/builtins.c @@ -113,7 +113,8 @@ chargen_dg(s, sep) /* Character generator */ { struct sockaddr_storage ss; static char *rs; - int len, size; + int len; + socklen_t size; char text[LINESIZ+2]; if (endring == 0) { @@ -139,8 +140,7 @@ chargen_dg(s, sep) /* Character generator */ rs = ring; text[LINESIZ] = '\r'; text[LINESIZ + 1] = '\n'; - (void) sendto(s, text, sizeof(text), 0, - (struct sockaddr *)&ss, sizeof(ss)); + (void) sendto(s, text, sizeof(text), 0, (struct sockaddr *)&ss, size); } /* ARGSUSED */ @@ -190,7 +190,7 @@ daytime_dg(s, sep) /* Return human-readable time of day */ char buffer[256]; time_t clock; struct sockaddr_storage ss; - int size; + socklen_t size; clock = time((time_t *) 0); @@ -204,7 +204,7 @@ daytime_dg(s, sep) /* Return human-readable time of day */ (void) sprintf(buffer, "%.24s\r\n", ctime(&clock)); (void) sendto(s, buffer, strlen(buffer), 0, - (struct sockaddr *)&ss, sizeof(ss)); + (struct sockaddr *)&ss, size); } /* ARGSUSED */ @@ -269,7 +269,8 @@ echo_dg(s, sep) /* Echo service -- echo data back */ struct servtab *sep; { char buffer[BUFSIZE]; - int i, size; + int i; + socklen_t size; struct sockaddr_storage ss; size = sizeof(ss); @@ -280,8 +281,7 @@ echo_dg(s, sep) /* Echo service -- echo data back */ if (check_loop((struct sockaddr *)&ss, sep)) return; - (void) sendto(s, buffer, i, 0, (struct sockaddr *)&ss, - sizeof(ss)); + (void) sendto(s, buffer, i, 0, (struct sockaddr *)&ss, size); } /* ARGSUSED */ @@ -638,7 +638,7 @@ machtime_dg(s, sep) { unsigned long result; struct sockaddr_storage ss; - int size; + socklen_t size; size = sizeof(ss); if (recvfrom(s, (char *)&result, sizeof(result), 0, @@ -650,7 +650,7 @@ machtime_dg(s, sep) result = machtime(); (void) sendto(s, (char *) &result, sizeof(result), 0, - (struct sockaddr *)&ss, sizeof(ss)); + (struct sockaddr *)&ss, size); } /* ARGSUSED */ |