2 ** NetXMS - Network Management System
3 ** Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008 Victor Kirhenshtein
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details.
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software
17 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23 #ifndef _netxms_isc_h_
24 #define _netxms_isc_h_
27 * Default ISC port number
29 #define NETXMS_ISC_PORT 4702
32 * Well-known ISC services
34 #define ISC_SERVICE_EVENT_FORWARDER ((UINT32)1)
35 #define ISC_SERVICE_OBJECT_SYNC ((UINT32)2)
36 #define ISC_SERVICE_LICENSE_SERVER ((UINT32)3)
38 #define ISC_SERVICE_CUSTOM_1 ((UINT32)100000)
43 #define ISC_ERR_SUCCESS ((UINT32)0)
44 #define ISC_ERR_UNKNOWN_SERVICE ((UINT32)1)
45 #define ISC_ERR_REQUEST_OUT_OF_STATE ((UINT32)2)
46 #define ISC_ERR_SERVICE_DISABLED ((UINT32)3)
47 #define ISC_ERR_ENCRYPTION_REQUIRED ((UINT32)4)
48 #define ISC_ERR_CONNECTION_BROKEN ((UINT32)5)
49 #define ISC_ERR_ALREADY_CONNECTED ((UINT32)6)
50 #define ISC_ERR_SOCKET_ERROR ((UINT32)7)
51 #define ISC_ERR_CONNECT_FAILED ((UINT32)8)
52 #define ISC_ERR_INVALID_NXCP_VERSION ((UINT32)9)
53 #define ISC_ERR_REQUEST_TIMEOUT ((UINT32)10)
54 #define ISC_ERR_NOT_IMPLEMENTED ((UINT32)11)
55 #define ISC_ERR_NO_CIPHERS ((UINT32)12)
56 #define ISC_ERR_INVALID_PUBLIC_KEY ((UINT32)13)
57 #define ISC_ERR_INVALID_SESSION_KEY ((UINT32)14)
58 #define ISC_ERR_INTERNAL_ERROR ((UINT32)15)
59 #define ISC_ERR_SESSION_SETUP_FAILED ((UINT32)16)
60 #define ISC_ERR_OBJECT_NOT_FOUND ((UINT32)17)
61 #define ISC_ERR_POST_EVENT_FAILED ((UINT32)18)
70 UINT32 m_peerAddress
; // Peer address in host byte order
74 ISCSession(SOCKET sock
, struct sockaddr_in
*addr
)
77 m_peerAddress
= ntohl(addr
->sin_addr
.s_addr
);
81 SOCKET
GetSocket() { return m_socket
; }
82 UINT32
GetPeerAddress() { return m_peerAddress
; }
84 void SetUserData(void *data
) { m_userData
= data
; }
85 void *GetUserData() { return m_userData
; }
89 * ISC service definition
93 UINT32 id
; // Service ID
94 const TCHAR
*name
; // Name
95 const TCHAR
*enableParameter
; // Server parameter to be set to enable service
96 BOOL (*setupSession
)(ISCSession
*, NXCPMessage
*); // Session setup handler
97 void (*closeSession
)(ISCSession
*); // Session close handler
98 BOOL (*processMsg
)(ISCSession
*, NXCPMessage
*, NXCPMessage
*);