* Improved syslog output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39596 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
af0745618f
commit
4ac660519e
|
@ -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());
|
||||||
|
|
Loading…
Reference in New Issue