comparison mcabber/src/utils.c @ 977:5b01de4ac5e1

Cosmetic changes
author Alexis Hildebrandt <afh [at] 2drop [dot] net>
date Tue, 10 Oct 2006 20:15:06 +0200
parents 527d6f234924
children ea939ff047d8
comparison
equal deleted inserted replaced
976:d530e5fb506a 977:5b01de4ac5e1
37 #include <sys/stat.h> 37 #include <sys/stat.h>
38 #include <ctype.h> 38 #include <ctype.h>
39 #include <glib.h> 39 #include <glib.h>
40 40
41 #include <config.h> 41 #include <config.h>
42 #include "utils.h"
42 #include "logprint.h" 43 #include "logprint.h"
43 44
44 static int DebugEnabled; 45 static int DebugEnabled;
45 static char *FName; 46 static char *FName;
46 47
311 char *domain, *resource; 312 char *domain, *resource;
312 int domlen; 313 int domlen;
313 314
314 if (!jid) return 1; 315 if (!jid) return 1;
315 316
316 domain = strchr(jid, '@'); 317 domain = strchr(jid, JID_DOMAIN_SEPARATOR);
317 318
318 /* the username is optional */ 319 /* the username is optional */
319 if (!domain) { 320 if (!domain) {
320 domain = jid; 321 domain = jid;
321 } else { 322 } else {
323 if ((domain == jid) || (domain-jid > 1023)) 324 if ((domain == jid) || (domain-jid > 1023))
324 return 1; 325 return 1;
325 domain++; 326 domain++;
326 327
327 /* check for low and invalid ascii characters in the username */ 328 /* check for low and invalid ascii characters in the username */
328 for (str = jid; *str != '@'; str++) { 329 for (str = jid; *str != JID_DOMAIN_SEPARATOR; str++) {
329 if (*str <= 32 || *str == ':' || *str == '@' || 330 if (*str <= ' ' || *str == ':' || *str == JID_DOMAIN_SEPARATOR ||
330 *str == '<' || *str == '>' || *str == '\'' || 331 *str == '<' || *str == '>' || *str == '\'' ||
331 *str == '"' || *str == '&') { 332 *str == '"' || *str == '&') {
332 return 1; 333 return 1;
333 } 334 }
334 } 335 }
335 /* the username is okay as far as we can tell without LIBIDN */ 336 /* the username is okay as far as we can tell without LIBIDN */
336 } 337 }
337 338
338 resource = strchr(domain, '/'); 339 resource = strchr(domain, JID_RESOURCE_SEPARATOR);
339 340
340 /* the resource is optional */ 341 /* the resource is optional */
341 if (resource) { 342 if (resource) {
342 domlen = resource - domain; 343 domlen = resource - domain;
343 resource++; 344 resource++;
353 354
354 /* and it must not be longer than 1023 bytes */ 355 /* and it must not be longer than 1023 bytes */
355 if (domlen > 1023) return 1; 356 if (domlen > 1023) return 1;
356 357
357 /* make sure the hostname is valid characters */ 358 /* make sure the hostname is valid characters */
358 for (str = domain; *str != '\0' && *str != '/'; str++) { 359 for (str = domain; *str != '\0' && *str != JID_RESOURCE_SEPARATOR; str++) {
359 if (!(isalnum(*str) || *str == '.' || *str == '-' || *str == '_')) 360 if (!(isalnum(*str) || *str == '.' || *str == '-' || *str == '_'))
360 return 1; 361 return 1;
361 } 362 }
362 363
363 /* it's okay as far as we can tell without LIBIDN */ 364 /* it's okay as far as we can tell without LIBIDN */