comparison src/protocols/jabber/jid.c @ 3127:4e7cefc55971

[gaim-migrate @ 3142] Upgraded jabber to most recent stable version committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Thu, 04 Apr 2002 03:04:57 +0000
parents 424a40f12a6c
children
comparison
equal deleted inserted replaced
3126:e883f604174e 3127:4e7cefc55971
1 /* 1 /* --------------------------------------------------------------------------
2 * This program is free software; you can redistribute it and/or modify 2 *
3 * it under the terms of the GNU General Public License as published by 3 * License
4 * the Free Software Foundation; either version 2 of the License, or 4 *
5 * (at your option) any later version. 5 * The contents of this file are subject to the Jabber Open Source License
6 * 6 * Version 1.0 (the "JOSL"). You may not copy or use this file, in either
7 * This program is distributed in the hope that it will be useful, 7 * source code or executable form, except in compliance with the JOSL. You
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 8 * may obtain a copy of the JOSL at http://www.jabber.org/ or at
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 9 * http://www.opensource.org/.
10 * GNU General Public License for more details. 10 *
11 * 11 * Software distributed under the JOSL is distributed on an "AS IS" basis,
12 * You should have received a copy of the GNU General Public License 12 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the JOSL
13 * along with this program; if not, write to the Free Software 13 * for the specific language governing rights and limitations under the
14 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 14 * JOSL.
15 * 15 *
16 * Jabber 16 * Copyrights
17 * Copyright (C) 1998-1999 The Jabber Team http://jabber.org/ 17 *
18 */ 18 * Portions created by or assigned to Jabber.com, Inc. are
19 19 * Copyright (c) 1999-2002 Jabber.com, Inc. All Rights Reserved. Contact
20 #include "jabber.h" 20 * information for Jabber.com, Inc. is available at http://www.jabber.com/.
21 *
22 * Portions Copyright (c) 1998-1999 Jeremie Miller.
23 *
24 * Acknowledgements
25 *
26 * Special thanks to the Jabber Open Source Contributors for their
27 * suggestions and support of Jabber.
28 *
29 * Alternatively, the contents of this file may be used under the terms of the
30 * GNU General Public License Version 2 or later (the "GPL"), in which case
31 * the provisions of the GPL are applicable instead of those above. If you
32 * wish to allow use of your version of this file only under the terms of the
33 * GPL and not to allow others to use your version of this file under the JOSL,
34 * indicate your decision by deleting the provisions above and replace them
35 * with the notice and other provisions required by the GPL. If you do not
36 * delete the provisions above, a recipient may use your version of this file
37 * under either the JOSL or the GPL.
38 *
39 *
40 * --------------------------------------------------------------------------*/
41
42 #include "lib.h"
21 43
22 jid jid_safe(jid id) 44 jid jid_safe(jid id)
23 { 45 {
24 char *str; 46 unsigned char *str;
25 47
26 if(strlen(id->server) == 0 || strlen(id->server) > 255) 48 if(strlen(id->server) == 0 || strlen(id->server) > 255)
27 return NULL; 49 return NULL;
28 50
29 /* lowercase the hostname, make sure it's valid characters */ 51 /* lowercase the hostname, make sure it's valid characters */
55 77
56 /* user@server/resource */ 78 /* user@server/resource */
57 79
58 str = pstrdup(p, idstr); 80 str = pstrdup(p, idstr);
59 81
60 id = pmalloc(p,sizeof(struct jid_struct)); 82 id = pmalloco(p,sizeof(struct jid_struct));
61 id->full = id->server = id->user = id->resource = NULL;
62 id->p = p; 83 id->p = p;
63 id->next = NULL;
64 84
65 resource = strstr(str,"/"); 85 resource = strstr(str,"/");
66 if(resource != NULL) 86 if(resource != NULL)
67 { 87 {
68 *resource = '\0'; 88 *resource = '\0';
283 } 303 }
284 pool_free(p); 304 pool_free(p);
285 305
286 return cur; 306 return cur;
287 } 307 }
308
309 jid jid_user(jid a)
310 {
311 jid ret;
312
313 if(a == NULL || a->resource == NULL) return a;
314
315 ret = pmalloco(a->p,sizeof(struct jid_struct));
316 ret->p = a->p;
317 ret->user = a->user;
318 ret->server = a->server;
319
320 return ret;
321 }