View | Details | Raw Unified | Return to issue 53184
Collapse All | Expand All

(-)file_not_specified_in_diff (-13 / +13 lines)
Line  Link Here
0
-- tools/source/fsys/urlobj.cxx
0
++ tools/source/fsys/urlobj.cxx
Lines 2365-2371 bool INetURLObject::parseHost( Link Here
2365
					aTheCanonic.append(sal_Unicode('['));
2365
					aTheCanonic.append(sal_Unicode('['));
2366
					eState = STATE_IP6;
2366
					eState = STATE_IP6;
2367
				}
2367
				}
2368
				else if (INetMIME::isAlpha(*p))
2368
				else if (INetMIME::isAlpha(*p) || *p == '_')
2369
					eState = STATE_TOPLABEL;
2369
					eState = STATE_TOPLABEL;
2370
				else if (INetMIME::isDigit(*p))
2370
				else if (INetMIME::isDigit(*p))
2371
				{
2371
				{
Lines 2383-2401 bool INetURLObject::parseHost( Link Here
2383
					eState = STATE_LABEL_DOT;
2383
					eState = STATE_LABEL_DOT;
2384
				else if (*p == '-')
2384
				else if (*p == '-')
2385
					eState = STATE_LABEL_HYPHEN;
2385
					eState = STATE_LABEL_HYPHEN;
2386
				else if (!INetMIME::isAlphanumeric(*p))
2386
				else if (!INetMIME::isAlphanumeric(*p) && *p != '_')
2387
					goto done;
2387
					goto done;
2388
				break;
2388
				break;
2389
2389
2390
			case STATE_LABEL_HYPHEN:
2390
			case STATE_LABEL_HYPHEN:
2391
				if (INetMIME::isAlphanumeric(*p))
2391
				if (INetMIME::isAlphanumeric(*p) || *p == '_')
2392
					eState = STATE_LABEL;
2392
					eState = STATE_LABEL;
2393
				else if (*p != '-')
2393
				else if (*p != '-')
2394
					goto done;
2394
					goto done;
2395
				break;
2395
				break;
2396
2396
2397
			case STATE_LABEL_DOT:
2397
			case STATE_LABEL_DOT:
2398
				if (INetMIME::isAlpha(*p))
2398
				if (INetMIME::isAlpha(*p) || *p == '_')
2399
					eState = STATE_TOPLABEL;
2399
					eState = STATE_TOPLABEL;
2400
				else if (INetMIME::isDigit(*p))
2400
				else if (INetMIME::isDigit(*p))
2401
					eState = STATE_LABEL;
2401
					eState = STATE_LABEL;
Lines 2408-2426 bool INetURLObject::parseHost( Link Here
2408
					eState = STATE_TOPLABEL_DOT;
2408
					eState = STATE_TOPLABEL_DOT;
2409
				else if (*p == '-')
2409
				else if (*p == '-')
2410
					eState = STATE_TOPLABEL_HYPHEN;
2410
					eState = STATE_TOPLABEL_HYPHEN;
2411
				else if (!INetMIME::isAlphanumeric(*p))
2411
				else if (!INetMIME::isAlphanumeric(*p) && *p != '_')
2412
					goto done;
2412
					goto done;
2413
				break;
2413
				break;
2414
2414
2415
			case STATE_TOPLABEL_HYPHEN:
2415
			case STATE_TOPLABEL_HYPHEN:
2416
				if (INetMIME::isAlphanumeric(*p))
2416
				if (INetMIME::isAlphanumeric(*p) || *p == '_')
2417
					eState = STATE_TOPLABEL;
2417
					eState = STATE_TOPLABEL;
2418
				else if (*p != '-')
2418
				else if (*p != '-')
2419
					goto done;
2419
					goto done;
2420
				break;
2420
				break;
2421
2421
2422
			case STATE_TOPLABEL_DOT:
2422
			case STATE_TOPLABEL_DOT:
2423
				if (INetMIME::isAlpha(*p))
2423
				if (INetMIME::isAlpha(*p) || *p == '_')
2424
					eState = STATE_TOPLABEL;
2424
					eState = STATE_TOPLABEL;
2425
				else if (INetMIME::isDigit(*p))
2425
				else if (INetMIME::isDigit(*p))
2426
					eState = STATE_LABEL;
2426
					eState = STATE_LABEL;
Lines 2442-2448 bool INetURLObject::parseHost( Link Here
2442
						eState = STATE_LABEL_DOT;
2442
						eState = STATE_LABEL_DOT;
2443
				else if (*p == '-')
2443
				else if (*p == '-')
2444
					eState = STATE_LABEL_HYPHEN;
2444
					eState = STATE_LABEL_HYPHEN;
2445
				else if (INetMIME::isAlpha(*p))
2445
				else if (INetMIME::isAlpha(*p) || *p == '_')
2446
					eState = STATE_LABEL;
2446
					eState = STATE_LABEL;
2447
				else if (INetMIME::isDigit(*p))
2447
				else if (INetMIME::isDigit(*p))
2448
					if (nDigits < 3)
2448
					if (nDigits < 3)
Lines 2457-2463 bool INetURLObject::parseHost( Link Here
2457
				break;
2457
				break;
2458
2458
2459
			case STATE_IP4_DOT:
2459
			case STATE_IP4_DOT:
2460
				if (INetMIME::isAlpha(*p))
2460
				if (INetMIME::isAlpha(*p) || *p == '_')
2461
					eState = STATE_TOPLABEL;
2461
					eState = STATE_TOPLABEL;
2462
				else if (INetMIME::isDigit(*p))
2462
				else if (INetMIME::isDigit(*p))
2463
				{
2463
				{
Lines 5311-5317 Link Here
5311
		switch (eState)
5311
		switch (eState)
5312
		{
5312
		{
5313
			case STATE_DOT:
5313
			case STATE_DOT:
5314
				if (p != pEnd && INetMIME::isAlphanumeric(*p))
5314
				if (p != pEnd && (INetMIME::isAlphanumeric(*p) || *p == '_'))
5315
				{
5315
				{
5316
					++nLabels;
5316
					++nLabels;
5317
					eState = STATE_LABEL;
5317
					eState = STATE_LABEL;
Lines 5324-5330 Link Here
5324
5324
5325
			case STATE_LABEL:
5325
			case STATE_LABEL:
5326
				if (p != pEnd)
5326
				if (p != pEnd)
5327
					if (INetMIME::isAlphanumeric(*p))
5327
					if (INetMIME::isAlphanumeric(*p) || *p == '_')
5328
						break;
5328
						break;
5329
					else if (*p == '.')
5329
					else if (*p == '.')
5330
					{
5330
					{
Lines 5342-5348 Link Here
5342
5342
5343
			case STATE_HYPHEN:
5343
			case STATE_HYPHEN:
5344
				if (p != pEnd)
5344
				if (p != pEnd)
5345
					if (INetMIME::isAlphanumeric(*p))
5345
					if (INetMIME::isAlphanumeric(*p) || *p == '_')
5346
					{
5346
					{
5347
						eState = STATE_LABEL;
5347
						eState = STATE_LABEL;
5348
						break;
5348
						break;

Return to issue 53184