#ifndef __NETWOR_INADOR_MANAGER_H__
#define __NETWOR_INADOR_MANAGER_H__

enum {
	NET_INADOR_TYPE_COMMAND = 1,
	NET_INADOR_TYPE_RESPONSE = 2,
	NET_INADOR_TYPE_RESPONSE_ERROR = 3,
	NET_INADOR_TYPE_RESPONSE_LISTING_END = 4,
	NET_INADOR_TYPE_EVENT = 16
};

/* Lista de eventos */
#define NET_INADOR_EVENT_MASK_INTERFACES 0x01
#define NET_INADOR_EVENT_MASK_IP 0x02

enum {
	NET_INADOR_COMMAND_LIST_IFACES = 1,
	
	NET_INADOR_COMMAND_GET_IFACE,
	
	NET_INADOR_COMMAND_IFACE_UP,
	NET_INADOR_COMMAND_IFACE_DOWN,
	
	NET_INADOR_COMMAND_IFACE_CHANGE_NAME,
	
	NET_INADOR_COMMAND_LIST_IP = 32,
	NET_INADOR_COMMAND_CLEAR_IP,
	NET_INADOR_COMMAND_ADD_IP,
	NET_INADOR_COMMAND_REMOVE_IP,
	
	NET_INADOR_COMMAND_SET_EVENT_MASK = 192,
};

enum {
	NET_INADOR_ERROR_UNKNOWN = 0,
	
	NET_INADOR_ERROR_WRONG_COMMAND,
	NET_INADOR_ERROR_INCOMPLETE_REQUEST,
	NET_INADOR_ERROR_INVALID_IFACE_INDEX,
	NET_INADOR_ERROR_INVALID_FAMILY,
	NET_INADOR_ERROR_INVALID_VALUE,
	NET_INADOR_ERROR_NOT_EXECUTED,
	NET_INADOR_ERROR_BAD_STRING,
};

enum {
	NET_INADOR_EVENT_IFACE_ADDED = 2,
	NET_INADOR_EVENT_IPADDR_ADDED,
	NET_INADOR_EVENT_IFACE_REMOVED,
	NET_INADOR_EVENT_IPADDR_REMOVED
};

enum {
	NET_INADOR_RESPONSE_EXECUTED = 1,
	
	NET_INADOR_RESPONSE_IFACE = 2,
	NET_INADOR_RESPONSE_IPADDR,
	
};


#endif /* __NETWOR_INADOR_MANAGER_H__ */