diff options
author | Martin Willi <martin@revosec.ch> | 2010-03-24 11:08:59 +0100 |
---|---|---|
committer | Martin Willi <martin@revosec.ch> | 2010-03-25 14:28:29 +0100 |
commit | 4f0932ecfeb7400e39b990ac2a7716657d4bbe09 (patch) | |
tree | aa8827b2cbf06eede7a665ba6cf9e43a7d8077f5 /src/libcharon/plugins/dhcp/dhcp_transaction.c | |
parent | 20ee54d06f27884dd959e5004be61f9014e5ed39 (diff) | |
download | strongswan-4f0932ecfeb7400e39b990ac2a7716657d4bbe09.tar.bz2 strongswan-4f0932ecfeb7400e39b990ac2a7716657d4bbe09.tar.xz |
Added DHCP request construction, ACK processing
Diffstat (limited to 'src/libcharon/plugins/dhcp/dhcp_transaction.c')
-rw-r--r-- | src/libcharon/plugins/dhcp/dhcp_transaction.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/libcharon/plugins/dhcp/dhcp_transaction.c b/src/libcharon/plugins/dhcp/dhcp_transaction.c index 14e65409f..27235ffb9 100644 --- a/src/libcharon/plugins/dhcp/dhcp_transaction.c +++ b/src/libcharon/plugins/dhcp/dhcp_transaction.c @@ -41,6 +41,11 @@ struct private_dhcp_transaction_t { * received DHCP address */ host_t *address; + + /** + * discovered DHCP server address + */ + host_t *server; }; METHOD(dhcp_transaction_t, get_id, u_int32_t, @@ -68,11 +73,25 @@ METHOD(dhcp_transaction_t, get_address, host_t*, return this->address; } +METHOD(dhcp_transaction_t, set_server, void, + private_dhcp_transaction_t *this, host_t *server) +{ + DESTROY_IF(this->server); + this->server = server; +} + +METHOD(dhcp_transaction_t, get_server, host_t*, + private_dhcp_transaction_t *this) +{ + return this->server; +} + METHOD(dhcp_transaction_t, destroy, void, private_dhcp_transaction_t *this) { this->identity->destroy(this->identity); DESTROY_IF(this->address); + DESTROY_IF(this->server); free(this); } @@ -90,6 +109,8 @@ dhcp_transaction_t *dhcp_transaction_create(u_int32_t id, .get_identity = _get_identity, .set_address = _set_address, .get_address = _get_address, + .set_server = _set_server, + .get_server = _get_server, .destroy = _destroy, }, .id = id, |