* Improved syslog output.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39596 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2010-11-23 21:25:09 +00:00
parent af0745618f
commit 4ac660519e
1 changed files with 37 additions and 9 deletions

View File

@ -9,7 +9,6 @@
#include "DHCPClient.h" #include "DHCPClient.h"
#include "NetServer.h"
#include <Message.h> #include <Message.h>
#include <MessageRunner.h> #include <MessageRunner.h>
@ -24,6 +23,12 @@
#include <sys/sockio.h> #include <sys/sockio.h>
#include <sys/time.h> #include <sys/time.h>
#include <Debug.h>
#include <Message.h>
#include <MessageRunner.h>
#include "NetServer.h"
// See RFC 2131 for DHCP, see RFC 1533 for BOOTP/DHCP options // See RFC 2131 for DHCP, see RFC 1533 for BOOTP/DHCP options
@ -136,6 +141,8 @@ struct dhcp_message {
uint8* PutOption(uint8* options, message_option option, const uint8* data, uint8* PutOption(uint8* options, message_option option, const uint8* data,
uint32 size); uint32 size);
uint8* FinishOptions(uint8* options); uint8* FinishOptions(uint8* options);
static const char* TypeToString(message_type type);
} _PACKED; } _PACKED;
#define DHCP_FLAG_BROADCAST 0x8000 #define DHCP_FLAG_BROADCAST 0x8000
@ -153,6 +160,7 @@ static const uint8 kRequestParameters[] = {
dhcp_message::dhcp_message(message_type type) dhcp_message::dhcp_message(message_type type)
{ {
ASSERT(this == offsetof(this, opcode));
memset(this, 0, sizeof(*this)); memset(this, 0, sizeof(*this));
options_magic = htonl(OPTION_MAGIC); options_magic = htonl(OPTION_MAGIC);
@ -330,6 +338,27 @@ dhcp_message::FinishOptions(uint8* options)
} }
/*static*/ const char*
dhcp_message::TypeToString(message_type type)
{
switch (type) {
#define CASE(x) case x: return #x;
CASE(DHCP_NONE)
CASE(DHCP_DISCOVER)
CASE(DHCP_OFFER)
CASE(DHCP_REQUEST)
CASE(DHCP_DECLINE)
CASE(DHCP_ACK)
CASE(DHCP_NACK)
CASE(DHCP_RELEASE)
CASE(DHCP_INFORM)
#undef CASE
}
return "<unknown>";
}
// #pragma mark - // #pragma mark -
@ -480,6 +509,9 @@ DHCPClient::_Negotiate(dhcp_state state)
continue; continue;
} }
syslog(LOG_DEBUG, "DHCP received %s for %s\n",
dhcp_message::TypeToString(message->Type()), Device());
switch (message->Type()) { switch (message->Type()) {
case DHCP_NONE: case DHCP_NONE:
default: default:
@ -488,8 +520,6 @@ DHCPClient::_Negotiate(dhcp_state state)
case DHCP_OFFER: case DHCP_OFFER:
{ {
syslog(LOG_DEBUG, "DHCP received offer for %s\n", Device());
// first offer wins // first offer wins
if (state != INIT) if (state != INIT)
break; break;
@ -524,7 +554,6 @@ DHCPClient::_Negotiate(dhcp_state state)
case DHCP_ACK: case DHCP_ACK:
{ {
syslog(LOG_DEBUG, "DHCP received ack for %s\n", Device());
if (state != REQUESTING && state != REBINDING if (state != REQUESTING && state != REBINDING
&& state != RENEWAL) && state != RENEWAL)
continue; continue;
@ -533,7 +562,8 @@ DHCPClient::_Negotiate(dhcp_state state)
BMessage address; BMessage address;
fResolverConfiguration.MakeEmpty(); fResolverConfiguration.MakeEmpty();
_ParseOptions(*message, address, fResolverConfiguration); _ParseOptions(*message, address, fResolverConfiguration);
// TODO: currently, only lease time and DNS is updated this way // TODO: currently, only lease time and DNS is updated this
// way
// our address request has been acknowledged // our address request has been acknowledged
state = ACKNOWLEDGED; state = ACKNOWLEDGED;
@ -553,8 +583,6 @@ DHCPClient::_Negotiate(dhcp_state state)
} }
case DHCP_NACK: case DHCP_NACK:
syslog(LOG_DEBUG, "DHCP received nack for %s\n", Device());
if (state != REQUESTING) if (state != REQUESTING)
continue; continue;
@ -793,8 +821,8 @@ status_t
DHCPClient::_SendMessage(int socket, dhcp_message& message, DHCPClient::_SendMessage(int socket, dhcp_message& message,
const BNetworkAddress& address) const const BNetworkAddress& address) const
{ {
syslog(LOG_DEBUG, "DHCP send message %u for %s\n", message.Type(), syslog(LOG_DEBUG, "DHCP send message %s for %s\n",
Device()); dhcp_message::TypeToString(message.Type()), Device());
ssize_t bytesSent = sendto(socket, &message, message.Size(), ssize_t bytesSent = sendto(socket, &message, message.Size(),
address.IsBroadcast() ? MSG_BCAST : 0, address, address.Length()); address.IsBroadcast() ? MSG_BCAST : 0, address, address.Length());