Jump to main content

##

# TCPIP_DHCPS_LeaseRemoveById Function

## C

    TCPIP_DHCPS_RES TCPIP_DHCPS_LeaseRemoveById(TCPIP_NET_HANDLE netH, const uint8_t* clientId, size_t idLen, bool keepAddBusy);

## Description

Remove one entry from the DHCP server DB

This function is used to remove one entry from the DB of the selected interface

## Precondition

The DHCP Server module should have been initialized.

## Parameters

Parameters | Description
--- | ---
hNet | selected interface handle
clientId | the client ID, usually a MAC address
idLen | length of the ID
keepAddBusy | - if true, the corresponding IP address (if the entry exists) will continue to be marked as busy
| and it won't be used for other client leases
| - otherwise, the IP address will be marked as available
| This should be the default

## Returns

- TCPIP_DHCPS_RES_OK - if the selected entry was found and deleted from the selected interface

- < 0 - if wrong interface or DHCP server is not running on that interface, or client entry not found

- TCPIP_DHCPS_RES_ACCESS_LOCKED - if access to the DHCP server DB is locked by another thread and the the call can be retried. Multi-threaded access is enabled (build symbol TCPIP_DHCPS_MULTI_THREADED_ACCESS != 0)

## Remarks

The maximum size of the client ID should be TCPIP_DHCPS_CLIENT_ID_MAX_SIZE. Extra characters will be truncated. Usually the client ID is a MAC address. However some clients can use different, longer IDs.

Function exists only when build symbol TCPIP_DHCPS_DYNAMIC_DB_ACCESS != 0

The function will delete permanent leases too.

When a server lease is removed, a corresponding client (if exists) will still hold a valid lease. When the client eventually contacts the server to renew its lease the operation will fail as the server has no knwoledge of the client lease.