/[smecontribs]/rpms/smeserver-dhcpmanager/contribs10/smeserver-dhcpmanager-2.0.4-Yet-more-changes-for-SM2-panels.patch
ViewVC logotype

Contents of /rpms/smeserver-dhcpmanager/contribs10/smeserver-dhcpmanager-2.0.4-Yet-more-changes-for-SM2-panels.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Sat Dec 30 15:47:19 2023 UTC (4 months, 2 weeks ago) by brianr
Branch: MAIN
* Sat Dec 30 2023 Brian Read <brianr@koozali.org> 2.0.4-15.sme
- And more fixes for SM2 panels [SME: ]

1 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Dhcpd.pm smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/lib/SrvMngr/Controller/Dhcpd.pm
2 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/lib/SrvMngr/Controller/Dhcpd.pm 2023-12-19 09:44:56.678590486 +0000
3 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/lib/SrvMngr/Controller/Dhcpd.pm 2023-12-30 15:31:00.000000000 +0000
4 @@ -117,22 +117,41 @@
5 $c->render( template => 'dhcpd' );
6 }
7
8 -
9 -sub do_winpopup {
10 - #
11 - # call to win pop up
12 - #
13 +sub netmask2cidr {
14 my $c = shift;
15 - my $title = $c->l("dhcpd_GLOBAL_WINPOPUP");
16 - my $modul = '';
17 - my $trt = "WINPOPUP";
18 - $dhcp_data{trt} = $trt;
19 - $dhcp_data{"first"} = '';
20 - #..... get winpopup details
21 - $c->stash( title => $title, modul => $modul, dhcp_data => \%dhcp_data );
22 - $c->render( template => 'dhcpd' );
23 + #my ($mask, $network) = @_;
24 + my $nmap_sme = esmith::ConfigDB->open('/home/e-smith/db/configuration');
25 + my $mask = $nmap_sme->get_value('LocalNetmask');
26 + my $network = $nmap_sme->get_prop('InternalInterface','Network');
27 + my @octet = split (/\./, $mask);
28 + my @bits;
29 + my $binmask;
30 + my $binoct;
31 + my $bitcount=0;
32 +
33 + foreach (@octet) {
34 + $binoct = dec2bin($_);
35 + $binmask = $binmask . substr $binoct, -8;
36 + }
37 +
38 + # let's count the 1s
39 + @bits = split (//,$binmask);
40 + foreach (@bits) {
41 + if ($_ eq "1") {
42 + $bitcount++;
43 + }
44 + }
45 +
46 + my $cidr = $network . "/" . $bitcount;
47 + return $cidr;
48 +}
49 +
50 +sub dec2bin {
51 + my $str = unpack("B32", pack("N", shift));
52 + return $str;
53 }
54
55 +
56 sub do_scan {
57 #
58 # call to show scan results
59 @@ -140,12 +159,13 @@
60 my $c = shift;
61 my $title = $c->l("dhcpd_SCANNING_NETWORK_TITLE");
62 my $modul = '';
63 - my $trt = "NETSCAN";
64 + my $trt = "SCAN";
65 $dhcp_data{trt} = $trt;
66 $dhcp_data{"first"} = '';
67 # ..... get scan results into dhcp_data
68 - dhcp_data{"scanresults"} = get_scan_results($c);
69 - $c->stash( title => $title, modul => $modul, dhcp_data => \%dhcp_data );
70 + $dhcp_data{"cidr"} = netmask2cidr($c);
71 + my @scanresults = get_scan_results($c);
72 + $c->stash( title => $title, modul => $modul, dhcp_data => \%dhcp_data, scanresults => @scanresults );
73 $c->render( template => 'dhcpd' );
74 }
75
76 @@ -361,8 +381,30 @@
77
78 sub get_scan_results {
79 my $c = shift;
80 - #...do it
81 - return "results";
82 + my $cidr = netmask2cidr($c);
83 + my $res = execute_nmap($cidr);
84 + return $res;
85 +}
86 +
87 +sub execute_nmap {
88 + my ($ip, $port) = @_;
89 + my @result;
90 + my $nmapcmd = qq(/usr/bin/nmap --script smb-os-discovery.nse -p U:137,T:139 $ip| \
91 + /bin/grep -Ev "MAC|NetBIOS|OS CPE"| /bin/grep -E "scan|done|Computer|OS"| \
92 + /bin/sed -e 's/Nmap scan/-- Scan/g'|/bin/sed -e 's/done/Done/g'| \
93 + /bin/sed -e 's/Nmap//g'|/bin/sed -e 's/|/ /g');
94 +
95 + open my $nmap, '-|', "$nmapcmd" or die "Can't start nmap: $!";
96 +
97 + while (my $line = <$nmap>) {
98 + chomp $line;
99 + my @fields = split /\s+/, $line;
100 + push @result, \@fields;
101 + }
102 +
103 + close $nmap;
104 +
105 + return \@result;
106 }
107
108
109 @@ -498,13 +540,6 @@
110 return @results;
111 }
112
113 -sub winpopup{
114 - my $c = shift;
115 - # Message in $c->param("winpopupmsg")
116 - # .... do it
117 - return TRUE;
118 -}
119 -
120 sub do_wol{
121 my $c = shift;
122 my $retVal = Perform_Wake_Up($c);
123 @@ -536,4 +571,4 @@
124
125 1;
126
127 -
128 \ No newline at end of file
129 +
130 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Dhcpd/en.pm smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Dhcpd/en.pm
131 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Dhcpd/en.pm 1970-01-01 01:00:00.000000000 +0100
132 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/lib/SrvMngr/I18N/Modules/Dhcpd/en.pm 2023-12-30 11:30:00.000000000 +0000
133 @@ -0,0 +1,109 @@
134 +package SrvMngr::I18N::Modules::Dhcpd::en;
135 +use strict;
136 +use warnings;
137 +use utf8;
138 +use Mojo::Base 'SrvMngr::I18N';
139 +
140 +use SrvMngr::I18N::Modules::General::en;
141 +
142 +my %lexicon = (
143 + 'dhcpd_ACTION' => 'Action',
144 + 'dhcpd_ACTIVE_DEVICE' => 'Active Device',
145 + 'dhcpd_ALL_OF_THEM' => 'All of them',
146 + 'dhcpd_CHECK_CLIENT_STATUS' => 'Always check the status of computers (Disabled is much faster)',
147 + 'dhcpd_CLEAN_ALL_DHCPLEASES' => 'You may want to clean the dhcpd.leases',
148 + 'dhcpd_CLICK_HERE_TO_MAIN_PANEL' => 'Return to the main panel',
149 + 'dhcpd_CONNECTED_IP' => 'Show DHCP Clients',
150 + 'dhcpd_CUSTOM_DNS_STATUS' => 'Custom DNS',
151 + 'dhcpd_CUSTOM_DNS_TITLE' => 'Enable custom DNS servers.',
152 + 'dhcpd_CUSTOM_GATEWAY_ADDRESS' => 'Gateway address',
153 + 'dhcpd_CUSTOM_GATEWAY_STATUS' => 'Custom gateway',
154 + 'dhcpd_CUSTOM_GATEWAY_TITLE' => 'Enable a custom gateway address.',
155 + 'dhcpd_CUSTOM_LEASETIME' => 'Custom lease time',
156 + 'dhcpd_CUSTOM_LEASETIME_TITLE' => 'Set the lease time (default is 86400 seconds).',
157 + 'dhcpd_CUSTOM_WINSERVER_ADDRESS' => 'WINS Server address',
158 + 'dhcpd_CUSTOM_WINSERVER_STATUS' => 'WINS Server',
159 + 'dhcpd_CUSTOM_WINSERVER_TITLE' => 'Enable a WINS Server.',
160 + 'dhcpd_DHCPD_SETTING_ERRORS' => 'DHCPd Settings ERRORS',
161 + 'dhcpd_DHCPD_SETTINGS_TITLE' => 'DHCP server settings',
162 + 'dhcpd_DHCPD_TITLE' => 'DHCP Manager',
163 + 'dhcpd_DHCP_END' => 'DHCP End',
164 + 'dhcpd_DHCP manager' => 'DHCP Manager',
165 + 'dhcpd_DHCP_RANGE_MUST_NOT_INCLUDE_SERVER_IP' =>'Incorrect range of IPs, the range of IP address allocation must not include the server address, Update unsuccessfull',
166 + 'dhcpd_DHCP_RANGE_WITH_BAD_IP' => 'Incorrect IP in the DHCP range, Update unsuccessfull',
167 + 'dhcpd_DHCP_START' => 'DHCP Start',
168 + 'dhcpd_DHCP_START_GREATER_DHCP_END_ERRORS' =>'Incorrect range of IPs, the DHCP Start is greater than the DHCP End , Update unsuccessfull',
169 + 'dhcpd_DISABLED' => 'Disabled',
170 + 'dhcpd_DNS_SERVER_WITH_BAD_IP' => 'Incorrect IP for DNS servers, Update unsuccessfull',
171 + 'dhcpd_DO_YOU_WANT_TO_SENT' => 'Do you want to send this message to',
172 + 'dhcpd_ENABLED' => 'Enabled',
173 + 'dhcpd_END_DATE' => 'End Date',
174 + 'dhcpd_ERROR_WHILE_REMOVING_ALL_LEASES' => 'Error while removing all dhcpd Leases',
175 + 'dhcpd_ERROR_WHILE_SAVING_SETTINGS' => 'Error while saving settings',
176 + 'dhcpd_GATEWAY_BAD_IP' => 'Incorrect IP for Gateway, Update unsuccessfull',
177 + 'dhcpd_GLOBAL_WINPOPUP' => 'Send Global Netsend WinPopup',
178 + 'dhcpd_GLOBAL_WINPOPUP_TITLE' => 'Send a global WinPopup with the Net send protocol',
179 + 'dhcpd_IP' => 'Ip Address',
180 + 'dhcpd_MAC_ADDRESS' => 'MAC Address',
181 + 'dhcpd_MANAGING_DHCP_CLIENT' => 'Managing DHCP clients',
182 + 'dhcpd_NETWORK_NAME' => 'Network Name',
183 + 'dhcpd_NETWORK_VALUES_FOUND' => 'Please wait .... Your subnet and your netmask appear to be :',
184 + 'dhcpd_NO_CONNECTED_COMPUTERS' => 'There are no connected computers',
185 + 'dhcpd_NOT_CHECKED' => 'Not Checked...',
186 + 'dhcpd_PRIMARY_DNS_ADDRESS' => 'Primary DNS',
187 + 'dhcpd_REFRESH_CONNECTED_IP_LIST' => 'You may want to refresh this list ?',
188 + 'dhcpd_REFRESH' => 'Refresh the list',
189 + 'dhcpd_REMOVE_ACTION' => 'Remove...',
190 + 'dhcpd_REMOVE_A_DHCP_LEASE_ACTION' => 'You are about to remove a client from the dhcpd.leases file.',
191 + 'dhcpd_REMOVE_A_DHCP_LEASE' => 'Remove a DHCP lease',
192 + 'dhcpd_ARE_YOU_SURE' => 'are you sure ?',
193 + 'dhcpd_REMOVE_A_DHCP_LEASE_TITLE' => 'Removing a DHCP Lease',
194 + 'dhcpd_REMOVE_ALL_LEASES_ACTION' => 'Remove all dhcpd leases',
195 + 'dhcpd_REMOVE_ALL_LEASES' => 'Remove all leases',
196 + 'dhcpd_REMOVE_DHCP_LEASE_TITLE' => 'Removing all DHCP Lease',
197 + 'dhcpd_REMOVE_DHCP_LEASE_WARNING' => 'Remove all entries in dhcpd.leases may cause issues',
198 + 'dhcpd_REMOVE' => 'Remove',
199 + 'dhcpd_SAVE/RESTART' => 'Save/Restart',
200 + 'dhcpd_SAVE_TITLE' => 'After changing settings above, you must save and restart dhcpd.',
201 + 'dhcpd_SCANNING_NETWORK_TITLE' => 'Scanning your network, the time needed depends on your subnet mask',
202 + 'dhcpd_SCAN_YOUR_NETWORK' => 'Scan your network',
203 + 'dhcpd_SCAN_YOUR_NETWORK_TITLE' => 'Scan your network to show active devices :',
204 + 'dhcpd_SECONDARY_DNS_ADDRESS' => 'Secondary DNS',
205 + 'dhcpd_SENDING_A_WINPOPUP' => 'Sending a WinPopup',
206 + 'dhcpd_SENDING_A_WINPOPUP_TO' => 'You are about to send a WinPopup to ',
207 + 'dhcpd_SEND_WINPOPUP_TO' => 'Send a WinPopup to',
208 + 'dhcpd_SHOW_CONNECTED_IP_TITLE' => 'Show all devices connected to the dhcpd server :',
209 + 'dhcpd_START_DATE' => 'Start Date',
210 + 'dhcpd_STATUS_CLICK_FOR_WOL' => 'Status - click for WOL',
211 + 'dhcpd_STATUS_DHCP_SERVER' => 'State of DHCPD',
212 + 'dhcpd_STATUS_REPORT' => 'Operation status report :',
213 + 'dhcpd_SUCCESSFULLY_CLIENT_WOL_REQUEST' =>'Successfull request to wake up the client. The computer may take time to wake up.',
214 + 'dhcpd_SUCCESSFULLY_DELETED_THE_CLIENT' => 'Successfully deleted the client in dhcpd.leases : ',
215 + 'dhcpd_SUCCESSFULLY_REMOVED_ALL_LEASES' => 'Successfully deleted all leases.',
216 + 'dhcpd_SUCCESSFULLY_SAVED_SETTINGS' => 'Successfully saved settings',
217 + 'dhcpd_SUCCESSFULLY_SENT_MESSAGE' => 'Successfully sent message popup to',
218 + 'dhcpd_TERTIARY_DNS_ADDRESS' => 'Tertiary DNS',
219 + 'dhcpd_WAKE_UP_ACTION' => '<font color="red">Wake-Up...</font>',
220 + 'dhcpd_WAKE_UP' => 'Wake UP',
221 + 'dhcpd_WAKING_A_REMOTE_COMPUTER_ACTION' => 'Are you sure you want to wake on lan the client : ',
222 + 'dhcpd_WAKING_A_REMOTE_COMPUTER_TITLE' => 'Waking Up a remote computer',
223 + 'dhcpd_WAKING_A_REMOTE_COMPUTER' => 'You are about to wake up a remote computer.',
224 + 'dhcpd_WARNING_NO_WINPOPUP_GARANTY' =>'Warning, there is no guarantee that the popup will appear on the remote computer.',
225 + 'dhcpd_WINPOPUP_ACTION' => 'WinPopup...',
226 + 'dhcpd_WINSSERVER_BAD_IP' => 'Incorrect IP for WINS Server, Update unsuccessfull',
227 + 'dhcpd_WRITE_YOUR_MESSAGE' => 'Write your message here',
228 + 'dhcpd_YOUR_MESSAGE' => 'Your message',
229 + 'dhcpd_REMOVE_DHCP_LEASE_WARNING2' => 'The lease file is a log-structured file - whenever a lease changes, the
230 + contents of that lease are written to the end of the file. This means that it is entirely possible for there to be two
231 + or more declarations of the same lease in the lease file at the same
232 + time. In that case, the instance of that particular lease that
233 + appears last in the file is the one that is in effect.',
234 +);
235 +
236 +our %Lexicon = (
237 + %{ SrvMngr::I18N::Modules::General::en::Lexicon },
238 + %lexicon
239 +);
240 +
241 +
242 +1;
243 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/dhcpd.html.ep smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/dhcpd.html.ep
244 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/dhcpd.html.ep 2023-12-19 09:44:56.680590493 +0000
245 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/dhcpd.html.ep 2023-12-30 10:10:00.000000000 +0000
246 @@ -49,10 +49,8 @@
247
248 % if ($dhcp_data->{trt} eq 'LEASES') {
249 %= include 'partials/_dhcpd_leases'
250 - %} elsif ($dhcp_data->{trt} eq 'WINPOPUP') {
251 - %= include 'partials/_dhcpd_winpopup'
252 %} elsif ($dhcp_data->{trt} eq 'SCAN') {
253 - %= include 'partials/_dhcpd_scan'
254 + %= include 'partials/_dhcpd_scanresults'
255 %} else { #PARAMS
256 % my $ip_regex = '^((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$';
257 <table><tr><td>
258 @@ -63,9 +61,12 @@
259 </button>
260 </td><td>
261 %= button_to $c->l('dhcpd_SCAN_YOUR_NETWORK') => '/dhcpd3'
262 - </td><td>
263 - %= button_to $c->l('dhcpd_GLOBAL_WINPOPUP') => '/dhcpd2'
264 + </td>
265 + <!--
266 <td>
267 + %= button_to $c->l('dhcpd_GLOBAL_WINPOPUP') => '/dhcpd2'
268 + </td>
269 + -->
270 </tr>
271 </table>
272 <hr />
273 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_leases.html.ep smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_leases.html.ep
274 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_leases.html.ep 2023-12-19 09:44:56.681590497 +0000
275 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_leases.html.ep 2023-12-29 15:16:00.000000000 +0000
276 @@ -26,7 +26,7 @@
277 %= submit_button "$btn", class => 'action'
278 % end
279 <br>
280 - <table class="sme-border table-sort"><tbody>
281 + <table class="sme-border table-sort"><thead>
282 <tr>
283 <th class='sme-border'>
284 %=l 'dhcpd_IP'
285 @@ -50,6 +50,8 @@
286 %=l 'dhcpd_ACTION'
287 </th>
288 </tr>
289 + </thead>
290 + <tbody>
291 % foreach my $ip (@$leases) {
292 <tr>
293 %= t td => (class => 'sme-border') => $ip->{ip}
294 @@ -66,9 +68,12 @@
295 %= t td => (class => 'sme-border') => $ip->{mac}
296 <td class = 'sme-border'>
297 <a href="/smanager/dhcpd6?trt=DEL&ip=<%= $ip->{ip}%>" onclick="Remove_lease_confirm(event,'<%=$c->l('dhcpd_REMOVE_A_DHCP_LEASE_ACTION')%>',this);"><center><%=l 'dhcpd_REMOVE'%></center></a>
298 - </td><td class = 'sme-border'>
299 + </td>
300 + <!-->
301 + <td class = 'sme-border'>
302 <a href="/smanager/dhcpd8?trt=WIN&ip=<%= $ip->{ip}%>" onclick="Winpop_confirm(event,'<%=$c->l('dhcpd_SENDING_A_WINPOPUP')%>',this);"><center><%=l 'dhcpd_WINPOPUP_ACTION'%></center></a>
303 </td>
304 + -->
305 </tr>
306 %}
307 </tbody>
308 @@ -110,4 +115,4 @@
309 %end
310
311
312 -</div>
313 \ No newline at end of file
314 +</div>
315 diff -urN smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_scanresults.html.ep smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_scanresults.html.ep
316 --- smeserver-dhcpmanager-2.0.4.old/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_scanresults.html.ep 1970-01-01 01:00:00.000000000 +0100
317 +++ smeserver-dhcpmanager-2.0.4/root/usr/share/smanager/themes/default/templates/partials/_dhcpd_scanresults.html.ep 2023-12-30 15:30:00.000000000 +0000
318 @@ -0,0 +1,41 @@
319 +<div id='dhcpd-scanresults'>
320 +%#= 1/0
321 + %= $c->l('dhcpd_NETWORK_VALUES_FOUND').$dhcp_data->{"cidr"};
322 + %= form_for '/dhcpd10' => (method => 'POST') => begin
323 + <br />
324 + <table class="sme-border table-sort"><thead>
325 + <tr>
326 + <th class='sme-border'>
327 + %=l 'dhcpd_NETWORK_NAME'
328 + </th>
329 + <th class='sme-border'>
330 + %=l 'dhcpd_IP'
331 + </th>
332 + <th class='sme-border'>
333 + %=l 'dhcpd_MAC_ADDRESS'
334 + </th>
335 + <th class='sme-border'>
336 + %=l 'dhcpd_STATUS_CLICK_FOR_WOL'
337 + </th>
338 + </tr>
339 + </thead>
340 + <tbody>
341 + % foreach my $line (@$scanresults) {
342 + % my @thisline = @$line;
343 + <tr>
344 + <td class='sme-border'>
345 + %= "$thisline[4]";
346 + </td>
347 + <td class='sme-border'>
348 + %= "$thisline[5]";
349 + </td>
350 + <td class='sme-border'>
351 + </td>
352 + <td class='sme-border'>
353 + </td>
354 + </tr>
355 + %}
356 + </table>
357 + % end
358 + %= button_to $c->l('dhcpd_CLICK_HERE_TO_MAIN_PANEL') => '/dhcpd'
359 +</div>

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed