blob: f528a54b4f3703de6799f7fecf6903b5cbd82448 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*/
/** BEGIN COPYRIGHT BLOCK
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA
*
* Copyright (C) 2007 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
#ifndef _PS_CERT_EXTENSION_H
#define _PS_CERT_EXTENSION_H
#ifdef HAVE_CONFIG_H
#ifndef AUTOTOOLS_CONFIG_H
#define AUTOTOOLS_CONFIG_H
/* Eliminate warnings when using Autotools */
#undef PACKAGE_BUGREPORT
#undef PACKAGE_NAME
#undef PACKAGE_STRING
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
#include <config.h>
#endif /* AUTOTOOLS_CONFIG_H */
#endif /* HAVE_CONFIG_H */
/**
* Presence Server cert extension. This extension contains customer
* specific information as per the contract apart from host and port
* used by BIG service provider to send user updates.
*/
class EXPORT_DECL PSCertExtension {
public:
/**
* Constructor -
*/
PSCertExtension();
/**
* Destructor
*/
~PSCertExtension();
public:
/**
* Loads the extension data from the specified cert. This function
* will also verify the validity these fields :
* HOST_NAME - should not be NULL or ""
* PORT_NUMBER - > 0 and <= 65535
* MAX_USERS - >= 0
*
* @param nickname cert nickname which contains the extension
* return 0 on success,
* -1 if nickname is missing from the argument
* -2 if unable to find the cert
* -3 if the presence extension is mising
* -4 if the required values (hostname, port, maxusers) are invalid
* -5 if the cert is expired
*/
int Load(const char* nickname);
/**
* Gets the service version number from the cert ext
*
* return version number as specified in the cert
*/
int GetVersion();
/**
* Gets the street address from the cert
*
* return street address as specified in the cert ext
*/
const char* GetStreetAddress();
/**
* Gets the telephone number from the cert
*
* return telephone number as specified in the cert ext
*/
const char* GetTelephoneNumber();
/**
* Gets the RFC822 name from the cert
*
* return RFC822 name as specified in the cert ext
*/
const char* GetRFC822Name();
/**
* Gets the IM id from the cert
*
* return IM id as specified in the cert ext
*/
const char* GetID();
/**
* Gets the hostname from the cert ext
*
* return hostname as specified in the cert ext
*/
const char* GetHostName();
/**
* Gets the port number from the cert ext
*
* return port number as specified in the cert ext
*/
int GetPortNumber();
/**
* Gets the max users allowed from the cert ext
*
* return max users as specified in the cert ext
*/
int GetMaxUsers();
/**
* Gets the service level from the cert ext
*
* return service level as specified in the cert ext
*/
int GetServiceLevel();
private:
int m_version;
char* m_streetAddress;
char* m_telephoneNumber;
char* m_rfc822Name;
char* m_id;
char* m_hostName;
int m_portNumber;
int m_maxUsers;
int m_serviceLevel;
};
#endif // _PS_CERT_EXTENSION_H
|