1 /*
2  *   libcddb - CDDB Interface Library for xmcd/cda
3  *
4  *	This library implements an interface to access the "classic"
5  *	CDDB1 services.
6  *
7  *   Copyright (C) 1993-2004  Ti Kan
8  *   E-mail: xmcd@amb.org
9  *
10  *   This program is free software; you can redistribute it and/or modify
11  *   it under the terms of the GNU General Public License as published by
12  *   the Free Software Foundation; either version 2 of the License, or
13  *   (at your option) any later version.
14  *
15  *   This program is distributed in the hope that it will be useful,
16  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
17  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  *   GNU General Public License for more details.
19  *
20  *   You should have received a copy of the GNU General Public License
21  *   along with this program; if not, write to the Free Software
22  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  *
24  */
25 #ifndef lint
26 static char     *_userinfo_c_ident_ = "@(#)userinfo.c	1.14 03/12/12";
27 #endif
28 
29 #include "fcddb.h"
30 
31 
32 /*
33  * CddbUserInfo_GetAge
34  *	Return age
35  */
36 CddbResult
CddbUserInfo_GetAge(CddbUserInfoPtr uinfop,CddbStr * pval)37 CddbUserInfo_GetAge(CddbUserInfoPtr uinfop, CddbStr *pval)
38 {
39 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
40 
41 	*pval = (CddbStr) (p->age == NULL ? "" : p->age);
42 	return Cddb_OK;
43 }
44 
45 
46 /*
47  * CddbUserInfo_GetAllowEmail
48  *	Return allow email flag
49  */
50 CddbResult
CddbUserInfo_GetAllowEmail(CddbUserInfoPtr uinfop,CddbBoolean * pval)51 CddbUserInfo_GetAllowEmail(CddbUserInfoPtr uinfop, CddbBoolean *pval)
52 {
53 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
54 
55 	*pval = p->allowemail;
56 	return Cddb_OK;
57 }
58 
59 
60 /*
61  * CddbUserInfo_GetAllowStats
62  *	Return allow stats flag
63  */
64 CddbResult
CddbUserInfo_GetAllowStats(CddbUserInfoPtr uinfop,CddbBoolean * pval)65 CddbUserInfo_GetAllowStats(CddbUserInfoPtr uinfop, CddbBoolean *pval)
66 {
67 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
68 
69 	*pval = p->allowstats;
70 	return Cddb_OK;
71 }
72 
73 
74 /*
75  * CddbUserInfo_GetEmailAddress
76  *	Return email address
77  */
78 CddbResult
CddbUserInfo_GetEmailAddress(CddbUserInfoPtr uinfop,CddbStr * pval)79 CddbUserInfo_GetEmailAddress(CddbUserInfoPtr uinfop, CddbStr *pval)
80 {
81 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
82 
83 	*pval = (CddbStr) (p->emailaddress == NULL ? "" : p->emailaddress);
84 	return Cddb_OK;
85 }
86 
87 
88 /*
89  * CddbUserInfo_GetPasswordHint
90  *	Return password hint
91  */
92 CddbResult
CddbUserInfo_GetPasswordHint(CddbUserInfoPtr uinfop,CddbStr * pval)93 CddbUserInfo_GetPasswordHint(CddbUserInfoPtr uinfop, CddbStr *pval)
94 {
95 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
96 
97 	*pval = (CddbStr) (p->passwordhint == NULL ? "" : p->passwordhint);
98 	return Cddb_OK;
99 }
100 
101 
102 /*
103  * CddbUserInfo_GetPostalCode
104  *	Return postal code
105  */
106 CddbResult
CddbUserInfo_GetPostalCode(CddbUserInfoPtr uinfop,CddbStr * pval)107 CddbUserInfo_GetPostalCode(CddbUserInfoPtr uinfop, CddbStr *pval)
108 {
109 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
110 
111 	*pval = (CddbStr) (p->postalcode == NULL ? "" : p->postalcode);
112 	return Cddb_OK;
113 }
114 
115 
116 /*
117  * CddbUserInfo_GetRegionId
118  *	Return region ID
119  */
120 CddbResult
CddbUserInfo_GetRegionId(CddbUserInfoPtr uinfop,CddbStr * pval)121 CddbUserInfo_GetRegionId(CddbUserInfoPtr uinfop, CddbStr *pval)
122 {
123 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
124 
125 	*pval = (CddbStr) (p->regionid == NULL ? "" : p->regionid);
126 	return Cddb_OK;
127 }
128 
129 
130 /*
131  * CddbUserInfo_GetSex
132  *	Return gender
133  */
134 CddbResult
CddbUserInfo_GetSex(CddbUserInfoPtr uinfop,CddbStr * pval)135 CddbUserInfo_GetSex(CddbUserInfoPtr uinfop, CddbStr *pval)
136 {
137 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
138 
139 	*pval = (CddbStr) (p->sex == NULL ? "" : p->sex);
140 	return Cddb_OK;
141 }
142 
143 
144 /*
145  * CddbUserInfo_GetUserHandle
146  *	Return user handle
147  */
148 CddbResult
CddbUserInfo_GetUserHandle(CddbUserInfoPtr uinfop,CddbStr * pval)149 CddbUserInfo_GetUserHandle(CddbUserInfoPtr uinfop, CddbStr *pval)
150 {
151 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
152 
153 	*pval = (CddbStr) (p->userhandle == NULL ? "" : p->userhandle);
154 	return Cddb_OK;
155 }
156 
157 
158 /*
159  * CddbUserInfo_PutAge
160  *	Set the age
161  */
162 CddbResult
CddbUserInfo_PutAge(CddbUserInfoPtr uinfop,CddbConstStr newval)163 CddbUserInfo_PutAge(CddbUserInfoPtr uinfop, CddbConstStr newval)
164 {
165 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
166 
167 	if (p->age != NULL)
168 		MEM_FREE(p->age);
169 
170 	if (newval == NULL || newval[0] == '\0')
171 		p->age = NULL;
172 	else
173 		p->age = (CddbStr) fcddb_strdup((char *) newval);
174 
175 	return Cddb_OK;
176 }
177 
178 
179 /*
180  * CddbUserInfo_PutAllowEmail
181  *	Set the allow email flag
182  */
183 CddbResult
CddbUserInfo_PutAllowEmail(CddbUserInfoPtr uinfop,CddbBoolean newval)184 CddbUserInfo_PutAllowEmail(CddbUserInfoPtr uinfop, CddbBoolean newval)
185 {
186 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
187 
188 	p->allowemail = newval;
189 	return Cddb_OK;
190 }
191 
192 
193 /*
194  * CddbUserInfo_PutAllowStats
195  *	Set the allow stats flag
196  */
197 CddbResult
CddbUserInfo_PutAllowStats(CddbUserInfoPtr uinfop,CddbBoolean newval)198 CddbUserInfo_PutAllowStats(CddbUserInfoPtr uinfop, CddbBoolean newval)
199 {
200 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
201 
202 	p->allowstats = newval;
203 	return Cddb_OK;
204 }
205 
206 
207 /*
208  * CddbUserInfo_PutEmailAddress
209  *	Set the email address
210  */
211 CddbResult
CddbUserInfo_PutEmailAddress(CddbUserInfoPtr uinfop,CddbConstStr newval)212 CddbUserInfo_PutEmailAddress(CddbUserInfoPtr uinfop, CddbConstStr newval)
213 {
214 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
215 
216 	if (p->emailaddress != NULL)
217 		MEM_FREE(p->emailaddress);
218 
219 	if (newval == NULL || newval[0] == '\0')
220 		p->emailaddress = NULL;
221 	else
222 		p->emailaddress = (CddbStr) fcddb_strdup((char *) newval);
223 
224 	return Cddb_OK;
225 }
226 
227 
228 /*
229  * CddbUserInfo_PutPassword
230  *	Set the CDDB password
231  */
232 CddbResult
CddbUserInfo_PutPassword(CddbUserInfoPtr uinfop,CddbConstStr newval)233 CddbUserInfo_PutPassword(CddbUserInfoPtr uinfop, CddbConstStr newval)
234 {
235 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
236 
237 	if (p->password != NULL)
238 		MEM_FREE(p->password);
239 
240 	if (newval == NULL || newval[0] == '\0')
241 		p->password = NULL;
242 	else
243 		p->password = (CddbStr) fcddb_strdup((char *) newval);
244 
245 	return Cddb_OK;
246 }
247 
248 
249 /*
250  * CddbUserInfo_PutPasswordHint
251  *	Set the password hint
252  */
253 CddbResult
CddbUserInfo_PutPasswordHint(CddbUserInfoPtr uinfop,CddbConstStr newval)254 CddbUserInfo_PutPasswordHint(CddbUserInfoPtr uinfop, CddbConstStr newval)
255 {
256 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
257 
258 	if (p->passwordhint != NULL)
259 		MEM_FREE(p->passwordhint);
260 
261 	if (newval == NULL || newval[0] == '\0')
262 		p->passwordhint = NULL;
263 	else
264 		p->passwordhint = (CddbStr) fcddb_strdup((char *) newval);
265 
266 	return Cddb_OK;
267 }
268 
269 
270 /*
271  * CddbUserInfo_PutPostalCode
272  *	Set the postal code
273  */
274 CddbResult
CddbUserInfo_PutPostalCode(CddbUserInfoPtr uinfop,CddbConstStr newval)275 CddbUserInfo_PutPostalCode(CddbUserInfoPtr uinfop, CddbConstStr newval)
276 {
277 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
278 
279 	if (p->postalcode != NULL)
280 		MEM_FREE(p->postalcode);
281 
282 	if (newval == NULL || newval[0] == '\0')
283 		p->postalcode = NULL;
284 	else
285 		p->postalcode = (CddbStr) fcddb_strdup((char *) newval);
286 
287 	return Cddb_OK;
288 }
289 
290 
291 /*
292  * CddbUserInfo_PutRegionId
293  *	Set the region ID
294  */
295 CddbResult
CddbUserInfo_PutRegionId(CddbUserInfoPtr uinfop,CddbConstStr newval)296 CddbUserInfo_PutRegionId(CddbUserInfoPtr uinfop, CddbConstStr newval)
297 {
298 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
299 
300 	if (p->regionid != NULL)
301 		MEM_FREE(p->regionid);
302 
303 	if (newval == NULL || newval[0] == '\0')
304 		p->regionid = NULL;
305 	else
306 		p->regionid = (CddbStr) fcddb_strdup((char *) newval);
307 
308 	return Cddb_OK;
309 }
310 
311 
312 /*
313  * CddbUserInfo_PutSex
314  *	Set the gender
315  */
316 CddbResult
CddbUserInfo_PutSex(CddbUserInfoPtr uinfop,CddbConstStr newval)317 CddbUserInfo_PutSex(CddbUserInfoPtr uinfop, CddbConstStr newval)
318 {
319 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
320 
321 	if (p->sex != NULL)
322 		MEM_FREE(p->sex);
323 
324 	if (newval == NULL || newval[0] == '\0')
325 		p->sex = NULL;
326 	else
327 		p->sex = (CddbStr) fcddb_strdup((char *) newval);
328 
329 	return Cddb_OK;
330 }
331 
332 
333 /*
334  * CddbUserInfo_PutUserHandle
335  *	Set the user handle
336  */
337 CddbResult
CddbUserInfo_PutUserHandle(CddbUserInfoPtr uinfop,CddbConstStr newval)338 CddbUserInfo_PutUserHandle(CddbUserInfoPtr uinfop, CddbConstStr newval)
339 {
340 	cddb_userinfo_t	*p = (cddb_userinfo_t *) uinfop;
341 
342 	if (p->userhandle != NULL)
343 		MEM_FREE(p->userhandle);
344 
345 	if (newval == NULL || newval[0] == '\0')
346 		p->userhandle = NULL;
347 	else
348 		p->userhandle = (CddbStr) fcddb_strdup((char *) newval);
349 
350 	return Cddb_OK;
351 }
352 
353 
354