source: src/router/shared/utils.h @ 9828

Last change on this file since 9828 was 9828, checked in by BrainSlayer, 5 years ago

reduce probes on interfaces, reduces also useless system messages

File size: 18.8 KB
Line 
1#ifndef UTILS_H
2#define UTILS_H
3
4#ifdef CDEBUG
5#include <shutils.h>
6#include <malloc.h>
7#include <cy_conf.h>
8#endif
9
10/* 2 byte router ID number; Eko 4.jul.06
11
12X X X X X X X X   R R R P N N N N   = 0xXXXX
13---------------   ----- - -------
14 router num         |   |  gpio num (1111 = f = disable resetbutton)
15                    |   |
16                    |   |--- resetbutton polarity (0: normal, 1 inversed)
17                    |
18                    |-------- reserved for future use (maybe USB supp)
19*/
20
21// Linksys WRT54G, WRT54GS and WRT54GL all models (v2 - v6) except WRT54G v1.0, v1.1 (fccid: Linksys Q87-WRT54G..., Q87_WT54G...)
22#define ROUTER_WRT54G 0x0116
23
24// Linksys WRT54Gv8, WRT54GSv7 (BCM5354 cpu, fccid: Linksys Q87-WRT54GV8, Q87-WRT54GSV7)
25// Linksys WRT54Gv8.2, WRT54GSv7.2 (BCM5354 cpu, fccid: Linksys Q87-WRT54GV82, Q87-WRT54GSV72)
26// Linksys WRT54Gv7.2 (EMEA only - same hardware as v8)
27#define ROUTER_WRT54G_V8 0x0216
28
29// Linksys WRT54G v1.0 and v1.1, Alnet ALL0277 (BCM4702 cpu, fccid: v1: Linksys PKW-WM54G; v1.1: Linksys Q87-WRT54G11)
30#define ROUTER_WRT54G1X 0x0316
31
32// Linksys WRTSL54GS (BCM4704 cpu, BCM5325E switch, fccid: Linksys Q87-WTSLGS, same without USB: Q87-WRTH54GS)
33#define ROUTER_WRTSL54GS 0x0416
34
35// Linksys WRT55AG v1 (BCM4702 cpu, dual minipci (Broadcom + Atheros), fccid: Linksys PKW-WRT55AG)
36#define ROUTER_LINKSYS_WRT55AG 0x0516
37
38// Asus WL-500G-Deluxe (BCM5365 cpu), (fccid: Asus MSQWL500GD)
39#define ROUTER_ASUS_WL500GD 0x0606
40
41// Buffalo WBR-G54, WLA-G54 (BCM4702 cpu, WLA-G54 has no switch)
42#define ROUTER_BUFFALO_WBR54G 0x0704
43
44// Buffalo WBR2-G54 (BCM4712 + ADM6996 switch, fccid: Buffalo FDI-04600142-0),
45// Buffalo WBR2-G54S, WLA2-G54L (= WLA2-G54 in Japan)
46#define ROUTER_BUFFALO_WBR2G54S 0x0807
47
48// Buffalo WLA2-G54C == WLI3-TX1-G54 (BCM4712 cpu, no switch, fccid: Buffalo FDI-09101669-0)
49#define ROUTER_BUFFALO_WLA2G54C 0x0910
50
51// Buffalo WHR-G54S (BCM5352E cpu, fccid: Buffalo FDI-04600264-0) and WHR-HP-G54 (BCM5352E cpu, fccid: Buffalo FDI-09101577-0)
52// Buffalo WHR-G125, WHR-HP-G125 (BCM5354 cpu, fccid: Buffalo FDI-09101584-0)
53// Buffalo WHR-HP-G125 new (BCM5354 cpu, fccid: FDI-09101588-0)
54#define ROUTER_BUFFALO_WHRG54S 0x0a04
55
56// Buffalo WZR-RS-G54 (BCM4704 cpu), WZR-G54, WZR-HP-G54 (4704 cpu, fccid: Buffalo FDI-09101457-0),
57// Buffalo WHR3-AG54, WVR-G54-NF, WHR2-A54G54
58#define ROUTER_BUFFALO_WZRRSG54 0x0b04
59
60// Motorola WR850G v1 (BCM4702 cpu, fccid: Motorola ACQWR850G)
61#define ROUTER_MOTOROLA_V1 0x0c10
62
63// Motorola WR850G v2/v3, WR850GP (BCM4712 cpu, ADM6996 switch, fccid: Motorola ACQWR850GV2)
64#define ROUTER_MOTOROLA 0x0d15
65
66// RT210W and RT211W generic and branded (BCM4702 cpu, fccid: Askey H8N-RT210W, H8N-RT211W)
67// H8N-RT210W: Siemens se505 v1, Belkin F5D7230-4 v1000, v1xxx < 1444
68// H8N-RT211W: Belkin F5D7130
69#define ROUTER_RT210W 0x0e0f
70
71// RT480W generic and branded (BCM4712 cpu, ADM6996 switch, fccid: Askey H8NRT480W),
72// Siemens se505 v2, Belkin F5D7230-4 v1444 (2MB flash, fccid: Belkin K7S-F5D72304)
73#define ROUTER_RT480W 0x0f0f
74
75// Microtik RouterBOARD 500
76#define ROUTER_BOARD_500 0x100f
77
78// NMN A/B/G Router Protoype (266 Mhz Xscale, dual minipci)
79#define ROUTER_BOARD_XSCALE 0x1101
80
81// Generic BRCM 4702 boards
82#define ROUTER_BRCM4702_GENERIC 0x120f
83
84// Buffalo WLI_TX4_G54HP bridge
85#define ROUTER_BUFFALO_WLI_TX4_G54HP 0x1304
86
87// Microsoft MN-700 (BCM4702 cpu), (fccid: Microsoft C3KMN700)
88#define ROUTER_MICROSOFT_MN700 0x1417
89
90// Buffalo WLA-G54C == WLI-TX1-G54 (BCM4702 cpu - no switch, fccid: QDS-BRCM1005)
91#define ROUTER_BUFFALO_WLAG54C 0x1510
92
93// Asus WL-500g Premium (BCM4704 cpu, BCM5325E switch, (fccid: Asus MSQWL500GP)
94#define ROUTER_ASUS_WL500G_PRE 0x1600
95
96// Buffalo WZR-G300N MIMO Router (radio fccid: Buffalo FDI-09101466-0)
97#define ROUTER_BUFFALO_WZRG300N 0x1704
98
99// Linksys WRT300N v1 (BCM4704 cpu, BCM5325F switch, fccid: Linksys Q87-WRT300N or Q87-WRT300NV1)
100#define ROUTER_WRT300N 0x1816
101
102// Buffalo WHR-AM54G54
103#define ROUTER_BUFFALO_WHRAM54G54 0x190f
104
105// Magicbox PowerPC board
106#define ROUTER_BOARD_MAGICBOX 0x1a01
107
108// Magicbox PowerPC board 2.0
109//#define ROUTER_BOARD_MAGICBOX20 0x1b01
110
111// Buffalo WLI2-TX1-G54 Access point (BCM4702 cpu, no switch)
112#define ROUTER_BUFFALO_WLI2_TX1_G54 0x1c10
113
114// NMN A/B/G Router Protoype (266 Mhz Xscale, four minipci)
115#define ROUTER_BOARD_GATEWORX 0x1d04
116
117// Motorola WE800G v1 (BCM4702 cpu, no switch, minipci radio, fccid: Motorola ACQWE800G, F2NWE800G)
118#define ROUTER_MOTOROLA_WE800G 0x1e10
119
120// Generic x86 PC / WRAP / Soekris
121#define ROUTER_BOARD_X86 0x1f0f
122
123// ?
124#define ROUTER_SUPERGERRY 0x200f
125
126// Linksys WRT350N (BCM4705 cpu, Gbit switch, PCMCIA radio card, fccid: Linksys Q87-WRT350N)
127#define ROUTER_WRT350N 0x2116
128
129// Linksys WAP54G v1 and v1.1 (BCM4702 cpu, no switch, fccid: Linksys PKW-WAP54G)
130// 2 different boards (same fccid): WX5510_Vxx and WX5541_Vxx
131#define ROUTER_WAP54G_V1 0x2210
132
133// Linksys WAP54G v2 (BCM4712 cpu, no switch, fccid: Linksys Q87-WAP54GV2)
134#define ROUTER_WAP54G_V2 0x2310
135
136// ViewSonic WAPBR-100 (BCM4712 cpu, no switch, fccid: Viewsonic GSS-VS10407)
137#define ROUTER_VIEWSONIC_WAPBR_100 0x2417
138
139// Dell TrueMobile 2300 v1 (BCM4702 cpu, BCM5325 switch, mini pci radio, fccid: Gemtek MXF-R920401G)
140#define ROUTER_DELL_TRUEMOBILE_2300 0x2510
141
142// Dell TrueMobile 2300 v2 (BCM4712 cpu, ADM6996 switch, fccid: Gemtek MXF-R921212G)
143// Sparklan WX-6615GT (4712 cpu, ADM6996 switch, fccid: Gemtek MXF-R930116G)
144#define ROUTER_DELL_TRUEMOBILE_2300_V2 0x2610
145
146// Fonera (Atheros SoC, no switch, fccid: Accton HED-FON2100)
147#define ROUTER_BOARD_FONERA 0x2701
148
149// Buffalo WHR-HP-AG108 (Atheros A+G, Kendin KS8895XA switch, fccid: Buffalo FDI-09101540-0)
150#define ROUTER_BOARD_WHRAG108 0x2801
151
152// swapped phy definition
153#define ROUTER_BOARD_GATEWORX_SWAP 0x290f
154
155// Netgear WNR834Bv1 (BCM4704 cpu, BCM5325 switch, cardbus radio, fccid: Netgear PY306100032)
156#define ROUTER_NETGEAR_WNR834B 0x2a17
157
158// swapped phy definition and Kendin switch
159#define ROUTER_BOARD_GATEWORX_GW2345 0x2b0f
160
161// Linksys WRT54G3G  (BCM4712 cpu, 5325E switch, PCMCIA slot, fccid: Linksys Q87-WRT54G3G)
162#define ROUTER_WRT54G3G 0x2c16
163
164// Sitecom WL-105(b) (BCM4702 cpu, no switch, fccid: Gemtek MXF-A910910AB - no A-band)
165#define ROUTER_SITECOM_WL105B 0x2d10
166
167// Linksys WRT150N (BCM4704 cpu, BCM5325F switch, fccid: Linksys Q87-WRT150N)
168#define ROUTER_WRT150N 0x2e16
169
170// ?
171#define ROUTER_BOARD_LS2 0x2f01
172
173// Buffalo WAPM-HP-AM54G54 (only available on japanese market, dual radio 2.4 and 5 GHz Broadcom)
174#define ROUTER_BUFFALO_WAPM_HP_AM54G54 0x3005
175
176// Buffalo WLAH-G54 (only available on japanese market, single radio 2.4 ghz)
177#define ROUTER_BUFFALO_WLAH_G54 0x3104
178
179// Buffalo WZR-G144HH (only available on japanese market, 802.11n, Gigabit switch. Similar to WRT350N)
180#define ROUTER_BUFFALO_WZRG144NH 0x3217
181
182// U.S.Robotics USR5430 bridge (BCM4712 cpu, no switch, fccid: Gemtek MXF-EB921201G)
183#define ROUTER_USR_5430 0x3310
184
185// U.S.Robotics USR5432 bridge (BCM5350 cpu, 1 port, fccid: Universal Scientific Industrial Co. IXM-APGBR02)
186// U.S.Robotics USR5451 AP     (BCM5350 cpu, 1 port, fccid: Universal Scientific Industrial Co. IXM-APGBR02)
187// U.S.Robotics USR5461 router (BCM5350 cpu, fccid: Universal Scientific Industrial Co. IXM-RTGBR02)
188#define ROUTER_USR_5461 0x340f
189
190// Meraki Mini (Atheros SoC, no switch, fccid: Meraki UDX-MERAKI-MINI)
191#define ROUTER_BOARD_MERAKI 0x350f
192
193// Asus WL300g (BCM4702 cpu, no switch, fccid: Asus MSQWL300G)
194// Asus WL500g (BCM4702 cpu, fccid: Asus MSQWL500G)
195#define ROUTER_ASUS_WL500G 0x3606
196
197// ?
198#define ROUTER_BOARD_CA8 0x3706
199
200// Fonera (Atheros SoC,...)
201#define ROUTER_BOARD_FONERA2200 0x3801
202
203// ?
204#define ROUTER_BOARD_TW6600 0x3901
205
206// Atheros PB42 prototype (AR5416 MIMO Wifi, 400 Mhz Mips CPU, 32 MB RAM)
207#define ROUTER_BOARD_PB42 0x3a01
208
209// Asus WL-500W (MIMO, 4704 cpu, fccid: Asus MSQWL500W)
210#define ROUTER_ASUS_WL500W 0x3b06
211
212// Asus WL550gE (BCM5352E cpu, fccid: Asus MSQWL550GE)
213#define ROUTER_ASUS_WL550GE 0x3c01
214
215// Sitecom WL-111 (BCM4702 cpu, fccid: ?)
216#define ROUTER_SITECOM_WL111 0x3d10
217
218// D-Link DIR-320 (BCM5354 cpu, fccid: D Link KA2DIR320A1)
219#define ROUTER_DLINK_DIR320 0x3e17
220
221// Linksys WTR54GS travel router (BCM5350 cpu, 2 ports, fccid: v1, v2: Linksys Q87-WTR54GS; v2.1 Q87-WTR54GSV21)
222#define ROUTER_LINKSYS_WTR54GS 0x3f13
223
224// Belkin F5D7230 v2000 (BCM4712 cpu, 5325E switch, serial flash, fccid: Belkin K7SF5D7234A)
225#define ROUTER_BELKIN_F5D7230_V2000 0x400f
226
227// Belkin F5D7231-4 v1212UK (BCM5352E cpu, fccid: Askey H8NRT2406W)
228// Belkin F5D7231-4 v2000 (BCM5352E cpu, fccid: Belkin K7SF5D7231B)
229#define ROUTER_BELKIN_F5D7231 0x410f
230
231// Linksys WAP54G v3, WAP54G v3.1 (BCM5352E cpu, fccid: Linksys Q87-WAP54GV3, Q87-WAP54GV31)
232#define ROUTER_WAP54G_V3 0x4210
233
234// Asus WL-520G (BCM5350 cpu, fccid: Asus MSQWL520G)
235#define ROUTER_ASUS_WL520G 0x430f
236
237// Asus WL-520GU / WL-520GC (BCM5354 cpu, fccid: Asus MSQWL520GUGC)
238#define ROUTER_ASUS_WL520GUGC 0x4412
239
240// Netgear WG602 v3 (BCM5350 cpu, fccid: Netgear PY3WG602V3)
241#define ROUTER_NETGEAR_WG602_V3 0x4511
242
243// Netgear WG602 v4 (BCM5354 cpu, fccid: Netgear PY3WG602V4)
244#define ROUTER_NETGEAR_WG602_V4 0x4617
245
246// Linksys WRT600N (BCM4704 cpu, Gigabit switch, dual radio 2.4 and 5 GHz Broadcom, fccid: Linksys Q87-WRT600NV1, Q87-WRT600NV11)
247#define ROUTER_WRT600N 0x4717
248
249// Linksys WRH54G (BCM5354 cpu, fccid: Linksys Q87-WRH54G)
250#define ROUTER_LINKSYS_WRH54G 0x4816
251
252// Linksys WRT150N v1.1 (BCM4704 cpu, BCM5325F switch, fccid: Linksys Q87-WRT150NV11)
253#define ROUTER_WRT150NV11 0x4916
254
255// Linksys WRT150N v1.2 (fccid: Linksys ?)
256#define ROUTER_WRT150NV12 0x4a16
257
258// Linksys WRT160N v1 (BCM4703 cpu, ?? switch, fccid: Linksys Q87-WRT160N)
259#define ROUTER_WRT160N 0x4b16
260
261// Linksys WRT300N v1.1 (BCM4705 cpu, 5325 switch, fccid: Linksys Q87-WRT300NV11)
262#define ROUTER_WRT300NV11 0x4c16
263
264// Linksys WRT310N v1 (BCM4705 cpu, fccid: Linksys Q87-WRT310N)
265#define ROUTER_WRT310N 0x4d16
266
267// D-Link DIR330 (BCM5836 cpu, fccid: D Link KA2DIR330A1)
268#define ROUTER_DLINK_DIR330 0x4e13
269
270// Netgear WNDR3300 (BCM4704 cpu, BCM5325F switch, dual radio 2.4-N and 5 GHz Broadcom, fccid: Netgear PY307300072)
271#define ROUTER_NETGEAR_WNDR3300 0x4f16
272
273// Linksys WRT54G2 V1 (BCM5354 cpu, fccid: Linksys Q87-WRT54G2V1)
274#define ROUTER_WRT54G2V1 0x500f
275
276// Linksys WRT54Gv8.1 (BCM5354 cpu, fccid: Linksys Q87-WRT54GV81)
277#define ROUTER_WRT54G_V81 0x5117
278
279// Netgear WGR614L (BCM5354 cpu, serial flash, fccid: Netgear PY306400057)
280// NEtgear WGR614 v8 - same -
281#define ROUTER_NETGEAR_WGR614L 0x5217
282
283// Netgear WNR834Bv2 (BCM4704 cpu, BCM5325 switch, fccid: Netgear PY307100061)
284#define ROUTER_NETGEAR_WNR834BV2 0x5316
285
286// Asus WL-500g Premium v2 (BCM5354 cpu, fccid: Asus MSQWL500GPV2)
287#define ROUTER_ASUS_WL500G_PRE_V2 0x5412
288
289// Wistron CA8-PRO (RDAA-81)
290#define ROUTER_BOARD_CA8PRO 0x5506
291
292// Askey board RT2205D-D56 / RT2206D-D56 (BCM4704 cpu, mini-pci)
293// Belkin MIMO F5D8230_v2 or F5D8230_v1001ea (fccid: Airgo networks Inc. SA3-AGN0901AP0100)
294#define ROUTER_ASKEY_RT220XD 0x5617
295
296// U.S.Robotics USR5455 (BCM5354 cpu, no switch, fccid: Universal Scientific Industrial Co. IXM-APGBR03)
297// U.S.Robotics USR5465 (BCM5354 cpu, fccid: Universal Scientific Industrial Co. IXM-RTGBR03)
298#define ROUTER_USR_5465 0x570f
299
300#define ROUTER_ALLNET01 0x5813
301
302#define NVROUTER "DD_BOARD"
303
304extern char *getBridge (char *ifname);
305extern char *getRealBridge (char *ifname);
306extern char *getSTA (void);
307extern char *getWET (void);
308extern int contains (const char *string, char value);
309extern int getcpurev (void);
310extern int cpu_plltype (void);
311extern int check_vlan_support (void);
312extern int startswith (char *source, char *cmp);
313extern int count_occurences (char *source, int cmp);
314extern int pos_nthoccurence (char *source, int cmp, int which);
315extern char *substring (int start, int stop, const char *src, char *dst);
316extern unsigned int daysformonth (unsigned int month, unsigned int year);
317extern int weekday (int month, int day, int year);
318extern int getRouterBrand (void);
319extern int diag_led (int type, int act);
320extern int C_led (int i);
321extern int get_single_ip (char *ipaddr, int which);
322extern char *get_mac_from_ip (char *ip);
323extern struct dns_lists *get_dns_list (void);
324extern int dns_to_resolv (void);
325extern char *get_wan_face (void);
326extern int check_wan_link (int num);
327extern char *get_complete_lan_ip (char *ip);
328extern int get_int_len (int num);
329extern int file_to_buf (char *path, char *buf, int len);
330extern int buf_to_file (char *path, char *buf);
331extern pid_t *find_pid_by_name (char *pidName);
332extern int find_pid_by_ps (char *pidName);
333extern int *find_all_pid_by_ps (char *pidName);
334extern char *find_name_by_proc (int pid);
335extern int get_ppp_pid (char *file);
336extern long convert_ver (char *ver);
337extern int check_flash (void);
338extern int check_action (void);
339extern int check_now_boot (void);
340extern int check_hw_type (void);
341extern int is_exist (char *filename);
342extern void set_ip_forward (char c);
343struct mtu_lists *get_mtu (char *proto);
344extern void set_host_domain_name (void);
345
346extern void encode (char *buf, int len);
347extern void decode (char *buf, int len);
348extern char *zencrypt (char *passwd);
349
350extern void getLANMac (char *newmac);
351extern void getWirelessMac (char *newmac);
352extern void getWANMac (char *newmac);
353
354extern int led_control (int type, int act);
355enum
356{ LED_POWER, LED_DIAG, LED_DMZ, LED_CONNECTED, LED_BRIDGE, LED_VPN,
357  LED_SES, LED_SES2, LED_WLAN, LED_USB
358};
359enum
360{ LED_ON, LED_OFF, LED_FLASH };
361
362#ifdef CDEBUG
363extern int mcoreleft (void);
364extern int coreleft (void);
365static void
366cdebug (char *function)
367{
368  // FILE *in = fopen ("/tmp/console.log", "a");
369  fprintf (stderr, "free ram in %s = %d (malloc %d)\n", function, coreleft (),
370           mcoreleft ());
371  // fclose (in);
372}
373
374#else
375#define cdebug(a)
376#endif
377extern int first_time (void);
378
379extern int set_register_value (unsigned short port_addr,
380                               unsigned short option_content);
381extern unsigned long get_register_value (unsigned short id,
382                                         unsigned short num);
383//extern int sys_netdev_ioctl(int family, int socket, char *if_name, int cmd, struct ifreq *ifr);
384
385int ct_openlog (const char *ident, int option, int facility, char *log_name);
386void ct_syslog (int level, int enable, const char *fmt, ...);
387void ct_logger (int level, const char *fmt, ...);
388struct wl_assoc_mac *get_wl_assoc_mac (int *c);
389
390extern struct detect_wans *detect_protocol (char *wan_face, char *lan_face,
391                                            char *type);
392
393enum
394{ WL = 0,
395  DIAG = 1,
396//  SES_LED1 = 2,
397//  SES_LED2 = 3,
398  SES_BUTTON = 4,
399  DMZ = 7
400};
401
402enum
403{ START_LED, STOP_LED, MALFUNCTION_LED };
404
405typedef enum
406{ ACT_IDLE,
407  ACT_TFTP_UPGRADE,
408  ACT_WEB_UPGRADE,
409#ifdef HAVE_HTTPS
410  ACT_WEBS_UPGRADE,
411#endif
412  ACT_SW_RESTORE,
413  ACT_HW_RESTORE,
414  ACT_ERASE_NVRAM,
415  ACT_NVRAM_COMMIT,
416  ACT_UNKNOWN
417} ACTION;
418
419enum
420{ UNKNOWN_BOOT = -1, PMON_BOOT, CFE_BOOT };
421
422enum
423{ BCM4702_CHIP, BCM4712_CHIP, BCM5325E_CHIP, BCM5350_CHIP, BCM5365_CHIP,
424  BCM4704_BCM5325F_CHIP,
425  BCM5352E_CHIP, BCM4712_BCM5325E_CHIP, BCM4704_BCM5325F_EWC_CHIP,
426  BCM4705_BCM5397_EWC_CHIP, BCM5354G_CHIP, BCM4705L_BCM5325E_EWC_CHIP,
427  BCM4705G_BCM5395S_EWC_CHIP,
428  NO_DEFINE_CHIP
429};
430
431enum
432{ FIRST, SECOND };
433
434enum
435{ SYSLOG_LOG = 1, SYSLOG_DEBUG, CONSOLE_ONLY, LOG_CONSOLE, DEBUG_CONSOLE };
436
437#define ACTION(cmd)     buf_to_file(ACTION_FILE, cmd)
438
439struct dns_lists
440{
441  int num_servers;
442  char dns_server[4][16];
443};
444
445#define NOT_USING       0
446#define USING           1
447
448struct wl_assoc_mac
449{
450  char mac[18];
451};
452
453struct mtu_lists
454{
455  char *proto;                  /* protocol */
456  char *min;                    /* min mtu */
457  char *max;                    /* max mtu */
458};
459
460struct detect_wans
461{
462  int proto;
463  int count;
464  char *name;
465  char desc[1024];
466};
467
468#define PROTO_DHCP      0
469#define PROTO_STATIC    1
470#define PROTO_PPPOE     2
471#define PROTO_PPTP      3
472#define PROTO_L2TP      4
473#define PROTO_HB        5
474#define PROTO_ERROR     -1
475
476#define PPP_PSEUDO_IP   "10.64.64.64"
477#define PPP_PSEUDO_NM   "255.255.255.255"
478#define PPP_PSEUDO_GW   "10.112.112.112"
479
480#define PING_TMP        "/tmp/ping.log"
481//#define TRACEROUTE_TMP        "/tmp/traceroute.log"
482#define MAX_BUF_LEN     254
483
484#define RESOLV_FILE     "/tmp/resolv.conf"
485#define RESOLV_FORW     "/tmp/resolv.dnsmasq"
486#define HOSTS_FILE      "/tmp/hosts"
487
488#define LOG_FILE        "/var/log/mess"
489
490#define ACTION_FILE     "/tmp/action"
491
492
493#define split(word, wordlist, next, delim) \
494        for (next = wordlist, \
495             strncpy(word, next, sizeof(word)), \
496             word[(next=strstr(next, delim)) ? strstr(word, delim) - word : sizeof(word) - 1] = '\0', \
497             next = next ? next + sizeof(delim) - 1 : NULL ; \
498             strlen(word); \
499             next = next ? : "", \
500             strncpy(word, next, sizeof(word)), \
501             word[(next=strstr(next, delim)) ? strstr(word, delim) - word : sizeof(word) - 1] = '\0', \
502             next = next ? next + sizeof(delim) - 1 : NULL)
503
504#define STRUCT_LEN(name)    sizeof(name)/sizeof(name[0])
505
506#define printHEX(str,len) { \
507        int i; \
508        for (i=0 ; i<len ; i++) { \
509                printf("%02X ", (unsigned char)*(str+i)); \
510                if(((i+1)%16) == 0) printf("- "); \
511                if(((i+1)%32) == 0) printf("\n"); \
512        } \
513        printf("\n\n"); \
514}
515
516
517#define printASC(str,len) { \
518        int i; \
519        for (i=0 ; i<len ; i++) { \
520                printf("%c", (unsigned char)*(str+i)); \
521                if(((i+1)%16) == 0) printf("- "); \
522                if(((i+1)%32) == 0) printf("\n"); \
523        } \
524        printf("\n\n"); \
525}
526
527void set_gpio (int gpio, int value);
528
529int get_gpio (int gpio);
530
531
532
533#ifdef HAVE_X86
534void lcdmessage (char *message);
535void initlcd (void);
536void lcdmessaged (char *dual, char *message);
537#else
538#define initlcd()
539#define lcdmessage(a)
540#define lcdmessaged(a,b)
541#endif
542
543#ifdef HAVE_AQOS
544extern void add_usermac (char *mac, int idx, char *upstream,
545                         char *downstream);
546extern void add_userip (char *ip, int idx, char *upstream, char *downstream);
547#endif
548
549void getHostName (char *buf, char *ip);
550int ishexit (char c);
551int haswifi (void);
552int sv_valid_hwaddr (char *value);
553int sv_valid_ipaddr (char *value);
554int sv_valid_range (char *value, int low, int high);
555int sv_valid_statics (char *value);
556void get_network (char *ipaddr, char *netmask);
557void get_broadcast (char *ipaddr, char *netmask);
558int route_manip (int cmd, char *name, int metric, char *dst, char *gateway,
559                 char *genmask);
560int route_add (char *name, int metric, char *dst, char *gateway,
561               char *genmask);
562int route_del (char *name, int metric, char *dst, char *gateway,
563               char *genmask);
564extern char *psname (int pid, char *buffer, int maxlen);
565extern int pidof (const char *name);
566extern int killall (const char *name, int sig);
567extern int getifcount (const char *ifprefix);
568extern int getIfList (char *buffer, const char *ifprefix);
569extern void getIfLists (char *eths, int size);
570extern int ifexists (const char *ifname);
571extern void getinterfacelist (const char *ifprefix, char *buffer);
572extern int count_processes (char *pidName);
573
574int isGrep (char *string, char *cmp);
575int softkill (char *name);
576
577int getmask (char *netmask);
578int doMultiCast (void);
579int getMTD (char *name);
580void getIPFromName (char *name, char *ip);
581
582#define DEFAULT_USER "bJ/GddyoJuiU2"
583#define DEFAULT_PASS "bJz7PcC1rCRJQ"
584
585#define MAX_WDS_DEVS 10
586
587#define OLD_NAME_IP     "/tmp/.old_name_ip"
588
589#ifndef MAX_LEASES
590#define MAX_LEASES 254
591#endif
592
593struct wl_client_mac
594{
595  unsigned char hostname[32];
596  char ipaddr[20];
597  char hwaddr[20];
598  int status;                   // 0:offline 1:online
599  int check;
600};
601
602int endswith (char *str, char *cmp);
603
604int isListed(char *listname, char *value);
605void addList(char *listname, char *value);
606
607#endif
Note: See TracBrowser for help on using the repository browser.