svn commit: r211223 - projects/sv/usr.sbin/netdumpsrv
Attilio Rao
attilio at FreeBSD.org
Thu Aug 12 15:05:42 UTC 2010
Author: attilio
Date: Thu Aug 12 15:05:41 2010
New Revision: 211223
URL: http://svn.freebsd.org/changeset/base/211223
Log:
- Add a couple of fix-up tags
- Rename client_ipstr into client_ntoa and implement it in a more
'compliant' way.
Modified:
projects/sv/usr.sbin/netdumpsrv/netdump_server.c
Modified: projects/sv/usr.sbin/netdumpsrv/netdump_server.c
==============================================================================
--- projects/sv/usr.sbin/netdumpsrv/netdump_server.c Thu Aug 12 14:16:57 2010 (r211222)
+++ projects/sv/usr.sbin/netdumpsrv/netdump_server.c Thu Aug 12 15:05:41 2010 (r211223)
@@ -52,6 +52,8 @@
/* Host name length (keep at least as big as INET_ADDRSTRLEN) */
#define MAXHOSTNAMELEN 256
+#define client_ntoa(cl) inet_ntoa((cl)->ip)
+
struct netdump_client
{
SLIST_ENTRY(netdump_client) iter;
@@ -76,11 +78,6 @@ struct in_addr bindip;
struct pidfh *pfh;
int sock;
-char * client_ipstr(struct netdump_client *client)
-{
- return addr2ascii(AF_INET, &client->ip, sizeof(client->ip), NULL);
-}
-
struct netdump_client * alloc_client(struct in_addr *ip)
{
struct sockaddr_in saddr;
@@ -99,7 +96,7 @@ struct netdump_client * alloc_client(str
client->sock = -1;
client->last_msg = now;
- /* Get the hostname */
+ /* XXX: To be replaced by getnameinfo(). Get the hostname */
if ((hp = gethostbyaddr((const char *)ip, sizeof(*ip), AF_INET)) == NULL ||
!hp->h_name || strlen(hp->h_name) == 0)
{
@@ -157,7 +154,7 @@ struct netdump_client * alloc_client(str
free(client);
return NULL;
}
- bufsz=131072; /* Enough to hold approx twice the chunk size. Should be
+ bufsz=131072; /* XXX: Enough to hold approx twice the chunk size. Should be
* plenty for any 1 client. */
if (setsockopt(client->sock, SOL_SOCKET, SO_RCVBUF, &bufsz, sizeof(bufsz)))
{
@@ -191,6 +188,7 @@ struct netdump_client * alloc_client(str
{
perror("fdopen");
close(fd);
+ /* XXX */
unlink(client->infofilename);
continue;
}
@@ -220,7 +218,7 @@ struct netdump_client * alloc_client(str
if (!client->infofile || client->corefd == -1)
{
fprintf(stderr, "Can't create output files for new client %s [%s]\n",
- client->hostname, client_ipstr(client));
+ client->hostname, client_ntoa(client));
if (client->infofile)
{
fclose(client->infofile);
@@ -267,7 +265,7 @@ void exec_handler(struct netdump_client
{
close(sock);
pidfile_close(pfh);
- execl(handler_script, handler_script, reason, client_ipstr(client),
+ execl(handler_script, handler_script, reason, client_ntoa(client),
client->hostname, client->infofilename, client->corefilename,
NULL);
perror("execl");
@@ -277,7 +275,7 @@ void exec_handler(struct netdump_client
void handle_timeout(struct netdump_client *client)
{
- printf("Client %s timed out\n", client_ipstr(client));
+ printf("Client %s timed out\n", client_ntoa(client));
fputs("Dump incomplete: client timed out\n", client->infofile);
exec_handler(client, "timeout");
free_client(client);
@@ -362,10 +360,10 @@ int handle_herald(struct sockaddr_in *fr
}
fprintf(client->infofile, "Dump from %s [%s]\n", client->hostname,
- client_ipstr(client));
+ client_ntoa(client));
printf("New dump from client %s [%s] (to %s)\n", client->hostname,
- client_ipstr(client), client->corefilename);
+ client_ntoa(client), client->corefilename);
send_ack(client, msg);
@@ -392,7 +390,7 @@ int handle_kdh(struct netdump_client *cl
if (msg->hdr.len < sizeof(struct kerneldumpheader))
{
fprintf(stderr, "Bad KDH from %s [%s]: packet too small\n",
- client->hostname, client_ipstr(client));
+ client->hostname, client_ntoa(client));
fputs("Bad KDH: packet too small\n", f);
fflush(f);
send_ack(client, msg);
@@ -423,7 +421,7 @@ int handle_kdh(struct netdump_client *cl
fflush(f);
fprintf(stdout, "(KDH from %s [%s])", client->hostname,
- client_ipstr(client));
+ client_ntoa(client));
fflush(stdout);
send_ack(client, msg);
@@ -450,7 +448,7 @@ int handle_vmcore(struct netdump_client
if (pwrite(client->corefd, msg->data, msg->hdr.len, msg->hdr.offset) == -1)
{
fprintf(stderr, "pwrite (for client %s [%s]): %s\n", client->hostname,
- client_ipstr(client), strerror(errno));
+ client_ntoa(client), strerror(errno));
fprintf(client->infofile, "Dump unsuccessful: write error at offset %08"PRIx64": %s\n",
msg->hdr.offset, strerror(errno));
exec_handler(client, "error");
@@ -472,7 +470,7 @@ int handle_finish(struct netdump_client
printf("\nCompleted dump from client %s [%s]\n", client->hostname,
- client_ipstr(client));
+ client_ntoa(client));
fflush(stdout);
fputs("Dump complete\n", client->infofile);
More information about the svn-src-projects
mailing list