penguins-eggs 9.3.26 → 9.3.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/conf/derivatives.yaml +7 -0
  3. package/dist/classes/bleach.js +26 -24
  4. package/dist/classes/compressors.js +7 -5
  5. package/dist/classes/daddy.js +38 -36
  6. package/dist/classes/distro.js +30 -27
  7. package/dist/classes/family/archlinux.js +21 -19
  8. package/dist/classes/family/debian.js +33 -31
  9. package/dist/classes/family/fedora.js +19 -17
  10. package/dist/classes/family/suse.js +19 -17
  11. package/dist/classes/incubation/branding.js +8 -6
  12. package/dist/classes/incubation/distros/bionic.js +5 -3
  13. package/dist/classes/incubation/distros/buster.js +5 -3
  14. package/dist/classes/incubation/distros/focal.js +5 -3
  15. package/dist/classes/incubation/distros/jessie.js +6 -4
  16. package/dist/classes/incubation/distros/rolling.js +9 -7
  17. package/dist/classes/incubation/fisherman-helper/displaymanager.js +5 -3
  18. package/dist/classes/incubation/fisherman-helper/packages.js +17 -15
  19. package/dist/classes/incubation/fisherman.js +19 -19
  20. package/dist/classes/incubation/incubator.js +37 -35
  21. package/dist/classes/incubation/installer.js +8 -6
  22. package/dist/classes/initrd.js +5 -3
  23. package/dist/classes/keyboards.js +25 -23
  24. package/dist/classes/locales.js +19 -17
  25. package/dist/classes/n8.js +4 -2
  26. package/dist/classes/network.js +9 -9
  27. package/dist/classes/ovary.js +280 -281
  28. package/dist/classes/pacman.js +128 -128
  29. package/dist/classes/pve-live.js +7 -5
  30. package/dist/classes/pxe.js +141 -138
  31. package/dist/classes/settings.js +34 -32
  32. package/dist/classes/sources_list.js +31 -31
  33. package/dist/classes/systemctl.js +16 -14
  34. package/dist/classes/tailor.js +255 -262
  35. package/dist/classes/tools.js +7 -5
  36. package/dist/classes/users.js +30 -28
  37. package/dist/classes/utils.js +22 -20
  38. package/dist/classes/xdg.js +60 -58
  39. package/dist/classes/yolk.js +33 -33
  40. package/dist/commands/adapt.js +14 -12
  41. package/dist/commands/analyze.js +48 -15
  42. package/dist/commands/calamares.js +28 -26
  43. package/dist/commands/config.js +77 -79
  44. package/dist/commands/cuckoo.js +19 -17
  45. package/dist/commands/dad.js +16 -14
  46. package/dist/commands/export/deb.js +19 -17
  47. package/dist/commands/export/iso.js +17 -15
  48. package/dist/commands/install.js +31 -29
  49. package/dist/commands/kill.js +17 -15
  50. package/dist/commands/mom.js +11 -9
  51. package/dist/commands/produce.js +30 -28
  52. package/dist/commands/status.js +7 -5
  53. package/dist/commands/syncfrom.js +41 -41
  54. package/dist/commands/syncto.js +77 -80
  55. package/dist/commands/tools/clean.js +13 -11
  56. package/dist/commands/tools/ppa.js +26 -24
  57. package/dist/commands/tools/skel.js +18 -16
  58. package/dist/commands/tools/stat.js +12 -10
  59. package/dist/commands/tools/yolk.js +13 -11
  60. package/dist/commands/update.js +29 -27
  61. package/dist/commands/wardrobe/get.js +14 -12
  62. package/dist/commands/wardrobe/list.js +25 -23
  63. package/dist/commands/wardrobe/show.js +25 -23
  64. package/dist/commands/wardrobe/wear.js +24 -22
  65. package/dist/components/elements/information.js +21 -19
  66. package/dist/components/elements/steps.js +4 -2
  67. package/dist/components/elements/title.js +4 -2
  68. package/dist/components/finished.js +10 -8
  69. package/dist/components/install.js +10 -8
  70. package/dist/components/keyboard.js +10 -8
  71. package/dist/components/location.js +10 -8
  72. package/dist/components/network.js +10 -8
  73. package/dist/components/partitions.js +10 -8
  74. package/dist/components/summary.js +10 -8
  75. package/dist/components/users.js +33 -8
  76. package/dist/components/welcome.js +10 -8
  77. package/dist/interfaces/i-packages.js +1 -1
  78. package/dist/interfaces/i-pxe.js +39 -0
  79. package/dist/krill/krill-prepare.js +92 -90
  80. package/dist/krill/krill-sequence.js +148 -145
  81. package/dist/krill/modules/add-user.js +11 -9
  82. package/dist/krill/modules/bootloader-config-ubuntu.js +25 -23
  83. package/dist/krill/modules/bootloader.js +11 -9
  84. package/dist/krill/modules/change-password.js +2 -2
  85. package/dist/krill/modules/del-live-user.js +8 -6
  86. package/dist/krill/modules/fstab.js +35 -33
  87. package/dist/krill/modules/grubcfg.js +8 -6
  88. package/dist/krill/modules/hostname.js +19 -17
  89. package/dist/krill/modules/initramfs-cfg.js +6 -4
  90. package/dist/krill/modules/initramfs.js +17 -15
  91. package/dist/krill/modules/locale-cfg.js +12 -10
  92. package/dist/krill/modules/locale.js +13 -11
  93. package/dist/krill/modules/m-keyboard.js +33 -31
  94. package/dist/krill/modules/m-timezone.js +7 -5
  95. package/dist/krill/modules/machine-id.js +8 -6
  96. package/dist/krill/modules/mkfs.js +7 -7
  97. package/dist/krill/modules/mount-fs.js +22 -22
  98. package/dist/krill/modules/mount-vfs.js +12 -12
  99. package/dist/krill/modules/network-cfg.js +21 -21
  100. package/dist/krill/modules/packages.js +20 -18
  101. package/dist/krill/modules/partition.js +148 -139
  102. package/dist/krill/modules/remove-installer-link.js +5 -3
  103. package/dist/krill/modules/umount.js +9 -7
  104. package/dist/krill/modules/unpackfs.js +8 -6
  105. package/dist/lib/cli-autologin.js +163 -163
  106. package/dist/lib/dependencies.js +10 -10
  107. package/dist/lib/get_address.js +6 -4
  108. package/dist/lib/get_dns.js +6 -4
  109. package/dist/lib/get_domain.js +6 -4
  110. package/dist/lib/get_gateway.js +6 -4
  111. package/dist/lib/get_hostname.js +6 -4
  112. package/dist/lib/get_netmask.js +6 -4
  113. package/dist/lib/get_password.js +8 -6
  114. package/dist/lib/get_root_password.js +7 -5
  115. package/dist/lib/get_userfullname.js +6 -4
  116. package/dist/lib/get_username.js +6 -4
  117. package/dist/lib/select_address_type.js +6 -4
  118. package/dist/lib/select_filesystem_type.js +8 -6
  119. package/dist/lib/select_installation_device.js +7 -5
  120. package/dist/lib/select_installation_mode.js +6 -4
  121. package/dist/lib/select_interface.js +6 -4
  122. package/dist/lib/select_keyboard_layout.js +10 -8
  123. package/dist/lib/select_keyboard_model.js +10 -8
  124. package/dist/lib/select_keyboard_option.js +10 -8
  125. package/dist/lib/select_keyboard_variant.js +10 -8
  126. package/dist/lib/select_languages.js +9 -7
  127. package/dist/lib/select_regions.js +6 -4
  128. package/dist/lib/select_user_swap_choice.js +8 -6
  129. package/dist/lib/select_zones.js +12 -10
  130. package/dist/lib/utils.js +3 -3
  131. package/package.json +12 -5
  132. package/dist/dhcpd/dhcpd.js +0 -222
  133. package/dist/dhcpd/index.js +0 -7
  134. package/dist/dhcpd/packet/converters.js +0 -377
  135. package/dist/dhcpd/packet/options.js +0 -2
  136. package/dist/dhcpd/packet/types.js +0 -2
  137. package/dist/dhcpd/packet.js +0 -251
  138. package/dist/dhcpd/proxy.js +0 -152
  139. package/dist/dhcpd/server.js +0 -152
  140. package/dist/dhcpd/sprintf.js +0 -170
  141. package/dist/dhcpd/utils.js +0 -190
  142. package/dist/interfaces/i-pxe-options.js +0 -2
@@ -1,222 +0,0 @@
1
- "use strict";
2
- var dhcp_server = require('./server');
3
- var dhcp_proxy = require('./proxy');
4
- var netmask = require('netmask').Netmask;
5
- var ee = require('events').EventEmitter;
6
- var util = require('util');
7
- const { file } = require('@oclif/core/lib/parser');
8
- const { createNoSubstitutionTemplateLiteral } = require('typescript');
9
- const { json } = require('stream/consumers');
10
- const BOOTREQUEST = 1, DHCP_MESSAGE_TYPE = 0x35, DHCP_SERVER_ID = 0x36, DHCP_DISCOVER = 1, DHCP_INFORM = 8, DHCP_MINTYPE = DHCP_DISCOVER, DHCP_MAXTYPE = DHCP_INFORM, DHCP_REQUESTED_IP = 0x32, DHCP_HOST_NAME = 0x0c;
11
- /**
12
- *
13
- * @param opts
14
- * @returns
15
- */
16
- class dhcpd {
17
- /**
18
- *
19
- * @param opts
20
- * @returns
21
- */
22
- constructor(opts) {
23
- let self = this;
24
- if (!(self instanceof dhcpd)) {
25
- return new dhcpd(opts);
26
- }
27
- ee.call(self);
28
- if (opts.subnet) {
29
- var block = new netmask(opts.subnet);
30
- if (block) {
31
- self.network = block.base;
32
- self.netmask = block.mask;
33
- self.broadcast = block.broadcast;
34
- self.host = opts.host;
35
- self.tftpserver = opts.tftpserver;
36
- self.bios_filename = opts.bios_filename;
37
- self.efi32_filename = opts.efi32_filename;
38
- self.efi64_filename = opts.efi64_filename;
39
- }
40
- else {
41
- throw new Error("Unable to read subnet details from '" + opts.subnet + "'");
42
- }
43
- }
44
- // Listen on port 67 for all the DHCP messages from clients
45
- self.s = new dhcp_server('udp4', { broadcast: self.broadcast });
46
- self.s.on('listening', function () {
47
- var address = self.s.address();
48
- console.log('server listening: ' + address.address + ':' + address.port);
49
- });
50
- self.s.on('discover', self.discover.bind(self));
51
- self.s.on('request', self.request.bind(self));
52
- self.s.on('inform', self.inform.bind(self));
53
- self.s.bind(67, '0.0.0.0');
54
- // Listen on port 4011 for clients asking for proxy DHCP
55
- self.p = new dhcp_proxy('udp4', { broadcast: self.broadcast });
56
- self.p.on('listening', function () {
57
- var address = self.p.address();
58
- console.log('proxy listening: ' + address.address + ':' + address.port);
59
- });
60
- self.p.on('request', self.proxy_request.bind(self));
61
- self.p.bind(4011, '0.0.0.0');
62
- return self;
63
- }
64
- /**
65
- *
66
- * @param {*} pkt
67
- * @returns
68
- */
69
- pre_init(pkt) {
70
- var self = this;
71
- // Ignore malformed packets
72
- if (pkt.hlen != 6)
73
- return;
74
- // Ignore if not a BOOTREQUEST
75
- if (pkt.op != BOOTREQUEST)
76
- return;
77
- // Ignore if unknown message type
78
- var state = _get_option(pkt, DHCP_MESSAGE_TYPE);
79
- if (state == undefined || state['0'] < DHCP_MINTYPE || state['0'] > DHCP_MAXTYPE)
80
- return;
81
- // Ignore if DHCP message is not for us
82
- var server_id_opt = _get_option(pkt, DHCP_SERVER_ID);
83
- if (server_id_opt !== undefined && server_id_opt != self.host)
84
- return;
85
- }
86
- /**
87
- *
88
- * @param {*} pkt
89
- * @returns
90
- */
91
- discover(pkt) {
92
- var self = this;
93
- console.log("Received DHCP DISCOVER");
94
- if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('PXEClient') === 0) {
95
- // Check if we are really being asked for PXE boot information
96
- // Signal the client that we are a proxy dhcp by sending an OFFER
97
- var offer = {};
98
- offer.siaddr = self.host;
99
- offer.options = {};
100
- offer.options['60'] = 'PXEClient';
101
- offer.options['54'] = self.host;
102
- offer.options['255'] = null;
103
- self.pre_init(pkt);
104
- return self.s.offer(pkt, offer);
105
- }
106
- else if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('AAPLBSDPC/i386') === 0) {
107
- console.log('Mac OS X discovery, ignoring');
108
- return;
109
- }
110
- else {
111
- console.log('Ignoring discovery as it does not seam to be a boot request');
112
- return;
113
- }
114
- }
115
- /**
116
- *
117
- * @param {*} pkt
118
- * @returns
119
- */
120
- request(pkt) {
121
- var self = this;
122
- console.log('Ignoring received REQUEST from ' + pkt.chaddr + ' as we are only a proxy');
123
- return;
124
- var offer = {};
125
- offer.siaddr = self.host;
126
- offer.options = {};
127
- offer.options['54'] = self.host;
128
- offer.options['255'] = null;
129
- self.pre_init(pkt);
130
- return self.s.ack(pkt, offer);
131
- }
132
- /**
133
- *
134
- * @param {*} pkt
135
- * @returns
136
- */
137
- inform(pkt) {
138
- var self = this;
139
- if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('AAPLBSDPC/i386') === 0) {
140
- var offer = {};
141
- offer.siaddr = self.tftpserver;
142
- offer.ciaddr = pkt.remote.address;
143
- offer.options = {};
144
- offer.options['54'] = self.host;
145
- offer.options['60'] = 'AAPLBSDPC';
146
- offer.options['255'] = null;
147
- if (pkt.options['43'] !== undefined && pkt.options['43'].indexOf('01:01:01') === 0) {
148
- // Mac OS X client: BSDP list
149
- offer.options['43'] = '01:01:01:04:02:80:00:07:04:81:00:05:2a:08:04:81:00:05:2a:09:0d:81:00:05:2a:08:69:50:58:45:2d:46:4f:47';
150
- }
151
- else if (pkt.options['43'] !== undefined && pkt.options['43'].indexOf('01:01:02') === 0) {
152
- // Mac OS X client: BSDP select
153
- offer.options['43'] = '01:01:02:08:04:81:00:05:2a:82:0a:4e:65:74:42:6f:6f:74:30:30:31';
154
- pkt.fname = self.efi64_filename;
155
- pkt.sname = '141.62.66.114';
156
- }
157
- else {
158
- console.log('Unknown BSDP request, not answering');
159
- return;
160
- }
161
- return self.p.ack(pkt, offer);
162
- }
163
- else {
164
- console.log('INFORM not by a Mac OS client, maybe Windows, ignoring');
165
- return;
166
- }
167
- }
168
- /**
169
- *
170
- * @param {*} pkt
171
- * @returns
172
- */
173
- proxy_request(pkt) {
174
- var self = this;
175
- console.log("Received Proxy DHCP REQUEST");
176
- var offer = {};
177
- offer.siaddr = self.tftpserver;
178
- offer.options = {};
179
- offer.options['54'] = self.host;
180
- offer.options['255'] = null;
181
- if (pkt.options['60'] !== undefined) {
182
- var arch = pkt.options['60'];
183
- if (arch.indexOf('00009') === 15 || arch.indexOf('00007') === 15) {
184
- // var next = '192.168.1.17'
185
- var fname = self.efi64_filename;
186
- if (pkt.options["77"] === "iPXE") {
187
- fname = `autoexec.ipxe`;
188
- }
189
- pkt.fname = fname;
190
- // pkt.fname = self.efi_filename // vecchio
191
- /*
192
- console.log('====================================')
193
- console.log('pkt: ' + JSON.stringify(pkt, '', 3))
194
- console.log('====================================')
195
- console.log('offer: ' + JSON.stringify(offer, '', 3))
196
- console.log('====================================')
197
- */
198
- }
199
- else if (arch.indexOf('00006') === 15) {
200
- pkt.fname = self.efi32_filename;
201
- }
202
- else {
203
- pkt.fname = self.bios_filename;
204
- }
205
- }
206
- return self.p.ack(pkt, offer);
207
- }
208
- }
209
- /**
210
- *
211
- */
212
- util.inherits(dhcpd, ee);
213
- /**
214
- *
215
- * @param {*} pkt
216
- * @param {*} opt
217
- * @returns
218
- */
219
- function _get_option(pkt, opt) {
220
- return (opt in pkt.options) ? pkt.options[opt] : undefined;
221
- }
222
- module.exports = dhcpd;
@@ -1,7 +0,0 @@
1
- "use strict";
2
- // Generated by CoffeeScript 1.3.3
3
- module.exports = {
4
- Packet: require('./packet'),
5
- MessageTypes: require('./packet/types'),
6
- Options: require('./packet/options')
7
- };
@@ -1,377 +0,0 @@
1
- "use strict";
2
- /**
3
- * converters.js
4
- */
5
- var utils = require('../utils');
6
- var sprintf = require('../sprintf');
7
- var converters = {
8
- // option 1: subnet mask
9
- 1: {
10
- encode: utils.writeIp,
11
- decode: utils.readIp
12
- },
13
- // option 2: time offset
14
- 2: {
15
- encode: function encode(buf, num, value, offset) {
16
- buf[offset++] = num;
17
- buf[offset++] = 4;
18
- utils.writeInt32(buf, value, offset);
19
- return offset + 4;
20
- },
21
- decode: function decode(buf) {
22
- return utils.readInt32(buf, 0);
23
- }
24
- },
25
- // option 3: routers
26
- 3: {
27
- decode: function decode(buf) {
28
- var i, numRecords, pos, records;
29
- numRecords = buf.length / 4;
30
- pos = 0;
31
- records = [];
32
- i = 0;
33
- while (i < numRecords) {
34
- records.push(sprintf("%d.%d.%d.%d", buf[pos++], buf[pos++], buf[pos++], buf[pos++]));
35
- i++;
36
- }
37
- return records;
38
- },
39
- encode: function encode(buf, num, data, offset) {
40
- var routers;
41
- routers = data;
42
- buf[offset++] = num;
43
- buf[offset++] = routers.length * 4;
44
- routers.forEach(function (ip) {
45
- return ip.split(".").forEach(function (item) {
46
- buf[offset++] = item;
47
- });
48
- });
49
- return offset;
50
- }
51
- },
52
- // option 6: dns servers
53
- 6: {
54
- decode: function (buf) {
55
- var i, numRecords, pos, records;
56
- numRecords = buf.length / 4;
57
- pos = 0;
58
- records = [];
59
- i = 0;
60
- while (i < numRecords) {
61
- records.push(sprintf("%d.%d.%d.%d", buf[pos++], buf[pos++], buf[pos++], buf[pos++]));
62
- i++;
63
- }
64
- return records;
65
- },
66
- encode: function (buf, num, data, offset) {
67
- var routers;
68
- routers = data.split(",");
69
- buf[offset++] = num;
70
- buf[offset++] = routers.length * 4;
71
- routers.forEach(function (ip) {
72
- return ip.split(".").forEach(function (item) {
73
- buf[offset++] = item;
74
- });
75
- });
76
- return offset;
77
- }
78
- },
79
- /*
80
- // option 119: dns search list
81
- 119: {
82
- encode: null,
83
- decode: null
84
- },
85
- */
86
- // option 12: hostname
87
- 12: {
88
- encode: utils.writeString,
89
- decode: utils.readString
90
- },
91
- // option 15: dns domain name
92
- 15: {
93
- encode: utils.writeString,
94
- decode: utils.readString
95
- },
96
- // option 28: broadcast address
97
- 28: {
98
- encode: utils.writeIp,
99
- decode: utils.readIp
100
- },
101
- // option 31: router discovery
102
- 31: {
103
- encode: function (buf, num, value, offset) {
104
- buf[offset++] = num;
105
- buf[offset++] = 1;
106
- utils.writeInt8(buf, value, offset);
107
- return offset + 1;
108
- },
109
- decode: function (buf) {
110
- return utils.readInt8(buf, 0);
111
- }
112
- },
113
- // option 33: static routes
114
- 33: {
115
- decode: function decode(buf) {
116
- var i, numRecords, pos, records;
117
- numRecords = buf.length / 4;
118
- pos = 0;
119
- records = [];
120
- i = 0;
121
- while (i < numRecords) {
122
- records.push(sprintf("%d.%d.%d.%d", buf[pos++], buf[pos++], buf[pos++], buf[pos++]));
123
- i++;
124
- }
125
- return records;
126
- },
127
- encode: function encode(buf, num, data, offset) {
128
- var routers;
129
- routers = data.split(",");
130
- buf[offset++] = num;
131
- buf[offset++] = routers.length * 4;
132
- routers.forEach(function (ip) {
133
- return ip.split(".").forEach(function (item) {
134
- buf[offset++] = item;
135
- });
136
- });
137
- return offset;
138
- }
139
- },
140
- // option 43: vendor specific information
141
- 43: {
142
- decode: function (buf) {
143
- var records = [];
144
- var i = 0;
145
- var len = buf.length;
146
- while (i < len) {
147
- records.push(sprintf("%02x", buf[i]));
148
- i++;
149
- }
150
- return records.join(':');
151
- },
152
- encode: function (buf, num, data, offset) {
153
- vendorinfo = data.split(":");
154
- buf[offset++] = num;
155
- buf[offset++] = vendorinfo.length;
156
- vendorinfo.forEach(function (hex) {
157
- buf[offset++] = parseInt(hex, 16);
158
- });
159
- return offset;
160
- }
161
- },
162
- // option 44: netbios name servers
163
- 44: {
164
- decode: function (buf) {
165
- var i, numRecords, pos, records;
166
- numRecords = buf.length / 4;
167
- pos = 0;
168
- records = [];
169
- i = 0;
170
- while (i < numRecords) {
171
- records.push(sprintf("%d.%d.%d.%d", buf[pos++], buf[pos++], buf[pos++], buf[pos++]));
172
- i++;
173
- }
174
- return records;
175
- },
176
- encode: function (buf, num, data, offset) {
177
- var routers;
178
- routers = data.split(",");
179
- buf[offset++] = num;
180
- buf[offset++] = routers.length * 4;
181
- routers.forEach(function (ip) {
182
- return ip.split(".").forEach(function (item) {
183
- buf[offset++] = item;
184
- });
185
- });
186
- return offset;
187
- }
188
- },
189
- // option 46: netbios node type
190
- 46: {
191
- decode: function (buf) {
192
- return parseInt(buf[0], 16);
193
- },
194
- encode: function (buf, num, value, offset) {
195
- buf[offset++] = num;
196
- buf[offset++] = 1;
197
- buf[offset++] = parseInt(buf[0], 10).toString(16);
198
- return offset;
199
- }
200
- },
201
- // option 47: netbios node type
202
- 47: {
203
- encode: utils.writeString,
204
- decode: utils.readString
205
- },
206
- // option 50: requested ip address
207
- 50: {
208
- encode: utils.writeIp,
209
- decode: utils.readIp
210
- },
211
- // option 51: lease time
212
- 51: {
213
- decode: function (buf) {
214
- return utils.readInt32(buf, 0);
215
- },
216
- encode: function (buf, num, value, offset) {
217
- buf[offset++] = num;
218
- buf[offset++] = 4;
219
- utils.writeInt32(buf, value, offset);
220
- return offset + 4;
221
- }
222
- },
223
- // option 53: message type
224
- 53: {
225
- decode: function (buf) {
226
- return parseInt(buf[0], 10);
227
- },
228
- encode: function (buf, num, value, offset) {
229
- buf[offset++] = 53;
230
- buf[offset++] = 1;
231
- buf[offset++] = value;
232
- return offset;
233
- }
234
- },
235
- // option 54: server identifier
236
- 54: {
237
- encode: utils.writeIp,
238
- decode: function decode(buf) {
239
- return utils.readIp(buf, 0);
240
- }
241
- },
242
- // option 55: parameter request list
243
- 55: {
244
- decode: function decode(buf) {
245
- var records = [];
246
- var i = 0;
247
- var len = buf.length;
248
- while (i < len) {
249
- records[i] = buf[i];
250
- i++;
251
- }
252
- return records;
253
- },
254
- encode: function encode(buf, num, data, offset) {
255
- buf[offset++] = num;
256
- buf[offset++] = data.length;
257
- utils.writeBytes(buf, data, offset);
258
- // var i = 0;
259
- // while(i < data.length) {
260
- // utils.writeBytes(buf, data[i], offset);
261
- // i++;
262
- // offset++;
263
- // }
264
- return offset;
265
- }
266
- },
267
- // option 57: max message size
268
- 57: {
269
- encode: function (buf, num, value, offset) {
270
- buf[offset++] = 57;
271
- buf[offset++] = 2;
272
- utils.writeInt16(buf, value, offset);
273
- return offset + 2;
274
- },
275
- decode: function (buf) {
276
- return utils.readInt16(buf, 0);
277
- }
278
- },
279
- // option 60: vendor class identifier
280
- 60: {
281
- encode: utils.writeString,
282
- decode: utils.readString
283
- },
284
- // option 61: client identifier
285
- 61: {
286
- encode: function (buf, num, value, offset) {
287
- return offset;
288
- },
289
- decode: function (buf) {
290
- var j, s, type;
291
- s = [];
292
- type = buf[0];
293
- j = 1;
294
- while (j < buf.length) {
295
- s.push(sprintf("%02x", buf[j]));
296
- j++;
297
- }
298
- return [type, s.join(":")];
299
- }
300
- },
301
- // option 67: bootfile name
302
- 67: {
303
- encode: utils.writeString,
304
- decode: utils.readString
305
- },
306
- // option 77: user class information
307
- 77: {
308
- encode: utils.writeString,
309
- decode: function (buf) {
310
- var records = [];
311
- var offset = 0;
312
- while (buf[offset]) {
313
- var uc_len = buf[offset];
314
- var uc_data = buf.slice(offset++, uc_len);
315
- offset += uc_len;
316
- records.push(uc_data.toString('ascii'));
317
- }
318
- return records.join(':');
319
- }
320
- },
321
- // option 83: client fqdn
322
- 83: {
323
- encode: function (buf, num, value, offset) {
324
- return offset;
325
- },
326
- decode: function (buf) {
327
- var ret;
328
- ret = "";
329
- ret += sprintf("%d", buf[0]) + "-";
330
- ret += sprintf("%d", buf[1]) + "-";
331
- ret += sprintf("%d", buf[2]) + " ";
332
- ret += utils.toString(buf.slice(3));
333
- return ret;
334
- }
335
- },
336
- // option 175: etherboot
337
- 175: {
338
- encode: function (buf, num, value, offset) {
339
- return offset;
340
- },
341
- decode: function (buf) {
342
- var j, s;
343
- s = [];
344
- j = 1;
345
- while (j < buf.length) {
346
- s.push(sprintf("%02x", buf[j]));
347
- j++;
348
- }
349
- return s.join(":");
350
- }
351
- },
352
- // option 255: end
353
- 255: {
354
- encode: function (buf, num, value, offset) {
355
- utils.writeInt8(buf, 255, offset);
356
- return offset + 1;
357
- },
358
- decode: function (buf) {
359
- return undefined;
360
- }
361
- }
362
- };
363
- var stub = {
364
- encode: function (buf, num, value, offset) {
365
- // console.error("[dhcproxy] encoder for option " + num + " not found");
366
- return offset;
367
- },
368
- decode: function (buf, num) {
369
- // console.error("[dhcproxy] decoder for option " + num + " not found");
370
- // console.log(" buffer:", buf);
371
- return null;
372
- }
373
- };
374
- module.exports = function (i) {
375
- //console.log("GET CONVERTER FOR " + i);
376
- return (i in converters) ? converters[i] : stub;
377
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- module.exports = ["pad", "Subnet mask", "Time offset", "Routers", "Time server", "Name server", "DNS server", "Log server", "Cookie server", "LPR server", "Impress server", "Resource location server", "Host name", "Boot file size", "Merit dump file", "Domainname", "Swap server", "Root path", "Extensions path", "IP forwarding", "Non-local source routing", "Policy filter", "Maximum datagram reassembly size", "Default IP TTL", "Path MTU aging timeout", "Path MTU plateau table", "Interface MTU", "All subnets local", "Broadcast address", "Perform mask discovery", "Mask supplier", "Perform router discovery", "Router solicitation", "Static route", "Trailer encapsulation", "ARP cache timeout", "Ethernet encapsulation", "TCP default TTL", "TCP keepalive interval", "TCP keepalive garbage", "NIS domain", "NIS servers", "NTP servers", "Vendor specific info", "NetBIOS name server", "NetBIOS datagram distribution server", "NetBIOS node type", "NetBIOS scope", "X Window System font server", "X Window System display server", "Request IP address", "IP address leasetime", "Option overload", "DHCP message type", "Server identifier", "Parameter Request List", "Message", "Maximum DHCP message size", "T1", "T2", "Vendor class identifier", "Client-identifier", "Netware/IP domain name", "Netware/IP domain information", "NIS+ domain", "NIS+ servers", "TFTP server name", "Bootfile name", "Mobile IP home agent", "SMTP server", "POP3 server", "NNTP server", "WWW server", "Finger server", "IRC server", "StreetTalk server", "StreetTalk directory assistance server", "User-class Identification", "SLP-directory-agent", "SLP-service-scope", "Naming Authority", "Client FQDN", "Relay Agent Information", "Agent Remote ID", "Agent Subnet Mask", "NDS server", "NDS tree name", "NDS context", "IEEE 1003.1 POSIX", "FQDN", "Authentication", "Vines TCP/IP", "Server Selection", "Client System", "Client NDI", "LDAP", "IPv6 Transitions", "UUID/GUID", "UPA servers", "???", "Printer Name", "MDHCP", "???", "???", "???", "???", "???", "???", "Swap Path", "???", "IPX Compatability", "???", "Netinfo Address", "Netinfo Tag", "URL", "DHCP Failover", "DHCP Autoconfiguration", "Name Service Search", "Subnet selection", "Domain Search", "SIP Servers DHCP Option", "Classless Static Route", "???", "???", "???", "???", "Extension", "Extension", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "HP - TFTP file", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "Authenticate", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "???", "MSFT - Classless route", "???", "???", "MSFT - WinSock Proxy Auto Detect", "???", "???", "End"];
@@ -1,2 +0,0 @@
1
- "use strict";
2
- module.exports = ["unknown dhcp message type", "DHCPDISCOVER", "DHCPOFFER", "DHCPREQUEST", "DHCPDECLINE", "DHCPACK", "DHCPNAK", "DHCPRELEASE", "DHCPINFORM"];