source:
vbox/trunk/src/VBox/NetworkServices/Dhcpd/DHCPD.h@
73529
Last change on this file since 73529 was 70836, checked in by , 7 years ago | |
---|---|
|
|
File size: 1.5 KB |
Line | |
---|---|
1 | /* $Id: DHCPD.h 70836 2018-01-31 14:55:44Z vboxsync $ */ |
2 | /** @file |
3 | * DHCP server - protocol logic |
4 | */ |
5 | |
6 | /* |
7 | * Copyright (C) 2017-2018 Oracle Corporation |
8 | * |
9 | * This file is part of VirtualBox Open Source Edition (OSE), as |
10 | * available from http://www.virtualbox.org. This file is free software; |
11 | * you can redistribute it and/or modify it under the terms of the GNU |
12 | * General Public License (GPL) as published by the Free Software |
13 | * Foundation, in version 2 as it comes in the "COPYING" file of the |
14 | * VirtualBox OSE distribution. VirtualBox OSE is distributed in the |
15 | * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. |
16 | */ |
17 | |
18 | #ifndef _DHCPD_DHCPD_H_ |
19 | #define _DHCPD_DHCPD_H_ |
20 | |
21 | #include "Defs.h" |
22 | #include "Config.h" |
23 | #include "DhcpMessage.h" |
24 | #include "Db.h" |
25 | |
26 | |
27 | class DHCPD |
28 | { |
29 | const Config *m_pConfig; |
30 | std::string m_strLeasesFileName; |
31 | Db m_db; |
32 | |
33 | public: |
34 | DHCPD(); |
35 | |
36 | int init(const Config *); |
37 | |
38 | DhcpServerMessage *process(const std::unique_ptr<DhcpClientMessage> &req) |
39 | { |
40 | if (req.get() == NULL) |
41 | return NULL; |
42 | |
43 | return process(*req.get()); |
44 | } |
45 | |
46 | DhcpServerMessage *process(DhcpClientMessage &req); |
47 | |
48 | private: |
49 | DhcpServerMessage *doDiscover(DhcpClientMessage &req); |
50 | DhcpServerMessage *doRequest(DhcpClientMessage &req); |
51 | DhcpServerMessage *doInform(DhcpClientMessage &req); |
52 | |
53 | DhcpServerMessage *doDecline(DhcpClientMessage &req); |
54 | DhcpServerMessage *doRelease(DhcpClientMessage &req); |
55 | |
56 | DhcpServerMessage *createMessage(int type, DhcpClientMessage &req); |
57 | |
58 | void loadLeases(); |
59 | void saveLeases(); |
60 | }; |
61 | |
62 | #endif /* _DHCPD_DHCPD_H_ */ |
Note:
See TracBrowser
for help on using the repository browser.