1 | /**************************************************************************/ |
---|
2 | /* Name : networkbrowser.h */ |
---|
3 | /* */ |
---|
4 | /* Author: obi */ |
---|
5 | /* */ |
---|
6 | /* Licence: This file is subject to the terms and conditions of the */ |
---|
7 | /* GNU General Public License version 2. */ |
---|
8 | /**************************************************************************/ |
---|
9 | |
---|
10 | #ifndef NETWORKBROWSER_H |
---|
11 | #define NETWORKBROWSER_H |
---|
12 | |
---|
13 | extern struct inetwork* inetwork; |
---|
14 | |
---|
15 | struct networkbrowser |
---|
16 | { |
---|
17 | //mode 0 = cifs |
---|
18 | //mode 1 = nfs |
---|
19 | //mode 2 = ftp |
---|
20 | char* mode; |
---|
21 | char* sharename; |
---|
22 | char* ip; |
---|
23 | char* sharedir; |
---|
24 | char* username; |
---|
25 | char* password; |
---|
26 | char* rsize; |
---|
27 | char* wsize; |
---|
28 | char* protocol; |
---|
29 | char* options; |
---|
30 | char* ssl; |
---|
31 | char* proxy; |
---|
32 | char* proxyip; |
---|
33 | char* proxyport; |
---|
34 | char* proxyuser; |
---|
35 | char* proxypass; |
---|
36 | char* ftpport; |
---|
37 | char* userauth; |
---|
38 | char* proxyauth; |
---|
39 | char* useproxy; |
---|
40 | char* usessl; |
---|
41 | char* usedns; |
---|
42 | char* dns; |
---|
43 | struct networkbrowser* next; |
---|
44 | }; |
---|
45 | |
---|
46 | struct networkbrowser *networkbrowser = NULL; |
---|
47 | |
---|
48 | char* readnetworkbrowser(char* filename, int flag); |
---|
49 | void screennetworkbrowser_addshare(struct networkbrowser* node, int newnode); |
---|
50 | |
---|
51 | void debugnetworkbrowser(struct networkbrowser* node) |
---|
52 | { |
---|
53 | if(node == NULL) return; |
---|
54 | |
---|
55 | debug(70, "mode: %s", node->mode); |
---|
56 | debug(70, "sharename: %s", node->sharename); |
---|
57 | debug(70, "ip: %s", node->ip); |
---|
58 | debug(70, "sharedir: %s", node->sharedir); |
---|
59 | debug(70, "username: %s", node->username); |
---|
60 | debug(70, "password: %s", node->password); |
---|
61 | debug(70, "rsize: %s", node->rsize); |
---|
62 | debug(70, "wsize: %s", node->wsize); |
---|
63 | debug(70, "protocol: %s", node->protocol); |
---|
64 | debug(70, "options: %s", node->options); |
---|
65 | debug(70, "ssl: %s", node->ssl); |
---|
66 | debug(70, "proxy: %s", node->proxy); |
---|
67 | debug(70, "proxyip: %s", node->proxyip); |
---|
68 | debug(70, "proxyport: %s", node->proxyport); |
---|
69 | debug(70, "proxyuser: %s", node->proxyuser); |
---|
70 | debug(70, "proxypass: %s", node->proxypass); |
---|
71 | debug(70, "ftpport: %s", node->ftpport); |
---|
72 | debug(70, "userauth: %s", node->userauth); |
---|
73 | debug(70, "proxyauth: %s", node->proxyauth); |
---|
74 | debug(70, "useproxy: %s", node->useproxy); |
---|
75 | debug(70, "usessl: %s", node->usessl); |
---|
76 | debug(70, "usedns: %s", node->usedns); |
---|
77 | debug(70, "dns: %s", node->dns); |
---|
78 | } |
---|
79 | |
---|
80 | void delnetworkbrowsercontent(struct networkbrowser* node) |
---|
81 | { |
---|
82 | if(node == NULL) return; |
---|
83 | |
---|
84 | free(node->mode); node->mode = NULL; |
---|
85 | free(node->sharename); node->sharename = NULL; |
---|
86 | free(node->ip); node->ip = NULL; |
---|
87 | free(node->sharedir); node->sharedir = NULL; |
---|
88 | free(node->username); node->username = NULL; |
---|
89 | free(node->password); node->password = NULL; |
---|
90 | free(node->rsize); node->rsize = NULL; |
---|
91 | free(node->wsize); node->wsize = NULL; |
---|
92 | free(node->protocol); node->protocol = NULL; |
---|
93 | free(node->options); node->options = NULL; |
---|
94 | free(node->ssl); node->ssl = NULL; |
---|
95 | free(node->proxy); node->proxy = NULL; |
---|
96 | free(node->proxyip); node->proxyip = NULL; |
---|
97 | free(node->proxyport); node->proxyport = NULL; |
---|
98 | free(node->proxyuser); node->proxyuser = NULL; |
---|
99 | free(node->proxypass); node->proxypass = NULL; |
---|
100 | free(node->ftpport); node->ftpport = NULL; |
---|
101 | free(node->userauth); node->userauth = NULL; |
---|
102 | free(node->proxyauth); node->proxyauth = NULL; |
---|
103 | free(node->useproxy); node->useproxy = NULL; |
---|
104 | free(node->usessl); node->usessl = NULL; |
---|
105 | free(node->usedns); node->usedns = NULL; |
---|
106 | free(node->dns); node->dns = NULL; |
---|
107 | } |
---|
108 | |
---|
109 | void delnetworkbrowser(struct networkbrowser* netnode) |
---|
110 | { |
---|
111 | struct networkbrowser *node = networkbrowser, *prev = networkbrowser; |
---|
112 | |
---|
113 | while(node != NULL) |
---|
114 | { |
---|
115 | if(node == netnode) |
---|
116 | { |
---|
117 | if(node == networkbrowser) |
---|
118 | networkbrowser = node->next; |
---|
119 | else |
---|
120 | prev->next = node->next; |
---|
121 | |
---|
122 | delnetworkbrowsercontent(node); |
---|
123 | |
---|
124 | free(node); |
---|
125 | node = NULL; |
---|
126 | break; |
---|
127 | } |
---|
128 | |
---|
129 | prev = node; |
---|
130 | node = node->next; |
---|
131 | } |
---|
132 | } |
---|
133 | |
---|
134 | void freenetworkbrowser() |
---|
135 | { |
---|
136 | struct networkbrowser *node = networkbrowser, *prev = networkbrowser; |
---|
137 | |
---|
138 | while(node != NULL) |
---|
139 | { |
---|
140 | prev = node; |
---|
141 | node = node->next; |
---|
142 | if(prev != NULL) |
---|
143 | delnetworkbrowser(prev); |
---|
144 | } |
---|
145 | } |
---|
146 | |
---|
147 | struct networkbrowser* addnetworkbrowser(char *line, int count, struct networkbrowser* last) |
---|
148 | { |
---|
149 | struct networkbrowser *newnode = NULL, *prev = NULL, *node = networkbrowser; |
---|
150 | int ret = 0, treffer = 0; |
---|
151 | char* tmpstr = NULL; |
---|
152 | |
---|
153 | newnode = (struct networkbrowser*)malloc(sizeof(struct networkbrowser)); |
---|
154 | if(newnode == NULL) |
---|
155 | { |
---|
156 | err("no memory"); |
---|
157 | return NULL; |
---|
158 | } |
---|
159 | memset(newnode, 0, sizeof(struct networkbrowser)); |
---|
160 | |
---|
161 | if(line != NULL) |
---|
162 | { |
---|
163 | newnode->sharename = malloc(256); |
---|
164 | if(newnode->sharename == NULL) |
---|
165 | { |
---|
166 | err("no memory"); |
---|
167 | delnetworkbrowsercontent(newnode); |
---|
168 | free(newnode); |
---|
169 | return NULL; |
---|
170 | } |
---|
171 | memset(newnode->sharename, 0, 256); |
---|
172 | |
---|
173 | newnode->ip = malloc(256); |
---|
174 | if(newnode->ip == NULL) |
---|
175 | { |
---|
176 | err("no memory"); |
---|
177 | delnetworkbrowsercontent(newnode); |
---|
178 | free(newnode); |
---|
179 | return NULL; |
---|
180 | } |
---|
181 | memset(newnode->ip, 0, 256); |
---|
182 | |
---|
183 | newnode->dns = malloc(256); |
---|
184 | if(newnode->dns == NULL) |
---|
185 | { |
---|
186 | err("no memory"); |
---|
187 | delnetworkbrowsercontent(newnode); |
---|
188 | free(newnode); |
---|
189 | return NULL; |
---|
190 | } |
---|
191 | memset(newnode->dns, 0, 256); |
---|
192 | |
---|
193 | newnode->sharedir = malloc(256); |
---|
194 | if(newnode->sharedir == NULL) |
---|
195 | { |
---|
196 | err("no memory"); |
---|
197 | delnetworkbrowsercontent(newnode); |
---|
198 | free(newnode); |
---|
199 | return NULL; |
---|
200 | } |
---|
201 | memset(newnode->sharedir, 0, 256); |
---|
202 | |
---|
203 | newnode->username = malloc(256); |
---|
204 | if(newnode->username == NULL) |
---|
205 | { |
---|
206 | err("no memory"); |
---|
207 | delnetworkbrowsercontent(newnode); |
---|
208 | free(newnode); |
---|
209 | return NULL; |
---|
210 | } |
---|
211 | memset(newnode->username, 0, 256); |
---|
212 | |
---|
213 | newnode->password = malloc(256); |
---|
214 | if(newnode->password == NULL) |
---|
215 | { |
---|
216 | err("no memory"); |
---|
217 | delnetworkbrowsercontent(newnode); |
---|
218 | free(newnode); |
---|
219 | return NULL; |
---|
220 | } |
---|
221 | memset(newnode->password, 0, 256); |
---|
222 | |
---|
223 | newnode->rsize = malloc(256); |
---|
224 | if(newnode->rsize == NULL) |
---|
225 | { |
---|
226 | err("no memory"); |
---|
227 | delnetworkbrowsercontent(newnode); |
---|
228 | free(newnode); |
---|
229 | return NULL; |
---|
230 | } |
---|
231 | memset(newnode->rsize, 0, 256); |
---|
232 | |
---|
233 | newnode->wsize = malloc(256); |
---|
234 | if(newnode->wsize == NULL) |
---|
235 | { |
---|
236 | err("no memory"); |
---|
237 | delnetworkbrowsercontent(newnode); |
---|
238 | free(newnode); |
---|
239 | return NULL; |
---|
240 | } |
---|
241 | memset(newnode->wsize, 0, 256); |
---|
242 | |
---|
243 | newnode->protocol = malloc(256); |
---|
244 | if(newnode->protocol == NULL) |
---|
245 | { |
---|
246 | err("no memory"); |
---|
247 | delnetworkbrowsercontent(newnode); |
---|
248 | free(newnode); |
---|
249 | return NULL; |
---|
250 | } |
---|
251 | memset(newnode->protocol, 0, 256); |
---|
252 | |
---|
253 | newnode->options = malloc(256); |
---|
254 | if(newnode->options == NULL) |
---|
255 | { |
---|
256 | err("no memory"); |
---|
257 | delnetworkbrowsercontent(newnode); |
---|
258 | free(newnode); |
---|
259 | return NULL; |
---|
260 | } |
---|
261 | memset(newnode->options, 0, 256); |
---|
262 | |
---|
263 | newnode->ssl = malloc(256); |
---|
264 | if(newnode->ssl == NULL) |
---|
265 | { |
---|
266 | err("no memory"); |
---|
267 | delnetworkbrowsercontent(newnode); |
---|
268 | free(newnode); |
---|
269 | return NULL; |
---|
270 | } |
---|
271 | memset(newnode->ssl, 0, 256); |
---|
272 | |
---|
273 | newnode->proxy = malloc(256); |
---|
274 | if(newnode->proxy == NULL) |
---|
275 | { |
---|
276 | err("no memory"); |
---|
277 | delnetworkbrowsercontent(newnode); |
---|
278 | free(newnode); |
---|
279 | return NULL; |
---|
280 | } |
---|
281 | memset(newnode->proxy, 0, 256); |
---|
282 | |
---|
283 | newnode->proxyip = malloc(256); |
---|
284 | if(newnode->proxyip == NULL) |
---|
285 | { |
---|
286 | err("no memory"); |
---|
287 | delnetworkbrowsercontent(newnode); |
---|
288 | free(newnode); |
---|
289 | return NULL; |
---|
290 | } |
---|
291 | memset(newnode->proxyip, 0, 256); |
---|
292 | |
---|
293 | newnode->proxyport = malloc(256); |
---|
294 | if(newnode->proxyport == NULL) |
---|
295 | { |
---|
296 | err("no memory"); |
---|
297 | delnetworkbrowsercontent(newnode); |
---|
298 | free(newnode); |
---|
299 | return NULL; |
---|
300 | } |
---|
301 | memset(newnode->proxyport, 0, 256); |
---|
302 | |
---|
303 | newnode->proxyuser = malloc(256); |
---|
304 | if(newnode->proxyuser == NULL) |
---|
305 | { |
---|
306 | err("no memory"); |
---|
307 | delnetworkbrowsercontent(newnode); |
---|
308 | free(newnode); |
---|
309 | return NULL; |
---|
310 | } |
---|
311 | memset(newnode->proxyuser, 0, 256); |
---|
312 | |
---|
313 | newnode->proxypass = malloc(256); |
---|
314 | if(newnode->proxypass == NULL) |
---|
315 | { |
---|
316 | err("no memory"); |
---|
317 | delnetworkbrowsercontent(newnode); |
---|
318 | free(newnode); |
---|
319 | return NULL; |
---|
320 | } |
---|
321 | memset(newnode->proxypass, 0, 256); |
---|
322 | |
---|
323 | newnode->ftpport = malloc(256); |
---|
324 | if(newnode->ftpport == NULL) |
---|
325 | { |
---|
326 | err("no memory"); |
---|
327 | delnetworkbrowsercontent(newnode); |
---|
328 | free(newnode); |
---|
329 | return NULL; |
---|
330 | } |
---|
331 | memset(newnode->ftpport, 0, 256); |
---|
332 | |
---|
333 | newnode->userauth = ostrcat(newnode->userauth, "0", 1, 0); |
---|
334 | newnode->proxyauth = ostrcat(newnode->proxyauth, "0", 1, 0); |
---|
335 | newnode->useproxy = ostrcat(newnode->useproxy, "0", 1, 0); |
---|
336 | newnode->usessl = ostrcat(newnode->usessl, "0", 1, 0); |
---|
337 | newnode->usedns = ostrcat(newnode->usedns, "0", 1, 0); |
---|
338 | |
---|
339 | //nfs parse |
---|
340 | if(ostrstr(line, "-fstype=nfs") != NULL) |
---|
341 | { |
---|
342 | treffer = 1; |
---|
343 | newnode->mode = ostrcat("1", NULL, 0, 0); |
---|
344 | if(oregex(".*([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}).*", tmpstr)) |
---|
345 | { |
---|
346 | ret = sscanf(line, "%s\t-fstype=nfs,%[^,],%*[^,],rsize=%[^,],wsize=%[^,],%s\t%[^:]:/%s", newnode->sharename, newnode->options, newnode->rsize, newnode->wsize, newnode->protocol, newnode->ip, newnode->sharedir); |
---|
347 | } |
---|
348 | else |
---|
349 | { |
---|
350 | free(newnode->usedns); newnode->usedns = NULL; |
---|
351 | newnode->usedns = ostrcat(newnode->usedns, "1", 1, 0); |
---|
352 | ret = sscanf(line, "%s\t-fstype=nfs,%[^,],%*[^,],rsize=%[^,],wsize=%[^,],%s\t%[^:]:/%s", newnode->sharename, newnode->options, newnode->rsize, newnode->wsize, newnode->protocol, newnode->dns, newnode->sharedir); |
---|
353 | } |
---|
354 | if(ret != 7) |
---|
355 | { |
---|
356 | if(count > 0) |
---|
357 | { |
---|
358 | err("networkbrowser nfs line %d not ok", count); |
---|
359 | } |
---|
360 | else |
---|
361 | { |
---|
362 | err("add networkbrowser nfs"); |
---|
363 | } |
---|
364 | delnetworkbrowsercontent(newnode); |
---|
365 | free(newnode); |
---|
366 | return NULL; |
---|
367 | } |
---|
368 | } |
---|
369 | |
---|
370 | //cifs parse |
---|
371 | if(ostrstr(line, "-fstype=cifs") != NULL) |
---|
372 | { |
---|
373 | treffer = 1; |
---|
374 | newnode->mode = ostrcat("0", NULL, 0, 0); |
---|
375 | if(oregex(".*([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}).*", line)) |
---|
376 | { |
---|
377 | if(ostrstr(line, "user=,") != NULL) |
---|
378 | { |
---|
379 | treffer = 6; |
---|
380 | ret = sscanf(line, "%s\t-fstype=cifs,%[^,],rsize=%[^,],wsize=%[^,],%*s\t://%[^/]/%s", newnode->sharename, newnode->options, newnode->rsize, newnode->wsize, newnode->ip, newnode->sharedir); |
---|
381 | } |
---|
382 | else |
---|
383 | { |
---|
384 | treffer = 8; |
---|
385 | free(newnode->userauth); newnode->userauth = NULL; |
---|
386 | newnode->userauth = ostrcat(newnode->userauth, "1", 1, 0); |
---|
387 | ret = sscanf(line, "%s\t-fstype=cifs,%[^,],rsize=%[^,],wsize=%[^,],user=%[^,],pass=%s\t://%[^/]/%s", newnode->sharename, newnode->options, newnode->rsize, newnode->wsize, newnode->username, newnode->password, newnode->ip, newnode->sharedir); |
---|
388 | } |
---|
389 | } |
---|
390 | else |
---|
391 | { |
---|
392 | free(newnode->usedns); newnode->usedns = NULL; |
---|
393 | newnode->usedns = ostrcat(newnode->usedns, "1", 1, 0); |
---|
394 | if(ostrstr(line, "user=,") != NULL) |
---|
395 | { |
---|
396 | treffer = 6; |
---|
397 | ret = sscanf(line, "%s\t-fstype=cifs,%[^,],rsize=%[^,],wsize=%[^,],%*s\t://%[^/]/%s", newnode->sharename, newnode->options, newnode->rsize, newnode->wsize, newnode->dns, newnode->sharedir); |
---|
398 | } |
---|
399 | else |
---|
400 | { |
---|
401 | treffer = 8; |
---|
402 | free(newnode->userauth); newnode->userauth = NULL; |
---|
403 | newnode->userauth = ostrcat(newnode->userauth, "1", 1, 0); |
---|
404 | ret = sscanf(line, "%s\t-fstype=cifs,%[^,],rsize=%[^,],wsize=%[^,],user=%[^,],pass=%s\t://%[^/]/%s", newnode->sharename, newnode->options, newnode->rsize, newnode->wsize, newnode->username, newnode->password, newnode->dns, newnode->sharedir); |
---|
405 | } |
---|
406 | } |
---|
407 | if(ret != treffer) |
---|
408 | { |
---|
409 | if(count > 0) |
---|
410 | { |
---|
411 | err("networkbrowser cifs line %d not ok", count); |
---|
412 | } |
---|
413 | else |
---|
414 | { |
---|
415 | err("add networkbrowser cifs"); |
---|
416 | } |
---|
417 | delnetworkbrowsercontent(newnode); |
---|
418 | free(newnode); |
---|
419 | return NULL; |
---|
420 | } |
---|
421 | } |
---|
422 | |
---|
423 | //ftpfs parse |
---|
424 | if(ostrstr(line, "-fstype=ftpfs") != NULL) |
---|
425 | { |
---|
426 | treffer = 1; |
---|
427 | newnode->mode = ostrcat("2", NULL, 0, 0); |
---|
428 | |
---|
429 | ret = sscanf(line, "%s\t-fstype=ftpfs,%[^,\t]", newnode->sharename, newnode->options); |
---|
430 | if(ret != 2) treffer = 0; |
---|
431 | |
---|
432 | tmpstr = ostrstr(line, "ssl"); |
---|
433 | if(tmpstr != NULL) |
---|
434 | { |
---|
435 | free(newnode->usessl); newnode->usessl = NULL; |
---|
436 | newnode->usessl = ostrcat(newnode->usessl, "1", 1, 0); |
---|
437 | ret = sscanf(tmpstr, "%[^,\t]", newnode->ssl); |
---|
438 | if(ret != 1) treffer = 0; |
---|
439 | } |
---|
440 | |
---|
441 | tmpstr = ostrstr(line, "proxy="); |
---|
442 | if(tmpstr != NULL) |
---|
443 | { |
---|
444 | free(newnode->useproxy); newnode->useproxy = NULL; |
---|
445 | newnode->useproxy = ostrcat(newnode->useproxy, "1", 1, 0); |
---|
446 | ret = sscanf(tmpstr, "proxy=%[^\\]\\:%[^,],%[^,\t]", newnode->proxyip, newnode->proxyport, newnode->proxy); |
---|
447 | if(ret != 3) treffer = 0; |
---|
448 | |
---|
449 | tmpstr = ostrstr(line, "proxy_user="); |
---|
450 | if(tmpstr != NULL) |
---|
451 | { |
---|
452 | free(newnode->proxyauth); newnode->proxyauth = NULL; |
---|
453 | newnode->proxyauth = ostrcat(newnode->proxyauth, "1", 1, 0); |
---|
454 | ret = sscanf(tmpstr, "proxy_user=%[^\\]\\:%[^,\t]", newnode->proxyuser, newnode->proxypass); |
---|
455 | if(ret != 2) treffer = 0; |
---|
456 | } |
---|
457 | } |
---|
458 | |
---|
459 | tmpstr = ostrstr(line, ":ftp\\://"); |
---|
460 | if(tmpstr != NULL) |
---|
461 | { |
---|
462 | if(oregex(".*([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}).*", tmpstr)) |
---|
463 | { |
---|
464 | if(ostrstr(line, "@") != NULL) |
---|
465 | { |
---|
466 | free(newnode->userauth); newnode->userauth = NULL; |
---|
467 | newnode->userauth = ostrcat(newnode->userauth, "1", 1, 0); |
---|
468 | ret = sscanf(tmpstr, ":ftp\\://%[^\\]\\:%[^@]@%[^\\]\\:%s", newnode->username, newnode->password, newnode->ip, newnode->ftpport); |
---|
469 | // if(ret != 5) treffer = 0; |
---|
470 | if(ret != 4) treffer = 0; |
---|
471 | } |
---|
472 | else |
---|
473 | { |
---|
474 | ret = sscanf(tmpstr, ":ftp\\://%[^\\]\\:%s", newnode->ip, newnode->ftpport); |
---|
475 | if(ret != 3) treffer = 0; |
---|
476 | } |
---|
477 | |
---|
478 | } |
---|
479 | else |
---|
480 | { |
---|
481 | free(newnode->usedns); newnode->usedns = NULL; |
---|
482 | newnode->usedns = ostrcat(newnode->usedns, "1", 1, 0); |
---|
483 | |
---|
484 | if(ostrstr(line, "@") != NULL) |
---|
485 | { |
---|
486 | free(newnode->userauth); newnode->userauth = NULL; |
---|
487 | newnode->userauth = ostrcat(newnode->userauth, "1", 1, 0); |
---|
488 | ret = sscanf(tmpstr, ":ftp\\://%[^\\]\\:%[^@]@%[^\\]\\:%s", newnode->username, newnode->password, newnode->dns, newnode->ftpport); |
---|
489 | // if(ret != 5) treffer = 0; |
---|
490 | if(ret != 4) treffer = 0; |
---|
491 | } |
---|
492 | else |
---|
493 | { |
---|
494 | ret = sscanf(tmpstr, ":ftp\\://%[^\\]\\:%s", newnode->dns, newnode->ftpport); |
---|
495 | if(ret != 3) treffer = 0; |
---|
496 | } |
---|
497 | } |
---|
498 | } |
---|
499 | else |
---|
500 | treffer = 0; |
---|
501 | |
---|
502 | if(newnode->ftpport != NULL) |
---|
503 | { |
---|
504 | tmpstr = ostrstr(newnode->ftpport, "/"); |
---|
505 | if(tmpstr != NULL) |
---|
506 | { |
---|
507 | tmpstr[0] = '\0'; |
---|
508 | free(newnode->sharedir); |
---|
509 | newnode->sharedir = ostrcat(tmpstr + 1, NULL, 0, 0); |
---|
510 | } |
---|
511 | } |
---|
512 | |
---|
513 | if(treffer == 0) |
---|
514 | { |
---|
515 | if(count > 0) |
---|
516 | { |
---|
517 | err("networkbrowser ftpfs line %d not ok", count); |
---|
518 | } |
---|
519 | else |
---|
520 | { |
---|
521 | err("add networkbrowser ftpfs"); |
---|
522 | } |
---|
523 | delnetworkbrowsercontent(newnode); |
---|
524 | free(newnode); |
---|
525 | return NULL; |
---|
526 | } |
---|
527 | |
---|
528 | } |
---|
529 | |
---|
530 | if(treffer == 0) |
---|
531 | { |
---|
532 | delnetworkbrowsercontent(newnode); |
---|
533 | free(newnode); |
---|
534 | return NULL; |
---|
535 | } |
---|
536 | } |
---|
537 | |
---|
538 | if(last == NULL) |
---|
539 | { |
---|
540 | while(node != NULL) |
---|
541 | { |
---|
542 | prev = node; |
---|
543 | node = node->next; |
---|
544 | } |
---|
545 | } |
---|
546 | else |
---|
547 | { |
---|
548 | prev = last; |
---|
549 | node = last->next; |
---|
550 | } |
---|
551 | |
---|
552 | if(prev == NULL) |
---|
553 | networkbrowser = newnode; |
---|
554 | else |
---|
555 | prev->next = newnode; |
---|
556 | |
---|
557 | newnode->next = node; |
---|
558 | |
---|
559 | return newnode; |
---|
560 | } |
---|
561 | |
---|
562 | void setdefaultnetworkbrowser(struct networkbrowser* node) |
---|
563 | { |
---|
564 | if(node == NULL) return; |
---|
565 | |
---|
566 | if(node->mode == NULL || node->mode[0] == '\0') node->mode = ostrcat(node->mode, "0", 1, 0); |
---|
567 | if(node->sharename == NULL || node->sharename[0] == '\0') node->sharename = ostrcat(node->sharename, "SHARENAME", 1, 0); |
---|
568 | if(node->ip == NULL || node->ip[0] == '\0') node->ip = ostrcat(node->ip, "192.168.178.1", 1, 0); |
---|
569 | if(node->sharedir == NULL || node->sharedir[0] == '\0') node->sharedir = ostrcat(node->sharedir, "sharedir", 1, 0); |
---|
570 | if(node->username == NULL || node->username[0] == '\0') node->username = ostrcat(node->username, "username", 1, 0); |
---|
571 | if(node->password == NULL || node->password[0] == '\0') node->password = ostrcat(node->password, "password", 1, 0); |
---|
572 | if(node->rsize == NULL || node->rsize[0] == '\0') node->rsize = ostrcat(node->rsize, "32768", 1, 0); |
---|
573 | if(node->wsize == NULL || node->wsize[0] == '\0') node->wsize = ostrcat(node->wsize, "32768", 1, 0); |
---|
574 | if(node->protocol == NULL || node->protocol[0] == '\0') node->protocol = ostrcat(node->protocol, "udp", 1, 0); |
---|
575 | if(node->options == NULL || node->options[0] == '\0') node->options = ostrcat(node->options, "rw", 1, 0); |
---|
576 | if(node->ssl == NULL || node->ssl[0] == '\0') node->ssl = ostrcat(node->ssl, "ssl_try", 1, 0); |
---|
577 | if(node->proxy == NULL || node->proxy[0] == '\0') node->proxy = ostrcat(node->proxy, "socks5", 1, 0); |
---|
578 | if(node->proxyip == NULL || node->proxyip[0] == '\0') node->proxyip = ostrcat(node->proxyip, "12.23.45.67", 1, 0); |
---|
579 | if(node->proxyport == NULL || node->proxyport[0] == '\0') node->proxyport = ostrcat(node->proxyport, "8080", 1, 0); |
---|
580 | if(node->proxyuser == NULL || node->proxyuser[0] == '\0') node->proxyuser = ostrcat(node->proxyuser, "proxyuser", 1, 0); |
---|
581 | if(node->proxypass == NULL || node->proxypass[0] == '\0') node->proxypass = ostrcat(node->proxypass, "proxypass", 1, 0); |
---|
582 | if(node->ftpport == NULL || node->ftpport[0] == '\0') node->ftpport = ostrcat(node->ftpport, "21", 1, 0); |
---|
583 | if(node->userauth == NULL || node->userauth[0] == '\0') node->userauth = ostrcat(node->userauth, "0", 1, 0); |
---|
584 | if(node->proxyauth == NULL || node->proxyauth[0] == '\0') node->proxyauth = ostrcat(node->proxyauth, "0", 1, 0); |
---|
585 | if(node->useproxy == NULL || node->useproxy[0] == '\0') node->useproxy = ostrcat(node->useproxy, "0", 1, 0); |
---|
586 | if(node->usessl == NULL || node->usessl[0] == '\0') node->usessl = ostrcat(node->usessl, "0", 1, 0); |
---|
587 | if(node->usedns == NULL || node->usedns[0] == '\0') node->usedns = ostrcat(node->usedns, "0", 1, 0); |
---|
588 | if(node->dns == NULL || node->dns[0] == '\0') node->dns = ostrcat(node->dns, "dns.addresse.de", 1, 0); |
---|
589 | } |
---|
590 | |
---|
591 | void savenetworkbrowser(char* filename) |
---|
592 | { |
---|
593 | struct networkbrowser* node = networkbrowser; |
---|
594 | char* tmpstr = NULL, *savesettings = NULL; |
---|
595 | |
---|
596 | if(filename == NULL) return; |
---|
597 | |
---|
598 | savesettings = readnetworkbrowser(getconfig("automiscfile", NULL) , 1); |
---|
599 | |
---|
600 | while(node != NULL) |
---|
601 | { |
---|
602 | savesettings = ostrcat(savesettings, node->sharename, 1, 0); |
---|
603 | |
---|
604 | if(ostrcmp(node->mode, "0") == 0) |
---|
605 | { |
---|
606 | savesettings = ostrcat(savesettings, "\t-fstype=cifs,rw,rsize=", 1, 0); |
---|
607 | savesettings = ostrcat(savesettings, node->rsize, 1, 0); |
---|
608 | savesettings = ostrcat(savesettings, ",wsize=", 1, 0); |
---|
609 | savesettings = ostrcat(savesettings, node->wsize, 1, 0); |
---|
610 | |
---|
611 | if(ostrcmp(node->userauth, "1") == 0) |
---|
612 | { |
---|
613 | savesettings = ostrcat(savesettings, ",user=", 1, 0); |
---|
614 | savesettings = ostrcat(savesettings, node->username, 1, 0); |
---|
615 | savesettings = ostrcat(savesettings, ",pass=", 1, 0); |
---|
616 | savesettings = ostrcat(savesettings, node->password, 1, 0); |
---|
617 | } |
---|
618 | else |
---|
619 | savesettings = ostrcat(savesettings, ",user=,pass=", 1, 0); |
---|
620 | |
---|
621 | savesettings = ostrcat(savesettings, "\t://", 1, 0); |
---|
622 | if(ostrcmp(node->usedns, "1") == 0) |
---|
623 | savesettings = ostrcat(savesettings, node->dns, 1, 0); |
---|
624 | else |
---|
625 | { |
---|
626 | tmpstr = fixip(node->ip, 1); |
---|
627 | savesettings = ostrcat(savesettings, tmpstr, 1, 0); |
---|
628 | free(tmpstr); tmpstr = NULL; |
---|
629 | } |
---|
630 | savesettings = ostrcat(savesettings, "/", 1, 0); |
---|
631 | savesettings = ostrcat(savesettings, node->sharedir, 1, 0); |
---|
632 | savesettings = ostrcat(savesettings, "\n", 1, 0); |
---|
633 | } |
---|
634 | else if(ostrcmp(node->mode, "1") == 0) |
---|
635 | { |
---|
636 | savesettings = ostrcat(savesettings, "\t-fstype=nfs,", 1, 0); |
---|
637 | savesettings = ostrcat(savesettings, node->options, 1, 0); |
---|
638 | savesettings = ostrcat(savesettings, ",nolock", 1, 0); |
---|
639 | savesettings = ostrcat(savesettings, ",rsize=", 1, 0); |
---|
640 | savesettings = ostrcat(savesettings, node->rsize, 1, 0); |
---|
641 | savesettings = ostrcat(savesettings, ",wsize=", 1, 0); |
---|
642 | savesettings = ostrcat(savesettings, node->wsize, 1, 0); |
---|
643 | savesettings = ostrcat(savesettings, ",", 1, 0); |
---|
644 | savesettings = ostrcat(savesettings, node->protocol, 1, 0); |
---|
645 | savesettings = ostrcat(savesettings, "\t", 1, 0); |
---|
646 | if(ostrcmp(node->usedns, "1") == 0) |
---|
647 | savesettings = ostrcat(savesettings, node->dns, 1, 0); |
---|
648 | else |
---|
649 | { |
---|
650 | tmpstr = fixip(node->ip, 1); |
---|
651 | savesettings = ostrcat(savesettings, tmpstr, 1, 0); |
---|
652 | free(tmpstr); tmpstr = NULL; |
---|
653 | } |
---|
654 | savesettings = ostrcat(savesettings, ":/", 1, 0); |
---|
655 | savesettings = ostrcat(savesettings, node->sharedir, 1, 0); |
---|
656 | savesettings = ostrcat(savesettings, "\n", 1, 0); |
---|
657 | } |
---|
658 | else if(ostrcmp(node->mode, "2") == 0) |
---|
659 | { |
---|
660 | savesettings = ostrcat(savesettings, "\t-fstype=ftpfs,", 1, 0); |
---|
661 | savesettings = ostrcat(savesettings, node->options, 1, 0); |
---|
662 | // not working nolock...no_verify_hostname... |
---|
663 | // savesettings = ostrcat(savesettings, ",nolock,allow_other,nonempty,nodev,noatime,kernel_cache,auto_cache,disable_epsv,skip_pasv_ip,no_verify_peer,no_verify_hostname", 1, 0); |
---|
664 | savesettings = ostrcat(savesettings, ",allow_other,nonempty,nodev,noatime,kernel_cache,auto_cache,disable_epsv,skip_pasv_ip,no_verify_peer", 1, 0); |
---|
665 | |
---|
666 | if(ostrcmp(node->usessl, "1") == 0) |
---|
667 | { |
---|
668 | savesettings = ostrcat(savesettings, ",", 1, 0); |
---|
669 | savesettings = ostrcat(savesettings, node->ssl, 1, 0); |
---|
670 | } |
---|
671 | |
---|
672 | if(ostrcmp(node->useproxy, "1") == 0) |
---|
673 | { |
---|
674 | savesettings = ostrcat(savesettings, ",proxy=", 1, 0); |
---|
675 | tmpstr = fixip(node->proxyip, 1); |
---|
676 | savesettings = ostrcat(savesettings, tmpstr, 1, 0); |
---|
677 | free(tmpstr); tmpstr = NULL; |
---|
678 | savesettings = ostrcat(savesettings, "\\:", 1, 0); |
---|
679 | savesettings = ostrcat(savesettings, node->proxyport, 1, 0); |
---|
680 | } |
---|
681 | if(ostrcmp(node->useproxy, "1") == 0) |
---|
682 | { |
---|
683 | savesettings = ostrcat(savesettings, ",", 1, 0); |
---|
684 | savesettings = ostrcat(savesettings, node->proxy, 1, 0); |
---|
685 | } |
---|
686 | |
---|
687 | if(ostrcmp(node->proxyauth, "1") == 0) |
---|
688 | { |
---|
689 | savesettings = ostrcat(savesettings, ",proxy_user=", 1, 0); |
---|
690 | savesettings = ostrcat(savesettings, node->proxyuser, 1, 0); |
---|
691 | savesettings = ostrcat(savesettings, "\\:", 1, 0); |
---|
692 | savesettings = ostrcat(savesettings, node->proxypass, 1, 0); |
---|
693 | } |
---|
694 | |
---|
695 | savesettings = ostrcat(savesettings, "\t:ftp\\://", 1, 0); |
---|
696 | if(ostrcmp(node->userauth, "1") == 0) |
---|
697 | { |
---|
698 | savesettings = ostrcat(savesettings, node->username, 1, 0); |
---|
699 | savesettings = ostrcat(savesettings, "\\:", 1, 0); |
---|
700 | savesettings = ostrcat(savesettings, node->password, 1, 0); |
---|
701 | savesettings = ostrcat(savesettings, "@", 1, 0); |
---|
702 | } |
---|
703 | |
---|
704 | if(ostrcmp(node->usedns, "1") == 0) |
---|
705 | savesettings = ostrcat(savesettings, node->dns, 1, 0); |
---|
706 | else |
---|
707 | { |
---|
708 | tmpstr = fixip(node->ip, 1); |
---|
709 | savesettings = ostrcat(savesettings, tmpstr, 1, 0); |
---|
710 | free(tmpstr); tmpstr = NULL; |
---|
711 | } |
---|
712 | |
---|
713 | savesettings = ostrcat(savesettings, "\\:", 1, 0); |
---|
714 | |
---|
715 | tmpstr = fixport(node->ftpport, 1); |
---|
716 | savesettings = ostrcat(savesettings, fixport(tmpstr, 1), 1, 0); |
---|
717 | free(tmpstr); tmpstr = NULL; |
---|
718 | |
---|
719 | if(ostrcmp(node->sharedir, "sharedir") != 0) |
---|
720 | { |
---|
721 | node->sharedir = string_replace_all("//", "", node->sharedir, 1); |
---|
722 | if(!ostrncmp("/", node->sharedir, 1)) |
---|
723 | savesettings = ostrcat(savesettings, "/", 1, 0); |
---|
724 | else |
---|
725 | savesettings = ostrcat(savesettings, "//", 1, 0); |
---|
726 | |
---|
727 | savesettings = ostrcat(savesettings, node->sharedir, 1, 0); |
---|
728 | } |
---|
729 | |
---|
730 | savesettings = ostrcat(savesettings, "\n", 1, 0); |
---|
731 | } |
---|
732 | |
---|
733 | node = node->next; |
---|
734 | } |
---|
735 | |
---|
736 | if(savesettings != NULL) |
---|
737 | { |
---|
738 | struct skin* loadmediadb = getscreen("loading"); |
---|
739 | struct skin* blackscreen = getscreen("blackscreen"); |
---|
740 | drawscreen(blackscreen, 0, 0); |
---|
741 | drawscreen(loadmediadb, 0, 0); |
---|
742 | |
---|
743 | writesys(getconfig("automiscfile", NULL), savesettings, 0); |
---|
744 | system("hotplug.sh first &"); |
---|
745 | } |
---|
746 | |
---|
747 | debugnetworkbrowser(node); |
---|
748 | debug(70, "savesettings: %s", savesettings); |
---|
749 | debug(70, "--------------------"); |
---|
750 | |
---|
751 | free(savesettings); savesettings = NULL; |
---|
752 | } |
---|
753 | |
---|
754 | void copynetworkbrowser(struct networkbrowser* from, struct networkbrowser* to, char* sharename) |
---|
755 | { |
---|
756 | if(from == NULL || to == NULL) return; |
---|
757 | |
---|
758 | to->mode = ostrcat(from->mode, NULL, 0, 0); |
---|
759 | to->sharename = ostrcat(sharename, NULL, 0, 0); |
---|
760 | to->ip = ostrcat(from->ip, NULL, 0, 0); |
---|
761 | to->sharedir = ostrcat(from->sharedir, NULL, 0, 0); |
---|
762 | to->username = ostrcat(from->username, NULL, 0, 0); |
---|
763 | to->password = ostrcat(from->password, NULL, 0, 0); |
---|
764 | to->rsize = ostrcat(from->rsize, NULL, 0, 0); |
---|
765 | to->wsize = ostrcat(from->wsize, NULL, 0, 0); |
---|
766 | to->protocol = ostrcat(from->protocol, NULL, 0, 0); |
---|
767 | to->options = ostrcat(from->options, NULL, 0, 0); |
---|
768 | to->ssl = ostrcat(from->ssl, NULL, 0, 0); |
---|
769 | to->proxy = ostrcat(from->proxy, NULL, 0, 0); |
---|
770 | to->proxyip = ostrcat(from->proxyip, NULL, 0, 0); |
---|
771 | to->proxyport = ostrcat(from->proxyport, NULL, 0, 0); |
---|
772 | to->proxyuser = ostrcat(from->proxyuser, NULL, 0, 0); |
---|
773 | to->proxypass = ostrcat(from->proxypass, NULL, 0, 0); |
---|
774 | to->ftpport = ostrcat(from->ftpport, NULL, 0, 0); |
---|
775 | to->userauth = ostrcat(from->userauth, NULL, 0, 0); |
---|
776 | to->proxyauth = ostrcat(from->proxyauth, NULL, 0, 0); |
---|
777 | to->useproxy = ostrcat(from->useproxy, NULL, 0, 0); |
---|
778 | to->usessl = ostrcat(from->usessl, NULL, 0, 0); |
---|
779 | to->usedns = ostrcat(from->usedns, NULL, 0, 0); |
---|
780 | to->dns = ostrcat(from->dns, NULL, 0, 0); |
---|
781 | } |
---|
782 | |
---|
783 | //flag 0: read and add to struct |
---|
784 | //flag 1: read and build string |
---|
785 | char* readnetworkbrowser(char* filename, int flag) |
---|
786 | { |
---|
787 | FILE *fd = NULL; |
---|
788 | char *fileline = NULL, *tmpstr = NULL; |
---|
789 | int linecount = 0; |
---|
790 | |
---|
791 | fileline = malloc(MINMALLOC); |
---|
792 | if(fileline == NULL) |
---|
793 | { |
---|
794 | err("no memory"); |
---|
795 | return NULL; |
---|
796 | } |
---|
797 | |
---|
798 | fd = fopen(filename, "r"); |
---|
799 | if(fd == NULL) |
---|
800 | { |
---|
801 | perr("can't open %s", filename); |
---|
802 | free(fileline); |
---|
803 | return NULL; |
---|
804 | } |
---|
805 | |
---|
806 | while(fgets(fileline, MINMALLOC, fd) != NULL) |
---|
807 | { |
---|
808 | if(flag == 0) |
---|
809 | { |
---|
810 | if(fileline[0] == '#' || fileline[0] == '\n') |
---|
811 | continue; |
---|
812 | if(fileline[strlen(fileline) - 1] == '\n') |
---|
813 | fileline[strlen(fileline) - 1] = '\0'; |
---|
814 | if(fileline[strlen(fileline) - 1] == '\r') |
---|
815 | fileline[strlen(fileline) - 1] = '\0'; |
---|
816 | |
---|
817 | linecount++; |
---|
818 | |
---|
819 | if(fileline != NULL) |
---|
820 | addnetworkbrowser(fileline, linecount, NULL); |
---|
821 | } |
---|
822 | if(flag == 1) |
---|
823 | { |
---|
824 | if(ostrstr(fileline, "-fstype=cifs") != NULL) continue; |
---|
825 | if(ostrstr(fileline, "-fstype=nfs") != NULL) continue; |
---|
826 | if(ostrstr(fileline, "-fstype=ftpfs") != NULL) continue; |
---|
827 | tmpstr = ostrcat(tmpstr, fileline, 1, 0); |
---|
828 | } |
---|
829 | } |
---|
830 | |
---|
831 | free(fileline); |
---|
832 | fclose(fd); |
---|
833 | return tmpstr; |
---|
834 | } |
---|
835 | |
---|
836 | void getnetworkbrowser_dns(struct inetwork* net, struct menulist** mlist) |
---|
837 | { |
---|
838 | int i = 0; |
---|
839 | netinfo* nInfo; |
---|
840 | char *tmpstr = NULL, *s = NULL, *tmpstr2 = NULL; |
---|
841 | |
---|
842 | if(net == NULL || mlist == NULL) return; |
---|
843 | |
---|
844 | tmpstr2 = ostrcat(tmpstr2, net->ip, 1, 0); |
---|
845 | tmpstr = fixip(tmpstr2, 1); |
---|
846 | free(tmpstr2); tmpstr2 = NULL; |
---|
847 | |
---|
848 | if(ostrcmp(tmpstr, "0.0.0.0") == 0) |
---|
849 | { |
---|
850 | free(tmpstr); tmpstr = NULL; |
---|
851 | return; |
---|
852 | } |
---|
853 | |
---|
854 | s = ostrcat(s, tmpstr, 1, 0); |
---|
855 | free(tmpstr); tmpstr = NULL; |
---|
856 | |
---|
857 | s = ostrcat(s, "/24", 1, 0); |
---|
858 | debug(70, "start scanning: %s", s); |
---|
859 | |
---|
860 | nInfo = newNetInfo(); |
---|
861 | netzInfo(s, nInfo); |
---|
862 | |
---|
863 | for(i = 0; i < 256; i++) |
---|
864 | { |
---|
865 | usleep(100000); |
---|
866 | |
---|
867 | if(nInfo[i].ip[0] == '\0') |
---|
868 | break; |
---|
869 | else |
---|
870 | { |
---|
871 | debug(70, "service: %s", nInfo[i].service); |
---|
872 | debug(70, "ip: %s", nInfo[i].ip); |
---|
873 | debug(70, "name: %s", nInfo[i].name); |
---|
874 | debug(70, "mac: %s", nInfo[i].mac); |
---|
875 | tmpstr = ostrcat(tmpstr , strstrip(nInfo[i].domain), 1, 0); |
---|
876 | tmpstr = ostrcat(tmpstr , " (", 1, 0); |
---|
877 | |
---|
878 | tmpstr = ostrcat(tmpstr , strstrip(nInfo[i].ip), 1, 0); |
---|
879 | tmpstr = ostrcat(tmpstr , ")", 1, 0); |
---|
880 | struct menulist* tmpmlist = addmenulist(mlist, tmpstr, NULL, "netbrowser_scanshares.png", 0, 0); |
---|
881 | changemenulistparam(tmpmlist, nInfo[i].ip, strstrip(nInfo[i].name), NULL, NULL); |
---|
882 | free(tmpstr); tmpstr = NULL; |
---|
883 | |
---|
884 | } |
---|
885 | } |
---|
886 | |
---|
887 | freeNetInfo(nInfo); |
---|
888 | free(s); s = NULL; |
---|
889 | } |
---|
890 | |
---|
891 | void getnetworkbrowser_cifs(struct menulist** mlist, char* s, char* r, char* u, char* p) |
---|
892 | { |
---|
893 | int i = 0; |
---|
894 | char* tmpstr = NULL; |
---|
895 | shareinfo* sInfo; |
---|
896 | |
---|
897 | if(s == NULL || r == NULL || u == NULL || p == NULL || mlist == NULL) return; |
---|
898 | |
---|
899 | sInfo = newShareInfo(); |
---|
900 | smbInfo(s, r, u, p, sInfo); |
---|
901 | |
---|
902 | for (i = 0; i < 128; i++) |
---|
903 | { |
---|
904 | usleep(100000); |
---|
905 | |
---|
906 | if(sInfo[i].sharename[0] == '\0'){ |
---|
907 | break; |
---|
908 | } |
---|
909 | else |
---|
910 | { |
---|
911 | debug(70, "sharename: %s", sInfo[i].sharename); |
---|
912 | debug(70, "type: %s", sInfo[i].typ); |
---|
913 | debug(70, "comment: %s", sInfo[i].comment); |
---|
914 | debug(70, "rech: %s", r); |
---|
915 | debug(70, "rechip: %s", s); |
---|
916 | |
---|
917 | tmpstr = ostrcat(tmpstr , "(cifs) ", 1, 0); |
---|
918 | tmpstr = ostrcat(tmpstr , strstrip(s), 1, 0); |
---|
919 | tmpstr = ostrcat(tmpstr , ": /", 1, 0); |
---|
920 | tmpstr = ostrcat(tmpstr , strstrip(sInfo[i].sharename), 1, 0); |
---|
921 | struct menulist* tmpmlist = addmenulist(mlist, tmpstr, NULL, "netbrowser_cifs.png", 0, 0); |
---|
922 | changemenulistparam(tmpmlist, sInfo[i].sharename, NULL, NULL, NULL); |
---|
923 | free(tmpstr); tmpstr = NULL; |
---|
924 | } |
---|
925 | } |
---|
926 | |
---|
927 | freeShareInfo(sInfo); |
---|
928 | } |
---|
929 | |
---|
930 | void getnetworkbrowser_nfs(struct menulist** mlist, char* s, char* r) |
---|
931 | { |
---|
932 | char* tmpstr = NULL, *tmpstr1 = NULL; |
---|
933 | nfsinfo* nfsInfo; |
---|
934 | int i = 0, err = 0; |
---|
935 | |
---|
936 | if(s == NULL || r == NULL || mlist == NULL) return; |
---|
937 | |
---|
938 | nfsInfo = newNfsInfo(); |
---|
939 | err = showNfsShare(s, nfsInfo); |
---|
940 | |
---|
941 | if (err == 0) |
---|
942 | { |
---|
943 | for (i = 0; i < 256; i++) |
---|
944 | { |
---|
945 | usleep(100000); |
---|
946 | |
---|
947 | if(nfsInfo[i].ip[0] == '\0') { |
---|
948 | break; |
---|
949 | } |
---|
950 | else |
---|
951 | { |
---|
952 | debug(70, "ip: %s", nfsInfo[i].ip); |
---|
953 | debug(70, "share: %s", nfsInfo[i].share); |
---|
954 | debug(70, "nfsShare: nfsShare"); |
---|
955 | debug(70, "rech: %s", r); |
---|
956 | debug(70, "rechip: %s", s); |
---|
957 | tmpstr = ostrcat(tmpstr , "(nfs) ", 1, 0); |
---|
958 | tmpstr = ostrcat(tmpstr , strstrip(s), 1, 0); |
---|
959 | tmpstr = ostrcat(tmpstr , ": ", 1, 0); |
---|
960 | tmpstr = ostrcat(tmpstr , strstrip(nfsInfo[i].share), 1, 0); |
---|
961 | struct menulist* tmpmlist = addmenulist(mlist, tmpstr, NULL, "netbrowser_nfs.png", 0, 0); |
---|
962 | tmpstr1 = nfsInfo[i].share; |
---|
963 | if(tmpstr1 != NULL && strlen(tmpstr1) > 0) tmpstr1++; |
---|
964 | changemenulistparam(tmpmlist, tmpstr1, NULL, NULL, NULL); |
---|
965 | free(tmpstr); tmpstr = NULL; |
---|
966 | } |
---|
967 | } |
---|
968 | } |
---|
969 | |
---|
970 | freeNfsInfo(nfsInfo); |
---|
971 | } |
---|
972 | |
---|
973 | void screennetworkbrowser_scan() |
---|
974 | { |
---|
975 | struct menulist* mlist = NULL, *mbox = NULL; |
---|
976 | struct menulist* mlist1 = NULL, *mbox1 = NULL; |
---|
977 | struct skin* net_scan = getscreen("networkbrowser_scan"); |
---|
978 | struct skin* titletext = getscreennode(net_scan, "titletext"); |
---|
979 | struct skin* b1 = getscreennode(net_scan, "b1"); |
---|
980 | struct skin* b2 = getscreennode(net_scan, "b2"); |
---|
981 | struct skin* load = getscreen("loading"); |
---|
982 | struct inetwork *net = inetwork; |
---|
983 | |
---|
984 | status.hangtime = 99999; |
---|
985 | changetitle(net_scan, _("Scanning Network Shares, please wait !!")); |
---|
986 | if(titletext != status.skinerr) changetext(titletext, _("Scanning Network Shares, please wait !!")); |
---|
987 | b1->hidden = YES; |
---|
988 | b2->hidden = YES; |
---|
989 | |
---|
990 | net = inetwork; |
---|
991 | drawscreen(net_scan, 0, 0); |
---|
992 | drawscreen(load, 0, 0); |
---|
993 | |
---|
994 | while(net != NULL) |
---|
995 | { |
---|
996 | if(net->flag == 1) |
---|
997 | getnetworkbrowser_dns(net, &mlist); |
---|
998 | net = net->next; |
---|
999 | } |
---|
1000 | clearscreen(load); |
---|
1001 | |
---|
1002 | start: |
---|
1003 | b1->hidden = NO; |
---|
1004 | b2->hidden = NO; |
---|
1005 | |
---|
1006 | mbox = menulistbox(mlist, "networkbrowser_scan", _("Networkbrowser - show scanned DNS-Shares"), "%pluginpath%/networkbrowser/skin/", NULL, 1, 0); |
---|
1007 | |
---|
1008 | if(mbox != NULL) |
---|
1009 | { |
---|
1010 | drawscreen(load, 0, 0); |
---|
1011 | char* user = ostrcat(user, getconfig("netbrowser_user", NULL), 1, 0); |
---|
1012 | if(user == NULL) |
---|
1013 | user = ostrcat("user", NULL, 0, 0); |
---|
1014 | char* pass = ostrcat(pass, getconfig("netbrowser_pass", NULL), 1, 0); |
---|
1015 | if(pass == NULL) |
---|
1016 | pass = ostrcat("pass", NULL, 0, 0); |
---|
1017 | |
---|
1018 | debug(70, "user: %s",user); |
---|
1019 | debug(70, "pass: %s",pass); |
---|
1020 | |
---|
1021 | getnetworkbrowser_cifs(&mlist1, mbox->param, mbox->param1, user, pass); |
---|
1022 | free(user), user = NULL; |
---|
1023 | free(pass), pass = NULL; |
---|
1024 | getnetworkbrowser_nfs(&mlist1, mbox->param, mbox->param1); |
---|
1025 | clearscreen(load); |
---|
1026 | start1: |
---|
1027 | mbox1 = menulistboxext(mlist1, "networkbrowser_scan", _("Networkbrowser - show scanned cifs/nfs-Shares"), "%pluginpath%/networkbrowser/skin/", NULL, 1, NULL, 0); |
---|
1028 | if(mbox1 != NULL && mbox->name != NULL) |
---|
1029 | { |
---|
1030 | if(ostrstr(mbox1->name, "(cifs)") != NULL) |
---|
1031 | { |
---|
1032 | debug(70, "start addshare cifs"); |
---|
1033 | struct networkbrowser* node = addnetworkbrowser(NULL, 1, NULL); |
---|
1034 | if(node != NULL) |
---|
1035 | { |
---|
1036 | node->mode = ostrcat("0", NULL, 0, 0); |
---|
1037 | node->ip = ostrcat(mbox->param, NULL, 0, 0); |
---|
1038 | char* tmpstr3 = ostrcat(mbox->param1, NULL, 0, 0); |
---|
1039 | string_remove_whitechars(tmpstr3); |
---|
1040 | node->sharename = ostrcat(tmpstr3, NULL, 0, 0); |
---|
1041 | node->dns = ostrcat(tmpstr3, NULL, 0, 0); |
---|
1042 | free(tmpstr3), tmpstr3 = NULL; |
---|
1043 | node->sharedir = ostrcat(mbox1->param, NULL, 0, 0); |
---|
1044 | screennetworkbrowser_addshare(node, 1); |
---|
1045 | } |
---|
1046 | } |
---|
1047 | else if(ostrstr(mbox1->name, "(nfs)") != NULL) |
---|
1048 | { |
---|
1049 | debug(70, "start addshare nfs"); |
---|
1050 | struct networkbrowser* node = addnetworkbrowser(NULL, 1, NULL); |
---|
1051 | if(node != NULL) |
---|
1052 | { |
---|
1053 | node->mode = ostrcat("1", NULL, 0, 0); |
---|
1054 | node->ip = ostrcat(mbox->param, NULL, 0, 0); |
---|
1055 | char* tmpstr3 = ostrcat(mbox->param1, NULL, 0, 0); |
---|
1056 | string_remove_whitechars(tmpstr3); |
---|
1057 | node->sharename = ostrcat(tmpstr3, NULL, 0, 0); |
---|
1058 | node->dns = ostrcat(tmpstr3, NULL, 0, 0); |
---|
1059 | free(tmpstr3), tmpstr3 = NULL; |
---|
1060 | node->sharedir = ostrcat(mbox1->param, NULL, 0, 0); |
---|
1061 | screennetworkbrowser_addshare(node, 1); |
---|
1062 | } |
---|
1063 | } |
---|
1064 | goto start1; |
---|
1065 | } |
---|
1066 | freemenulist(mlist1, 1); mlist1 = NULL; |
---|
1067 | goto start; |
---|
1068 | } |
---|
1069 | |
---|
1070 | freemenulist(mlist, 1); mlist = NULL; |
---|
1071 | freemenulist(mlist1, 1); mlist1 = NULL; |
---|
1072 | delownerrc(net_scan); |
---|
1073 | clearscreen(net_scan); |
---|
1074 | status.hangtime = getconfigint("hangtime", NULL); |
---|
1075 | } |
---|
1076 | |
---|
1077 | //flag = 0: don't start hotplug.sh |
---|
1078 | //flag = 1: start hotplug.sh |
---|
1079 | void addhddreplacement(char* sharename, int flag) |
---|
1080 | { |
---|
1081 | struct skin* loadmediadb = getscreen("loading"); |
---|
1082 | struct skin* blackscreen = getscreen("blackscreen"); |
---|
1083 | drawscreen(blackscreen, 0, 0); |
---|
1084 | drawscreen(loadmediadb, 0, 0); |
---|
1085 | |
---|
1086 | char* tmpstr = NULL; |
---|
1087 | |
---|
1088 | if(sharename == NULL) return; |
---|
1089 | unlink("/media/hdd"); |
---|
1090 | |
---|
1091 | tmpstr = ostrcat("/media/net/", sharename, 0, 0); |
---|
1092 | symlink(tmpstr, "/media/hdd"); |
---|
1093 | free(tmpstr); tmpstr = NULL; |
---|
1094 | |
---|
1095 | writesys(getconfig("recordsharefile", NULL), sharename, 0); |
---|
1096 | if(flag == 1) system("hotplug.sh first &"); |
---|
1097 | } |
---|
1098 | |
---|
1099 | |
---|
1100 | //flag = 0: don't start hotplug.sh |
---|
1101 | //flag = 1: start hotplug.sh |
---|
1102 | void delhddreplacement(int flag) |
---|
1103 | { |
---|
1104 | struct skin* loadmediadb = getscreen("loading"); |
---|
1105 | struct skin* blackscreen = getscreen("blackscreen"); |
---|
1106 | drawscreen(blackscreen, 0, 0); |
---|
1107 | drawscreen(loadmediadb, 0, 0); |
---|
1108 | |
---|
1109 | unlink("/media/hdd"); |
---|
1110 | unlink(getconfig("recordsharefile", NULL)); |
---|
1111 | if(flag == 1) system("hotplug.sh first &"); |
---|
1112 | } |
---|
1113 | |
---|
1114 | int checkhddreplacement(char* sharename) |
---|
1115 | { |
---|
1116 | char* recordshare = readfiletomem(getconfig("recordsharefile", NULL), 0); |
---|
1117 | |
---|
1118 | if(recordshare != NULL) |
---|
1119 | { |
---|
1120 | if(ostrcmp(sharename, recordshare) == 0) |
---|
1121 | { |
---|
1122 | free(recordshare); recordshare = NULL; |
---|
1123 | return 1; |
---|
1124 | } |
---|
1125 | } |
---|
1126 | |
---|
1127 | free(recordshare); recordshare = NULL; |
---|
1128 | return 0; |
---|
1129 | } |
---|
1130 | |
---|
1131 | int checknetworkbrowserexist(struct networkbrowser* node) |
---|
1132 | { |
---|
1133 | struct networkbrowser* tmpbrowser = networkbrowser; |
---|
1134 | |
---|
1135 | if(node == NULL) return 0; |
---|
1136 | |
---|
1137 | while(tmpbrowser != NULL) |
---|
1138 | { |
---|
1139 | if(tmpbrowser != node && ostrcmp(tmpbrowser->sharename, node->sharename) == 0) |
---|
1140 | return 1; |
---|
1141 | tmpbrowser = tmpbrowser->next; |
---|
1142 | } |
---|
1143 | |
---|
1144 | return 0; |
---|
1145 | } |
---|
1146 | |
---|
1147 | void changemodenetworkbrowser(struct networkbrowser* node, struct skin* titletext, struct skin* net_addshare, struct skin* skin_username, struct skin* skin_password, struct skin* skin_protocol, struct skin* skin_rsize, struct skin* skin_wsize, struct skin* skin_options, struct skin* skin_ssl, struct skin* skin_proxy, struct skin* skin_proxyip, struct skin* skin_proxyport, struct skin* skin_proxyuser, struct skin* skin_proxypass, struct skin* skin_ftpport, struct skin* skin_userauth, struct skin* skin_proxyauth, struct skin* skin_useproxy, struct skin* skin_usessl, struct skin* skin_sharedir, struct skin* skin_usedns, struct skin* skin_dns, struct skin* skin_ip) |
---|
1148 | { |
---|
1149 | char* tmpstr = NULL; |
---|
1150 | if(node == NULL) return; |
---|
1151 | |
---|
1152 | if(ostrcmp(node->mode, "0") == 0) |
---|
1153 | { |
---|
1154 | tmpstr = ostrcat(tmpstr, _("Add Cifs Network Share"), 1, 0); |
---|
1155 | tmpstr = ostrcat(tmpstr, " (", 1, 0); |
---|
1156 | tmpstr = ostrcat(tmpstr, strstrip(node->sharename), 1, 0); |
---|
1157 | tmpstr = ostrcat(tmpstr, ")", 1, 0); |
---|
1158 | changetitle(net_addshare, tmpstr); |
---|
1159 | if(titletext != status.skinerr) changetext(titletext, tmpstr); |
---|
1160 | free(tmpstr); tmpstr = NULL; |
---|
1161 | |
---|
1162 | skin_protocol->hidden = YES; |
---|
1163 | skin_rsize->hidden = NO; |
---|
1164 | skin_wsize->hidden = NO; |
---|
1165 | skin_options->hidden = YES; |
---|
1166 | skin_ssl->hidden = YES; |
---|
1167 | skin_proxy->hidden = YES; |
---|
1168 | skin_proxyip->hidden = YES; |
---|
1169 | skin_proxyport->hidden = YES; |
---|
1170 | skin_proxyuser->hidden = YES; |
---|
1171 | skin_proxypass->hidden = YES; |
---|
1172 | skin_ftpport->hidden = YES; |
---|
1173 | skin_userauth->hidden = NO; |
---|
1174 | skin_proxyauth->hidden = YES; |
---|
1175 | skin_useproxy->hidden = YES; |
---|
1176 | skin_usessl->hidden = YES; |
---|
1177 | skin_sharedir->hidden = NO; |
---|
1178 | skin_usedns->hidden = NO; |
---|
1179 | |
---|
1180 | if(ostrcmp(node->usedns, "0") == 0) |
---|
1181 | { |
---|
1182 | skin_dns->hidden = YES; |
---|
1183 | skin_ip->hidden = NO; |
---|
1184 | } |
---|
1185 | else |
---|
1186 | { |
---|
1187 | skin_dns->hidden = NO; |
---|
1188 | skin_ip->hidden = YES; |
---|
1189 | } |
---|
1190 | |
---|
1191 | if(ostrcmp(node->userauth, "0") == 0) |
---|
1192 | { |
---|
1193 | skin_username->hidden = YES; |
---|
1194 | skin_password->hidden = YES; |
---|
1195 | } |
---|
1196 | else |
---|
1197 | { |
---|
1198 | skin_username->hidden = NO; |
---|
1199 | skin_password->hidden = NO; |
---|
1200 | } |
---|
1201 | } |
---|
1202 | else if(ostrcmp(node->mode, "1") == 0) |
---|
1203 | { |
---|
1204 | tmpstr = ostrcat(tmpstr, _("Add Nfs Network Share"), 1, 0); |
---|
1205 | tmpstr = ostrcat(tmpstr, " (", 1, 0); |
---|
1206 | tmpstr = ostrcat(tmpstr, strstrip(node->sharename), 1, 0); |
---|
1207 | tmpstr = ostrcat(tmpstr, ")", 1, 0); |
---|
1208 | changetitle(net_addshare, tmpstr); |
---|
1209 | if(titletext != status.skinerr) changetext(titletext, tmpstr); |
---|
1210 | free(tmpstr); tmpstr = NULL; |
---|
1211 | |
---|
1212 | skin_username->hidden = YES; |
---|
1213 | skin_password->hidden = YES; |
---|
1214 | skin_protocol->hidden = NO; |
---|
1215 | skin_rsize->hidden = NO; |
---|
1216 | skin_wsize->hidden = NO; |
---|
1217 | skin_options->hidden = NO; |
---|
1218 | skin_ssl->hidden = YES; |
---|
1219 | skin_proxy->hidden = YES; |
---|
1220 | skin_proxyip->hidden = YES; |
---|
1221 | skin_proxyport->hidden = YES; |
---|
1222 | skin_proxyuser->hidden = YES; |
---|
1223 | skin_proxypass->hidden = YES; |
---|
1224 | skin_ftpport->hidden = YES; |
---|
1225 | skin_userauth->hidden = YES; |
---|
1226 | skin_proxyauth->hidden = YES; |
---|
1227 | skin_useproxy->hidden = YES; |
---|
1228 | skin_usessl->hidden = YES; |
---|
1229 | skin_sharedir->hidden = NO; |
---|
1230 | skin_usedns->hidden = NO; |
---|
1231 | if(ostrcmp(node->usedns, "0") == 0) |
---|
1232 | { |
---|
1233 | skin_dns->hidden = YES; |
---|
1234 | skin_ip->hidden = NO; |
---|
1235 | } |
---|
1236 | else |
---|
1237 | { |
---|
1238 | skin_dns->hidden = NO; |
---|
1239 | skin_ip->hidden = YES; |
---|
1240 | } |
---|
1241 | } |
---|
1242 | else if(ostrcmp(node->mode, "2") == 0) |
---|
1243 | { |
---|
1244 | tmpstr = ostrcat(tmpstr, _("Add Ftpfs Network Share"), 1, 0); |
---|
1245 | tmpstr = ostrcat(tmpstr, " (", 1, 0); |
---|
1246 | tmpstr = ostrcat(tmpstr, strstrip(node->sharename), 1, 0); |
---|
1247 | tmpstr = ostrcat(tmpstr, ")", 1, 0); |
---|
1248 | changetitle(net_addshare, tmpstr); |
---|
1249 | if(titletext != status.skinerr) changetext(titletext, tmpstr); |
---|
1250 | free(tmpstr); tmpstr = NULL; |
---|
1251 | |
---|
1252 | skin_protocol->hidden = YES; |
---|
1253 | skin_rsize->hidden = YES; |
---|
1254 | skin_wsize->hidden = YES; |
---|
1255 | skin_options->hidden = YES; |
---|
1256 | skin_userauth->hidden = NO; |
---|
1257 | skin_usessl->hidden = NO; |
---|
1258 | skin_useproxy->hidden = NO; |
---|
1259 | skin_ftpport->hidden = NO; |
---|
1260 | skin_sharedir->hidden = NO; |
---|
1261 | skin_usedns->hidden = NO; |
---|
1262 | |
---|
1263 | if(ostrcmp(node->userauth, "0") == 0) |
---|
1264 | { |
---|
1265 | skin_username->hidden = YES; |
---|
1266 | skin_password->hidden = YES; |
---|
1267 | } |
---|
1268 | else |
---|
1269 | { |
---|
1270 | skin_username->hidden = NO; |
---|
1271 | skin_password->hidden = NO; |
---|
1272 | } |
---|
1273 | |
---|
1274 | if(ostrcmp(node->usessl, "0") == 0) |
---|
1275 | skin_ssl->hidden = YES; |
---|
1276 | else |
---|
1277 | skin_ssl->hidden = NO; |
---|
1278 | |
---|
1279 | if(ostrcmp(node->useproxy, "0") == 0) |
---|
1280 | { |
---|
1281 | skin_proxy->hidden = YES; |
---|
1282 | skin_proxyip->hidden = YES; |
---|
1283 | skin_proxyport->hidden = YES; |
---|
1284 | skin_proxyuser->hidden = YES; |
---|
1285 | skin_proxypass->hidden = YES; |
---|
1286 | skin_proxyauth->hidden = YES; |
---|
1287 | } |
---|
1288 | else |
---|
1289 | { |
---|
1290 | skin_proxy->hidden = NO; |
---|
1291 | skin_proxyip->hidden = NO; |
---|
1292 | skin_proxyport->hidden = NO; |
---|
1293 | skin_proxyauth->hidden = NO; |
---|
1294 | if(ostrcmp(node->proxyauth, "0") == 0) |
---|
1295 | { |
---|
1296 | skin_proxyuser->hidden = YES; |
---|
1297 | skin_proxypass->hidden = YES; |
---|
1298 | } |
---|
1299 | else |
---|
1300 | { |
---|
1301 | skin_proxyuser->hidden = NO; |
---|
1302 | skin_proxypass->hidden = NO; |
---|
1303 | } |
---|
1304 | } |
---|
1305 | if(ostrcmp(node->usedns, "0") == 0) |
---|
1306 | { |
---|
1307 | skin_dns->hidden = YES; |
---|
1308 | skin_ip->hidden = NO; |
---|
1309 | } |
---|
1310 | else |
---|
1311 | { |
---|
1312 | skin_dns->hidden = NO; |
---|
1313 | skin_ip->hidden = YES; |
---|
1314 | } |
---|
1315 | } |
---|
1316 | } |
---|
1317 | |
---|
1318 | void screennetworkbrowser_addshare(struct networkbrowser* node, int newnode) |
---|
1319 | { |
---|
1320 | int rcret = 0, save = 0; |
---|
1321 | char* skinname = "networkbrowser_add_share"; |
---|
1322 | struct skin* net_addshare = getscreen(skinname); |
---|
1323 | struct skin* titletext = getscreennode(net_addshare, "titletext"); |
---|
1324 | struct skin* listbox = getscreennode(net_addshare, "listbox"); |
---|
1325 | struct skin* tmp = NULL; |
---|
1326 | struct skin* skin_sharename = getscreennode(net_addshare, "skin_sharename"); |
---|
1327 | struct skin* skin_ip = getscreennode(net_addshare, "skin_ipaddress"); |
---|
1328 | struct skin* skin_sharedir = getscreennode(net_addshare, "skin_sharedir"); |
---|
1329 | struct skin* skin_username = getscreennode(net_addshare, "skin_username"); |
---|
1330 | struct skin* skin_password = getscreennode(net_addshare, "skin_password"); |
---|
1331 | struct skin* skin_wsize = getscreennode(net_addshare, "skin_wsize"); |
---|
1332 | struct skin* skin_rsize = getscreennode(net_addshare, "skin_rsize"); |
---|
1333 | struct skin* skin_hddreplacement = getscreennode(net_addshare, "skin_hddreplacement"); |
---|
1334 | struct skin* skin_protocol = getscreennode(net_addshare, "skin_protocol"); |
---|
1335 | struct skin* skin_options = getscreennode(net_addshare, "skin_options"); |
---|
1336 | struct skin* skin_ssl = getscreennode(net_addshare, "skin_ssl"); |
---|
1337 | struct skin* skin_proxy = getscreennode(net_addshare, "skin_proxy"); |
---|
1338 | struct skin* skin_proxyip = getscreennode(net_addshare, "skin_proxyip"); |
---|
1339 | struct skin* skin_proxyport = getscreennode(net_addshare, "skin_proxyport"); |
---|
1340 | struct skin* skin_proxyuser = getscreennode(net_addshare, "skin_proxyuser"); |
---|
1341 | struct skin* skin_proxypass = getscreennode(net_addshare, "skin_proxypass"); |
---|
1342 | struct skin* skin_ftpport = getscreennode(net_addshare, "skin_ftpport"); |
---|
1343 | struct skin* skin_useproxy = getscreennode(net_addshare, "skin_useproxy"); |
---|
1344 | struct skin* skin_usessl = getscreennode(net_addshare, "skin_usessl"); |
---|
1345 | struct skin* skin_userauth = getscreennode(net_addshare, "skin_userauth"); |
---|
1346 | struct skin* skin_proxyauth = getscreennode(net_addshare, "skin_proxyauth"); |
---|
1347 | struct skin* skin_usedns = getscreennode(net_addshare, "skin_usedns"); |
---|
1348 | struct skin* skin_dns = getscreennode(net_addshare, "skin_dns"); |
---|
1349 | struct skin* skin_mode = getscreennode(net_addshare, "skin_mode"); |
---|
1350 | struct skin* b3 = getscreennode(net_addshare, "b3"); |
---|
1351 | char* tmpstr = NULL; |
---|
1352 | |
---|
1353 | listbox->aktline = 1; |
---|
1354 | listbox->aktpage = 1; |
---|
1355 | |
---|
1356 | if(node == NULL) |
---|
1357 | { |
---|
1358 | node = addnetworkbrowser(NULL, 1, NULL); |
---|
1359 | newnode = 1; |
---|
1360 | } |
---|
1361 | if(node == NULL) return; |
---|
1362 | |
---|
1363 | if(newnode == 0) |
---|
1364 | b3->hidden = NO; |
---|
1365 | else |
---|
1366 | b3->hidden = YES; |
---|
1367 | |
---|
1368 | setdefaultnetworkbrowser(node); |
---|
1369 | debug(70, "after set defaut"); |
---|
1370 | debugnetworkbrowser(node); |
---|
1371 | debug(70, "--------------------"); |
---|
1372 | |
---|
1373 | addchoicebox(skin_mode, "0", _("cifs")); |
---|
1374 | addchoicebox(skin_mode, "1", _("nfs")); |
---|
1375 | addchoicebox(skin_mode, "2", _("ftpfs")); |
---|
1376 | setchoiceboxselection(skin_mode, node->mode); |
---|
1377 | |
---|
1378 | changemask(skin_sharename, "abcdefghijklmnopqrstuvwxyz"); |
---|
1379 | changeinput(skin_sharename, node->sharename); |
---|
1380 | |
---|
1381 | tmpstr = fixip(node->ip, 0); |
---|
1382 | changemask(skin_ip, "000.000.000.000"); |
---|
1383 | changeinput(skin_ip, tmpstr); |
---|
1384 | free(tmpstr); tmpstr = NULL; |
---|
1385 | |
---|
1386 | tmpstr = fixport(node->ftpport, 0); |
---|
1387 | changemask(skin_ftpport, "00000"); |
---|
1388 | changeinput(skin_ftpport, tmpstr); |
---|
1389 | free(tmpstr); tmpstr = NULL; |
---|
1390 | |
---|
1391 | changemask(skin_sharedir, "abcdefghijklmnopqrstuvwxyz"); |
---|
1392 | changeinput(skin_sharedir, node->sharedir); |
---|
1393 | |
---|
1394 | addchoicebox(skin_wsize, "32768", "32768"); |
---|
1395 | addchoicebox(skin_wsize, "49152", "49152"); |
---|
1396 | addchoicebox(skin_wsize, "65536", "65536"); |
---|
1397 | addchoicebox(skin_wsize, "4096", "4096"); |
---|
1398 | addchoicebox(skin_wsize, "8192", "8192"); |
---|
1399 | addchoicebox(skin_wsize, "16384", "16384"); |
---|
1400 | setchoiceboxselection(skin_wsize, node->wsize); |
---|
1401 | |
---|
1402 | addchoicebox(skin_rsize, "32768", "32768"); |
---|
1403 | addchoicebox(skin_rsize, "49152", "49152"); |
---|
1404 | addchoicebox(skin_rsize, "65536", "65536"); |
---|
1405 | addchoicebox(skin_rsize, "4096", "4096"); |
---|
1406 | addchoicebox(skin_rsize, "8192", "8192"); |
---|
1407 | addchoicebox(skin_rsize, "16384", "16384"); |
---|
1408 | setchoiceboxselection(skin_rsize, node->rsize); |
---|
1409 | |
---|
1410 | addchoicebox(skin_ssl, "ssl_try", _("ssl_try")); |
---|
1411 | addchoicebox(skin_ssl, "ssl_control", _("ssl_control")); |
---|
1412 | addchoicebox(skin_ssl, "ssl", _("ssl")); |
---|
1413 | setchoiceboxselection(skin_ssl, node->ssl); |
---|
1414 | |
---|
1415 | addchoicebox(skin_proxy, "socks5", _("socks5")); |
---|
1416 | addchoicebox(skin_proxy, "socks4", _("socks4")); |
---|
1417 | addchoicebox(skin_proxy, "html", _("html")); |
---|
1418 | setchoiceboxselection(skin_proxy, node->proxy); |
---|
1419 | |
---|
1420 | addchoicebox(skin_useproxy, "0", _("no")); |
---|
1421 | addchoicebox(skin_useproxy, "1", _("yes")); |
---|
1422 | setchoiceboxselection(skin_useproxy, node->useproxy); |
---|
1423 | |
---|
1424 | addchoicebox(skin_usessl, "0", _("no")); |
---|
1425 | addchoicebox(skin_usessl, "1", _("yes")); |
---|
1426 | setchoiceboxselection(skin_usessl, node->usessl); |
---|
1427 | |
---|
1428 | addchoicebox(skin_userauth, "0", _("no")); |
---|
1429 | addchoicebox(skin_userauth, "1", _("yes")); |
---|
1430 | setchoiceboxselection(skin_userauth, node->userauth); |
---|
1431 | |
---|
1432 | addchoicebox(skin_proxyauth, "0", _("no")); |
---|
1433 | addchoicebox(skin_proxyauth, "1", _("yes")); |
---|
1434 | setchoiceboxselection(skin_proxyauth, node->proxyauth); |
---|
1435 | |
---|
1436 | addchoicebox(skin_usedns, "0", _("no")); |
---|
1437 | addchoicebox(skin_usedns, "1", _("yes")); |
---|
1438 | setchoiceboxselection(skin_usedns, node->usedns); |
---|
1439 | |
---|
1440 | tmpstr = fixip(node->proxyip, 0); |
---|
1441 | changemask(skin_proxyip, "000.000.000.000"); |
---|
1442 | changeinput(skin_proxyip, tmpstr); |
---|
1443 | free(tmpstr); tmpstr = NULL; |
---|
1444 | |
---|
1445 | changemask(skin_proxyport, "00000"); |
---|
1446 | changeinput(skin_proxyport, node->proxyport); |
---|
1447 | |
---|
1448 | changemask(skin_proxyuser, "abcdefghijklmnopqrstuvwxyz"); |
---|
1449 | changeinput(skin_proxyuser, node->proxyuser); |
---|
1450 | |
---|
1451 | changemask(skin_proxypass, "abcdefghijklmnopqrstuvwxyz"); |
---|
1452 | changeinput(skin_proxypass, node->proxypass); |
---|
1453 | |
---|
1454 | changemask(skin_username, "abcdefghijklmnopqrstuvwxyz"); |
---|
1455 | changeinput(skin_username, node->username); |
---|
1456 | |
---|
1457 | changemask(skin_password, "abcdefghijklmnopqrstuvwxyz"); |
---|
1458 | changeinput(skin_password, node->password); |
---|
1459 | |
---|
1460 | if(newnode == 0 && checkhddreplacement(node->sharename) == 1) |
---|
1461 | tmpstr = ostrcat(tmpstr, "1", 1, 0); |
---|
1462 | addchoicebox(skin_hddreplacement, "0", _("no")); |
---|
1463 | addchoicebox(skin_hddreplacement, "1", _("yes")); |
---|
1464 | setchoiceboxselection(skin_hddreplacement, tmpstr); |
---|
1465 | free(tmpstr); tmpstr = NULL; |
---|
1466 | |
---|
1467 | addchoicebox(skin_protocol, "udp", _("udp")); |
---|
1468 | addchoicebox(skin_protocol, "tcp", _("tcp")); |
---|
1469 | setchoiceboxselection(skin_protocol, node->protocol); |
---|
1470 | |
---|
1471 | addchoicebox(skin_options, "rw", _("rw")); |
---|
1472 | addchoicebox(skin_options, "ro", _("ro")); |
---|
1473 | setchoiceboxselection(skin_options, node->options); |
---|
1474 | |
---|
1475 | changemask(skin_dns, "abcdefghijklmnopqrstuvwxyz"); |
---|
1476 | changeinput(skin_dns, node->dns); |
---|
1477 | |
---|
1478 | changemodenetworkbrowser(node, titletext, net_addshare, skin_username, skin_password, skin_protocol, skin_rsize, skin_wsize, skin_options, skin_ssl, skin_proxy, skin_proxyip, skin_proxyport, skin_proxyuser, skin_proxypass, skin_ftpport, skin_userauth, skin_proxyauth, skin_useproxy, skin_usessl, skin_sharedir, skin_usedns, skin_dns, skin_ip); |
---|
1479 | |
---|
1480 | addscreenrc(net_addshare, listbox); |
---|
1481 | drawscreen(net_addshare, 0, 0); |
---|
1482 | |
---|
1483 | tmp = listbox->select; |
---|
1484 | while(1) |
---|
1485 | { |
---|
1486 | addscreenrc(net_addshare, tmp); |
---|
1487 | rcret = waitrc(net_addshare, 0, 0); |
---|
1488 | tmp = listbox->select; |
---|
1489 | |
---|
1490 | free(node->mode); node->mode = ostrcat(skin_mode->ret, NULL, 0, 0); |
---|
1491 | free(node->sharename); node->sharename = ostrcat(skin_sharename->ret, NULL, 0, 0); |
---|
1492 | free(node->ip); node->ip = ostrcat(skin_ip->ret, NULL, 0, 0); |
---|
1493 | free(node->ftpport); node->ftpport = ostrcat(skin_ftpport->ret, NULL, 0, 0); |
---|
1494 | free(node->sharedir); node->sharedir = ostrcat(skin_sharedir->ret, NULL, 0, 0); |
---|
1495 | free(node->wsize); node->wsize = ostrcat(skin_wsize->ret, NULL, 0, 0); |
---|
1496 | free(node->rsize); node->rsize = ostrcat(skin_rsize->ret, NULL, 0, 0); |
---|
1497 | free(node->ssl); node->ssl = ostrcat(skin_ssl->ret, NULL, 0, 0); |
---|
1498 | free(node->proxy); node->proxy = ostrcat(skin_proxy->ret, NULL, 0, 0); |
---|
1499 | free(node->useproxy); node->useproxy = ostrcat(skin_useproxy->ret, NULL, 0, 0); |
---|
1500 | free(node->usessl); node->usessl = ostrcat(skin_usessl->ret, NULL, 0, 0); |
---|
1501 | free(node->userauth); node->userauth = ostrcat(skin_userauth->ret, NULL, 0, 0); |
---|
1502 | free(node->proxyauth); node->proxyauth = ostrcat(skin_proxyauth->ret, NULL, 0, 0); |
---|
1503 | free(node->proxyip); node->proxyip = ostrcat(skin_proxyip->ret, NULL, 0, 0); |
---|
1504 | free(node->proxyport); node->proxyport = ostrcat(skin_proxyport->ret, NULL, 0, 0); |
---|
1505 | free(node->proxyuser); node->proxyuser = ostrcat(skin_proxyuser->ret, NULL, 0, 0); |
---|
1506 | free(node->proxypass); node->proxypass = ostrcat(skin_proxypass->ret, NULL, 0, 0); |
---|
1507 | free(node->username); node->username = ostrcat(skin_username->ret, NULL, 0, 0); |
---|
1508 | free(node->password); node->password = ostrcat(skin_password->ret, NULL, 0, 0); |
---|
1509 | free(node->protocol); node->protocol = ostrcat(skin_protocol->ret, NULL, 0, 0); |
---|
1510 | free(node->options); node->options = ostrcat(skin_options->ret, NULL, 0, 0); |
---|
1511 | free(node->usedns); node->usedns = ostrcat(skin_usedns->ret, NULL, 0, 0); |
---|
1512 | free(node->dns); node->dns = ostrcat(skin_dns->ret, NULL, 0, 0); |
---|
1513 | |
---|
1514 | if(listbox->select != NULL) |
---|
1515 | { |
---|
1516 | changemodenetworkbrowser(node, titletext, net_addshare, skin_username, skin_password, skin_protocol, skin_rsize, skin_wsize, skin_options, skin_ssl, skin_proxy, skin_proxyip, skin_proxyport, skin_proxyuser, skin_proxypass, skin_ftpport, skin_userauth, skin_proxyauth, skin_useproxy, skin_usessl, skin_sharedir, skin_usedns, skin_dns, skin_ip); |
---|
1517 | drawscreen(net_addshare, 0, 0); |
---|
1518 | } |
---|
1519 | |
---|
1520 | if(rcret == getrcconfigint("rcexit", NULL)) break; |
---|
1521 | |
---|
1522 | if(newnode == 0 && rcret == getrcconfigint("rcred", NULL) && checknetworkbrowserexist(node) == 0) |
---|
1523 | { |
---|
1524 | struct networkbrowser* newshare = addnetworkbrowser(NULL, 1, NULL); |
---|
1525 | if(newshare != NULL) |
---|
1526 | { |
---|
1527 | tmpstr = textinput(NULL, "SHARENAME"); |
---|
1528 | if(tmpstr != NULL && strlen(tmpstr) != 0) |
---|
1529 | { |
---|
1530 | //set to default if field is empty |
---|
1531 | setdefaultnetworkbrowser(node); |
---|
1532 | copynetworkbrowser(node, newshare, tmpstr); |
---|
1533 | newnode = 1; |
---|
1534 | node = newshare; |
---|
1535 | changeinput(skin_sharename, node->sharename); |
---|
1536 | b3->hidden = YES; |
---|
1537 | changemodenetworkbrowser(node, titletext, net_addshare, skin_username, skin_password, skin_protocol, skin_rsize, skin_wsize, skin_options, skin_ssl, skin_proxy, skin_proxyip, skin_proxyport, skin_proxyuser, skin_proxypass, skin_ftpport, skin_userauth, skin_proxyauth, skin_useproxy, skin_usessl, skin_sharedir, skin_usedns, skin_dns, skin_ip); |
---|
1538 | } |
---|
1539 | else |
---|
1540 | delnetworkbrowser(newshare); |
---|
1541 | free(tmpstr); tmpstr = NULL; |
---|
1542 | drawscreen(net_addshare, 0, 0); |
---|
1543 | } |
---|
1544 | continue; |
---|
1545 | } |
---|
1546 | |
---|
1547 | if(rcret == getrcconfigint("rcok", NULL)) |
---|
1548 | { |
---|
1549 | if(node->sharename == NULL || strlen(node->sharename) == 0) |
---|
1550 | { |
---|
1551 | textbox(_("Message"), _("Sharename can't be empty!"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 0, 0); |
---|
1552 | drawscreen(net_addshare, 0, 0); |
---|
1553 | continue; |
---|
1554 | } |
---|
1555 | |
---|
1556 | if(checknetworkbrowserexist(node) == 1) |
---|
1557 | { |
---|
1558 | textbox(_("Message"), _("A mount entry with this name already exists!"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 0, 0); |
---|
1559 | drawscreen(net_addshare, 0, 0); |
---|
1560 | continue; |
---|
1561 | } |
---|
1562 | |
---|
1563 | if(textbox(_("Message"), _("Are you sure you want to save this network mount?"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 0, 0) == 1) |
---|
1564 | { |
---|
1565 | //set to default if field is empty |
---|
1566 | setdefaultnetworkbrowser(node); |
---|
1567 | if(ostrcmp(skin_hddreplacement->ret, "1") == 0) |
---|
1568 | addhddreplacement(node->sharename, 0); |
---|
1569 | else if(checkhddreplacement(node->sharename) == 1) |
---|
1570 | delhddreplacement(0); |
---|
1571 | |
---|
1572 | savenetworkbrowser(getconfig("automiscfile", NULL)); |
---|
1573 | save = 1; |
---|
1574 | } |
---|
1575 | break; |
---|
1576 | } |
---|
1577 | } |
---|
1578 | |
---|
1579 | if(newnode == 1 && save == 0) delnetworkbrowser(node); |
---|
1580 | delownerrc(net_addshare); |
---|
1581 | clearscreen(net_addshare); |
---|
1582 | } |
---|
1583 | |
---|
1584 | void screennetworkbrowser() |
---|
1585 | { |
---|
1586 | int rcret = 0; |
---|
1587 | struct networkbrowser* node = NULL; |
---|
1588 | struct menulist* mlist = NULL, *mbox = NULL; |
---|
1589 | char* tmpstr = NULL, *tmppic = NULL; |
---|
1590 | |
---|
1591 | status.hangtime = 99999; |
---|
1592 | |
---|
1593 | start: |
---|
1594 | freenetworkbrowser(); networkbrowser = NULL; |
---|
1595 | readnetworkbrowser(getconfig("automiscfile", NULL), 0); |
---|
1596 | |
---|
1597 | node = networkbrowser; |
---|
1598 | while(node != NULL) |
---|
1599 | { |
---|
1600 | if(ostrcmp(node->mode, "0") == 0) |
---|
1601 | { |
---|
1602 | tmpstr = ostrcat(tmpstr, "(cifs) ", 1, 0); |
---|
1603 | tmppic = ostrcat("netbrowser_cifs.png", NULL, 0, 0); |
---|
1604 | } |
---|
1605 | else if(ostrcmp(node->mode, "1") == 0) |
---|
1606 | { |
---|
1607 | tmpstr = ostrcat(tmpstr, "(nfs) ", 1, 0); |
---|
1608 | tmppic = ostrcat("netbrowser_nfs.png", NULL, 0, 0); |
---|
1609 | } |
---|
1610 | else if(ostrcmp(node->mode, "2") == 0) |
---|
1611 | { |
---|
1612 | tmpstr = ostrcat(tmpstr, "(ftpfs) ", 1, 0); |
---|
1613 | tmppic = ostrcat("netbrowser_ftpfs.png", NULL, 0, 0); |
---|
1614 | } |
---|
1615 | |
---|
1616 | tmpstr = ostrcat(tmpstr, node->sharename, 1, 0); |
---|
1617 | tmpstr = ostrcat(tmpstr, " (", 1, 0); |
---|
1618 | if(ostrcmp(node->usedns, "1") == 0) |
---|
1619 | tmpstr = ostrcat(tmpstr, node->dns, 1, 0); |
---|
1620 | else |
---|
1621 | tmpstr = ostrcat(tmpstr, node->ip, 1, 0); |
---|
1622 | tmpstr = ostrcat(tmpstr, ":", 1, 0); |
---|
1623 | tmpstr = ostrcat(tmpstr, node->ftpport, 1, 0); |
---|
1624 | tmpstr = ostrcat(tmpstr, "/", 1, 0); |
---|
1625 | tmpstr = ostrcat(tmpstr, node->sharedir, 1, 0); |
---|
1626 | tmpstr = ostrcat(tmpstr, ")", 1, 0); |
---|
1627 | |
---|
1628 | struct menulist* tmpmlist = addmenulist(&mlist, tmpstr, NULL, tmppic, 0, 0); |
---|
1629 | if(tmpmlist != NULL) tmpmlist->param = (char*)node; |
---|
1630 | free(tmpstr); tmpstr = NULL; |
---|
1631 | free(tmppic); tmppic = NULL; |
---|
1632 | node = node->next; |
---|
1633 | } |
---|
1634 | |
---|
1635 | mbox = menulistboxext(mlist, "networkbrowser", "Networkbrowser - show Shares", "%pluginpath%/networkbrowser/skin/", NULL, 1, &rcret, 0); |
---|
1636 | |
---|
1637 | if(rcret == getrcconfigint("rcred", NULL)) |
---|
1638 | { |
---|
1639 | screennetworkbrowser_addshare(NULL, 1); |
---|
1640 | freemenulist(mlist, 0); mlist = NULL; |
---|
1641 | freenetworkbrowser(); networkbrowser = NULL; |
---|
1642 | goto start; |
---|
1643 | } |
---|
1644 | |
---|
1645 | if(rcret == getrcconfigint("rcblue", NULL)) |
---|
1646 | { |
---|
1647 | screennetworkbrowser_scan(); |
---|
1648 | freemenulist(mlist, 0); mlist = NULL; |
---|
1649 | freenetworkbrowser(); networkbrowser = NULL; |
---|
1650 | goto start; |
---|
1651 | } |
---|
1652 | |
---|
1653 | if(mbox != NULL) |
---|
1654 | { |
---|
1655 | if(rcret == getrcconfigint("rcok", NULL) || rcret == getrcconfigint("rcgreen", NULL)) |
---|
1656 | screennetworkbrowser_addshare((struct networkbrowser*)mbox->param, 0); |
---|
1657 | if(rcret == getrcconfigint("rcyellow", NULL)) |
---|
1658 | { |
---|
1659 | if(textbox(_("Message"), _("Are you sure you want remove this share?"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 800, 200, 0, 0) == 1) |
---|
1660 | { |
---|
1661 | struct networkbrowser* delnode = (struct networkbrowser*)mbox->param; |
---|
1662 | if(delnode != NULL) |
---|
1663 | { |
---|
1664 | if(checkhddreplacement(delnode->sharename) == 1) |
---|
1665 | delhddreplacement(0); |
---|
1666 | |
---|
1667 | delnetworkbrowser(delnode); |
---|
1668 | savenetworkbrowser(getconfig("automiscfile", NULL)); |
---|
1669 | } |
---|
1670 | } |
---|
1671 | } |
---|
1672 | freemenulist(mlist, 0); mlist = NULL; |
---|
1673 | freenetworkbrowser(); networkbrowser = NULL; |
---|
1674 | goto start; |
---|
1675 | } |
---|
1676 | |
---|
1677 | if(mbox == NULL) |
---|
1678 | { |
---|
1679 | if(rcret == getrcconfigint("rcok", NULL) || rcret == getrcconfigint("rcgreen", NULL) || rcret == getrcconfigint("rcyellow", NULL)) |
---|
1680 | { |
---|
1681 | freemenulist(mlist, 0); mlist = NULL; |
---|
1682 | freenetworkbrowser(); networkbrowser = NULL; |
---|
1683 | goto start; |
---|
1684 | } |
---|
1685 | } |
---|
1686 | |
---|
1687 | freemenulist(mlist, 0); mlist = NULL; |
---|
1688 | freenetworkbrowser(); |
---|
1689 | |
---|
1690 | status.hangtime = getconfigint("hangtime", NULL); |
---|
1691 | } |
---|
1692 | |
---|
1693 | #endif |
---|