You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.1 KiB
70 lines
2.1 KiB
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
# |
|
# Filename: package/.../dog/check-ctime.patch |
|
# Copyright (C) 2007 The OpenSDE Project |
|
# |
|
# More information can be found in the files COPYING and README. |
|
# |
|
# This patch file is dual-licensed. It is available under the license the |
|
# patched project is licensed under, as long as it is an OpenSource license |
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|
# of the GNU General Public License as published by the Free Software |
|
# Foundation; either version 2 of the License, or (at your option) any later |
|
# version. |
|
# --- SDE-COPYRIGHT-NOTE-END --- |
|
|
|
diff --exclude='*~' --exclude='.*' -I '$Id:' -urN dog-1.7.orig/dog.c dog-1.7/dog.c |
|
This patch comes from Gentoo, author is the Gentoo maintainer of dog. |
|
--- ./dog.c 2005-05-13 08:01:37.000000000 -0400 |
|
+++ ./dog.c 2005-05-13 08:30:38.000000000 -0400 |
|
@@ -36,6 +36,7 @@ |
|
#include <string.h> |
|
#include "getopt.h" |
|
#include <limits.h> |
|
+#include <time.h> |
|
#include <netdb.h> |
|
|
|
// this is fun |
|
@@ -1321,26 +1322,35 @@ |
|
InetSockAddr sa; |
|
int newsock; |
|
uint32 ipAddr; |
|
- int k; |
|
+ socklen_t k; |
|
time_t curr_time; |
|
char curr_date[64]; |
|
|
|
k = sizeof(sa); |
|
while ((newsock=accept(sock,(struct sockaddr*)&sa,&k)) != -1) { |
|
if (!no_bind_header) { |
|
+ char *result = NULL; |
|
ipAddr = ntohl(sa.addr); |
|
time(&curr_time); |
|
- strcpy(curr_date,ctime(&curr_time)); |
|
+ if (!(result = ctime(&curr_time))) { |
|
+ perror("ctime"); |
|
+ goto done; |
|
+ } |
|
+ strncpy(curr_date, result, sizeof(curr_date) - 1); |
|
while (!isalnum(curr_date[strlen(curr_date)-1])) { |
|
curr_date[strlen(curr_date)-1] = 0; |
|
} |
|
printf("# %s from %d.%d.%d.%d:%d\n",curr_date,(int)ipAddr>>24,(int)(ipAddr>>16)&0xff,(int)(ipAddr>>8)&0xff,(int)ipAddr&0xff,ntohs(sa.port)); |
|
} |
|
- straight_dump = newsock; |
|
- DumpThings(argc,argv,hang_up_bind ? -1 : newsock); |
|
- if (hang_up_bind) { |
|
+ |
|
+ goto done; |
|
+ |
|
+ done: |
|
+ straight_dump = newsock; |
|
+ DumpThings(argc,argv,hang_up_bind ? -1 : newsock); |
|
+ if (hang_up_bind) { |
|
close(newsock); |
|
- } |
|
+ } |
|
} |
|
} |
|
|
|
|