1//
2//  ASUS_Discovery.h
3//  asus
4//
5//  Created by Junda Txia on 11/22/10.
6//  Copyright ASUSTek COMPUTER INC. 2011. All rights reserved.
7//
8
9#include <arpa/inet.h>       //inet_addr function
10
11#include "netinet/in.h"
12
13#include "iboxcom.h"
14
15typedef struct _SearchRouterInfoStruct
16{
17    char routerProductID[32];
18    char routerIPAddress[32];
19    char routerSubMask[32];
20    unsigned char routerMacAddress[6];
21    unsigned char routerRealMacAddress[18];
22    char routerSSID[33];			/* maximum length of SSID is 32 characters. */
23    char routerFirmwareVersion[16];
24    char routerOperationMode;
25    char routerRegulation;
26    char routerPrinterInfo[128];
27
28    // webdav
29    char webdavSupport;
30    char webdavEnableWebDav;
31    char webdavHttpType;
32    unsigned short webdavHttpPort;
33    unsigned short webdavHttpsPort;
34    char webdavEnableDDNS;
35    char webdavHostName[64];
36    unsigned int webdavWANIPAddr;
37    char webdavWANIPAddress[32];
38    char webdavWANState;
39    char webdavIsNotDefault;
40
41    // tunnel
42    char tunnelSupport;
43    unsigned short tunnelAppHttpPort;
44    char tunnelAppAPILevel;
45    char tunnelEnableAAE;
46    char tunnelAAEDeviceID[64];
47
48} SearchRouterInfoStruct;
49
50#define LISTEN_PORT 9990
51#define INFO_SERVER_PORT 9999
52#define SERV_IP	"255.255.255.255"
53#define MAX_SEARCH_ROUTER  127
54
55extern int a_bEndApp;
56extern int a_GetRouterCount;
57extern SearchRouterInfoStruct searchRouterInfo[MAX_SEARCH_ROUTER];
58
59int ASUS_Discovery();
60int ParseASUSDiscoveryPackage(int socket);
61
62void PROCESS_UNPACK_GET_INFO(char *pbuf, struct sockaddr_in from_addr);
63