Граф коммитов

686 Коммитов

Автор SHA1 Сообщение Дата
warren%netscape.com 38ba2d2fad Lots of cool logging code. 1999-07-31 06:28:31 +00:00
warren%netscape.com 8c9db416e3 Added shtml 1999-07-31 06:27:03 +00:00
beard%netscape.com 8a020feafa removed special handling of /usr/local/bin/netscape in favor of better solution in resource: URL handler. 1999-07-31 01:04:23 +00:00
gagan%netscape.com 7226dc69b4 Fix MLK. Freeing up previous versions of mPath/mScheme 1999-07-31 00:15:49 +00:00
rpotts%netscape.com 558cdd62be bug #10424 URL redirects. If the server did *not* send an entity along with the 302, necko would not correctly follow the redirect. 1999-07-30 07:13:05 +00:00
rpotts%netscape.com 21e7d3da37 bug #10424 URL redirects. If the server did *not* send an entity along with the 302, necko would not correctly follow the redirect. 1999-07-30 06:39:24 +00:00
warren%netscape.com 57392932f9 Fixed to not put stuff in netwerk/dist anymore. 1999-07-30 06:10:53 +00:00
warren%netscape.com ec14999c47 Added NS_ERROR_UNKNOWN_PROTOCOL, and changed dns error to NS_ERROR_UNKNOWN_HOST. 1999-07-30 04:17:23 +00:00
valeski%netscape.com 2c443202a5 crahser fix 10843 - bad host name was crashing the socket transport in error state 1999-07-30 02:36:52 +00:00
valeski%netscape.com 8cf1dba87f added dns failure check to output 1999-07-30 02:35:12 +00:00
gagan%netscape.com 7404fbfb83 Fixes the spaces problem also on the Mac! 1999-07-30 01:17:29 +00:00
gagan%netscape.com c6472453b8 Fixed the spaces problem. File path is now unescaped before being handed over to file spec. 1999-07-30 00:55:35 +00:00
sdagley%netscape.com 55649b036c Temp hack for the Mac to address error opening files that aren't properly un-escaped (%20 still in the path instead of spaces for example). We still fail to open the file but now there's an error message to go along with the failure. Note that this will require Macsbug to be installed or a Mac hitting this error will crash. Since we were already telling people that they needed Macsbug installed to run the developmental builds I don't see a problem with this. 1999-07-30 00:37:58 +00:00
briano%netscape.com adb4c20ef7 Fix for platforms whose ld's don't have a --whole-archive equivalent. 1999-07-29 22:47:42 +00:00
valeski%netscape.com f915d4a913 not in default build - added stream conversion test app 1999-07-29 21:18:35 +00:00
valeski%netscape.com b955d14bca not in default builds. fixed mem leaks in stream service 1999-07-29 21:17:33 +00:00
valeski%netscape.com 75449d0dff not in default builds - stream converter leak updates and we're now poping from the Q from the top (FIFO) 1999-07-29 07:09:46 +00:00
sspitzer%netscape.com 0f1188a8ce ignore generated Makefile 1999-07-29 05:00:07 +00:00
bruce%cybersight.com e2e303a78d Build fix for aCC on HP-UX. Approved by leaf. 1999-07-29 04:21:42 +00:00
mscott%netscape.com 94b8521246 fix build breakage...include config.mak 1999-07-29 03:17:36 +00:00
mscott%netscape.com d563520210 fix build by including config.mak 1999-07-29 03:10:23 +00:00
mscott%netscape.com 17edea3140 fix build breakage...include config.mak 1999-07-29 02:49:02 +00:00
mscott%netscape.com c0c1cc8e74 fix build breakage by including config.mak 1999-07-29 02:47:16 +00:00
mscott%netscape.com 203c991819 Fix build breakage...include config.mak 1999-07-29 02:35:45 +00:00
briano%netscape.com 5ca4aa0b87 Trivial elimination of some pointless macros as discussed in bug 8568. Approved by leaf@mozilla.org. 1999-07-29 01:18:12 +00:00
rpotts%netscape.com 02062599f9 Close the socket if an error occurred... 1999-07-28 11:08:18 +00:00
rpotts%netscape.com 3aed16e4b8 Changed OnStopRequest(...) to always file - regardless of the mStatus. This insures that the consumer will *always* receive an OnStopRequest(...) notification. 1999-07-28 11:07:39 +00:00
rpotts%netscape.com 8c60c16be7 Set the max number of open transports to 8. 1999-07-28 09:26:55 +00:00
rpotts%netscape.com 315de829f9 Obsolete file... 1999-07-28 09:25:51 +00:00
rpotts%netscape.com bf7d1235bc Support for a Max number of open transports. 1999-07-28 09:25:31 +00:00
warren%netscape.com c7b57f1e08 Fixed mismatched delete problem (purify). 1999-07-28 04:05:10 +00:00
warren%netscape.com 7b13572242 Fixed UMR / refcounting problem (purify). 1999-07-28 04:02:07 +00:00
gagan%netscape.com ca73a1f56c More URL parsing updates for not so common cases. 1999-07-28 02:13:07 +00:00
valeski%netscape.com 8fe0e5315f free memory mismatch fix 1999-07-27 23:35:01 +00:00
mcafee%netscape.com 9e9afeb293 Minor comment change. 1999-07-27 23:31:48 +00:00
briano%netscape.com 007ea62765 Cleaned it up and changed the name of libreg.{a,so} to libmozreg.{a,so} to fix the conflict reported in bug 8568. 1999-07-27 23:27:44 +00:00
ducarroz%netscape.com 69fb203755 Fix shlb name conflict between netwerk:mime and mailnews:mime. Necko only. 1999-07-27 23:17:49 +00:00
gagan%netscape.com f127b5bcec Fixed the URL parsing for http://foo:80 1999-07-27 21:28:05 +00:00
valeski%netscape.com a176e19e98 fixing mem leak 1999-07-27 21:12:50 +00:00
mcafee%netscape.com 11cfd5f1b9 Adding testserver/Makefile 1999-07-27 20:33:00 +00:00
mcafee%netscape.com 09740c6d93 First checkin 1999-07-27 20:32:08 +00:00
valeski%netscape.com 2964097b08 memory leak fix on ns_makeabsoluteURI calls 1999-07-27 14:42:19 +00:00
rpotts%netscape.com 4c8f571a13 Added a temporary new define called USE_POLLABLE_EVENT which windows and unix both define... On the Mac, rather than using NSPR pollable events, a small timeout is set for PR_Poll(...) and new entry processing occurs after a timeout :-( 1999-07-27 09:21:07 +00:00
warren%netscape.com cfc523f742 Added assertion for bug I was hitting (spinning). 1999-07-27 08:47:43 +00:00
warren%netscape.com 17c0cb8533 Added missing error check. 1999-07-27 08:47:13 +00:00
warren%netscape.com 0cf03128d0 Fixed tab-width 1999-07-27 08:46:27 +00:00
warren%netscape.com d8715087fe Added logging. 1999-07-27 08:45:35 +00:00
warren%netscape.com 065cd2992d Fixed NewURI to not pass base URI when spec is absolute. 1999-07-27 08:45:20 +00:00
gagan%netscape.com dc9fb63f38 -Fixed parsing to handle the mscott cases of-
mailbox://foo:25/user@netscape.com
	pop3://foo:110?check
-Fixed missing directory situations. (thanks Andreas)
-Removed the temporary hack for converting from ToNewCString to nsCRT::free'able
type. This removes the FMM errors on Bruce's log. No more mismatched freeing.


? diffs
Index: nsStdURL.cpp
===================================================================
RCS file: /cvsroot/mozilla/netwerk/base/src/nsStdURL.cpp,v
retrieving revision 1.5
diff -r1.5 nsStdURL.cpp
147,150c147
<     {
< 		//TODO
<         return NS_ERROR_FAILURE; // this should really be NS_ERROR_URL_PARSING
<     }
---
>         return NS_ERROR_MALFORMED_URI;
154c151
<     static const char delimiters[] = "/:@"; //this order is optimized.
---
>     static const char delimiters[] = "/:@?"; //this order is optimized.
157,493c154
<     if (brk)
<     {
<         switch (*brk)
<         {
<         case '/' :
<             // If the URL starts with a slash then everything is a path
<             if (brk == mSpec)
<             {
< 				ExtractString(mSpec, &mPath, 0, len);
<                 return NS_OK;
<             }
<             else // The first part is host, so its host/path
<             {
<                 ExtractString(mSpec, &mHost, 0, (brk - mSpec));
<                 ExtractString(mSpec, &mPath, (brk - mSpec), (len - (brk - mSpec)));
<                 return NS_OK;
<             }
<             break;
<         case ':' :
<             if (*(brk+1) == '/')
<             {
<                 ExtractString(mSpec, &mScheme, 0, (brk - mSpec));
<
<                 if (*(brk+2) == '/') // e.g. http://
<                 // If the first colon is followed by // then its definitely a spec
<                 {
<                     lastbrk = brk+3;
<                     brk = PL_strpbrk(lastbrk, delimiters);
<                     if (brk)
<                     {
<                         switch (*brk)
<                         {
<                             case '/' : // standard case- http://host/path
<                                 ExtractString(mSpec, &mHost,
< 								    (lastbrk - mSpec), (brk - lastbrk));
<                                 ExtractString(mSpec, &mPath,
< 								    (brk - mSpec), (len - (brk - mSpec)));
<                                 return NS_OK;
<                                 break;
<                             case ':' :
<                                 {
<                                     // It could be http://user:pass@host/path
< 								    // or http://host:port/path
<                                     // For the first case, there has to be an
< 								    // @ after this colon, so...
<                                     char* atSign = PL_strchr(brk, '@');
<                                     if (atSign)
<                                     {
<                                         ExtractString(mSpec, &mPreHost,
< 										    (lastbrk - mSpec), (atSign - lastbrk));
<                                         brk = PL_strpbrk(atSign+1, "/:");
<                                         if (brk) // http://user:pass@host:port/path or http://user:pass@host/path
<                                         {
<                                             ExtractString(mSpec, &mHost,
< 											    (atSign+1 - mSpec),
< 											    (brk - (atSign+1)));
<                                             if (*brk == '/')
<                                             {
<                                                 ExtractString(mSpec, &mPath,
< 												    (brk - mSpec),
< 												    len - (brk - mSpec));
<                                                 return NS_OK;
<                                             }
<                                             else // we have a port since (brk == ':')
<                                             {
<                                                 lastbrk = brk+1;
<                                                 brk = PL_strchr(lastbrk, '/');
<                                                 if (brk) // http://user:pass@host:port/path
<                                                 {
<                                                     mPort = ExtractPortFrom(mSpec, (lastbrk - mSpec), (brk-lastbrk));
<                                                     ExtractString(mSpec, &mPath, (brk-mSpec), len - (brk-mSpec));
<                                                     return NS_OK;
<                                                 }
<                                                 else // http://user:pass@host:port
<                                                 {
<                                                     mPort = ExtractPortFrom(mSpec, (lastbrk - mSpec), len - (lastbrk - mSpec));
<                                                     return NS_OK;
<                                                 }
<                                             }
<
<                                         }
<                                         else // its just http://user:pass@host
<                                         {
<                                             ExtractString(mSpec, &mHost,
< 											    (atSign+1 - mSpec),
< 											    len - (atSign+1 - mSpec));
<                                             return NS_OK;
<                                         }
<                                     }
<                                     else // definitely the port option, i.e. http://host:port/path
<                                     {
<                                         ExtractString(mSpec, &mHost,
< 										    (lastbrk-mSpec),
< 										    (brk-lastbrk));
<                                         lastbrk = brk+1;
<                                         brk = PL_strchr(lastbrk, '/');
<                                         if (brk)    // http://host:port/path
<                                         {
<                                             mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),(brk-lastbrk));
<                                             ExtractString(mSpec, &mPath,
< 											    (brk-mSpec),
< 											    len - (brk-mSpec));
<                                             return NS_OK;
<                                         }
<                                         else        // http://host:port
<                                         {
<                                             mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),len - (lastbrk-mSpec));
<                                             return NS_OK;
<                                         }
<                                     }
<                                 }
<                                 break;
<                             case '@' :
<                                 // http://user@host...
<                                 {
<                                     ExtractString(mSpec, &mPreHost,
< 									    (lastbrk-mSpec), (brk-lastbrk));
<                                     lastbrk = brk+1;
<                                     brk = PL_strpbrk(lastbrk, ":/");
<                                     if (brk)
<                                     {
<                                         ExtractString(mSpec, &mHost,
< 										    (lastbrk-mSpec), (brk - lastbrk));
<                                         if (*brk == ':') // http://user@host:port...
<                                         {
<                                             lastbrk = brk+1;
<                                             brk = PL_strchr(lastbrk, '/');
<                                             if (brk)    // http://user@host:port/path
<                                             {
<                                                 mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),(brk-lastbrk));
<                                                 ExtractString(mSpec, &mPath,
< 												    (brk-mSpec),
< 												    len - (brk-mSpec));
<                                                 return NS_OK;
<                                             }
<                                             else        // http://user@host:port
<                                             {
<                                                 mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),len - (lastbrk-mSpec));
<                                                 return NS_OK;
<                                             }
<
<                                         }
<                                         else // (*brk == '/') so no port just path i.e. http://user@host/path
<                                         {
<                                             ExtractString(mSpec, &mPath,
< 											    (brk - mSpec),
< 											    len - (brk - mSpec));
<                                             return NS_OK;
<                                         }
<                                     }
<                                     else // its just http://user@host
<                                     {
<                                         ExtractString(mSpec, &mHost,
< 										    (lastbrk+1 - mSpec), len - (lastbrk+1 - mSpec));
<                                         return NS_OK;
<                                     }
<
<                                 }
<                                 break;
<                             default: NS_POSTCONDITION(0, "This just can't be!");
<                                 break;
<                         }
<
<                     }
<                     else // everything else is a host, as in http://host
<                     {
<                         ExtractString(mSpec, &mHost,
< 						    (lastbrk - mSpec),
< 						    len - (lastbrk - mSpec));
<                         return NS_OK;
<                     }
<
<                 }
<                 else // This is a no // path alone case like file:/path, there is never a prehost/host in this case.
<                 {
<                     ExtractString(mSpec, &mPath, (brk-mSpec+1), len - (brk-mSpec+1));
<                     return NS_OK;
<                 }
<             }
<             else // scheme:host or host:port...
<             {
<                 lastbrk = brk+1;
<
<                 if ((*lastbrk >= '0') && (*lastbrk <= '9')) //host:port...
<                 {
<                     ExtractString(mSpec, &mHost, 0, (brk - mSpec));
<                     brk = PL_strpbrk(lastbrk, delimiters);
<                     if (brk)
<                     {
<                         switch (*brk)
<                         {
<                             case '/' : // The path, so its host:port/path
<                                 mPort = ExtractPortFrom(mSpec, lastbrk-mSpec, brk-lastbrk);
<                                 ExtractString(mSpec, &mPath, brk- mSpec, len - (brk-mSpec));
<                                 return NS_OK;
<                                 break;
<                             case ':' :
<                                 return NS_ERROR_FAILURE;//TODO NS_ERROR_URL_PARSING;
<                                 break;
<                             case '@' :
<                                 // This is a special case of user:pass@host... so
<                                 // Cleanout our earliar knowledge of host
<                                 ExtractString(mSpec, &mHost, -1, -1);
<
<                                 ExtractString(mSpec, &mPreHost, 0, (brk-mSpec));
<                                 lastbrk = brk+1;
<                                 brk = PL_strpbrk(lastbrk, ":/");
<                                 if (brk)
<                                 {
<                                     ExtractString(mSpec, &mHost,
< 									    (lastbrk-mSpec), (brk-lastbrk));
<                                     if (*brk == ':') // user:pass@host:port...
<                                     {
<                                         lastbrk = brk+1;
<                                         brk = PL_strchr(lastbrk, '/');
<                                         if (brk)    // user:pass@host:port/path
<                                         {
<                                             mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),(brk-lastbrk));
<                                             ExtractString(mSpec, &mPath,
< 											    (brk-mSpec), len - (brk-mSpec));
<                                             return NS_OK;
<                                         }
<                                         else        // user:pass@host:port
<                                         {
<                                             mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),len - (lastbrk-mSpec));
<                                             return NS_OK;
<                                         }
<                                     }
<                                     else // (*brk == '/') so user:pass@host/path
<                                     {
<                                         ExtractString(mSpec, &mPath, (brk - mSpec), len - (brk - mSpec));
<                                         return NS_OK;
<                                     }
<                                 }
<                                 else // its user:pass@host so everthing else is just the host
<                                 {
<                                     ExtractString(mSpec, &mHost,
< 									    (lastbrk-mSpec), len - (lastbrk-mSpec));
<                                     return NS_OK;
<                                 }
<
<                                 break;
<                             default: NS_POSTCONDITION(0, "This just can't be!");
<                                 break;
<                         }
<                     }
<                     else // Everything else is just the port
<                     {
<                         mPort = ExtractPortFrom(mSpec, lastbrk-mSpec, len - (lastbrk-mSpec));
<                         return NS_OK;
<                     }
<                 }
<                 else // scheme:host...
<                 {
<                     ExtractString(mSpec, &mScheme, 0, (brk - mSpec));
<                     brk = PL_strpbrk(lastbrk, delimiters);
<                     if (brk)
<                     {
<                         switch (*brk)
<                         {
<                             case '/' : // The path, so its scheme:host/path
<                                 ExtractString(mSpec, &mHost, (lastbrk-mSpec), (brk-lastbrk));
<                                 ExtractString(mSpec, &mPath, (brk - mSpec), len - (brk - mSpec));
<                                 return NS_OK;
<                                 break;
<                             case '@' : // scheme:user@host...
<                                 ExtractString(mSpec, &mPreHost, (lastbrk-mSpec), (brk-lastbrk));
<                                 // TODO more here...
<                                 break;
<                             case ':' : // scheme:user:pass@host... or scheme:host:port...
<                                 /* TODO
<                                 if you find @ in the remaining string then // scheme:user:pass@host...
<                                 {
<
<
<                                 }
<                                 else // scheme:host:port
<                                 {
<                                     ExtractString(mSpec, &mHost, (lastbrk-mSpec), (brk-lastbrk));
<
<                                 }
<                                 */
<                                 break;
<                             default: NS_POSTCONDITION(0, "This just can't be!");
<                                 break;
<                         }
<                     }
<                     else // its just scheme:host
<                     {
<                         ExtractString(mSpec, &mHost, (lastbrk-mSpec), len - (lastbrk-mSpec));
<                         return NS_OK;
<                     }
<                 }
<             }
<             break;
<         case '@' :
<             //Everything before the @ is the prehost stuff
<             ExtractString(mSpec, &mPreHost, 0, brk-mSpec);
<             lastbrk = brk+1;
<             brk = PL_strpbrk(lastbrk, ":/");
<             if (brk)
<             {
<                 ExtractString(mSpec, &mHost, (lastbrk-mSpec), (brk-lastbrk));
<                 if (*brk == ':') // user@host:port...
<                 {
<                     lastbrk = brk+1;
<                     brk = PL_strchr(lastbrk, '/');
<                     if (brk)    // user@host:port/path
<                     {
<                         mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),(brk-lastbrk));
<                         ExtractString(mSpec, &mPath, (brk-mSpec), len - (brk-mSpec));
<                         return NS_OK;
<                     }
<                     else        // user@host:port
<                     {
<                         mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),len - (lastbrk-mSpec));
<                         return NS_OK;
<                     }
<                 }
<                 else // (*brk == '/') so user@host/path
<                 {
<                     ExtractString(mSpec, &mPath, (brk - mSpec), len - (brk - mSpec));
<                     return NS_OK;
<                 }
<             }
<             else // its user@host so everything else is just the host
<             {
<                 ExtractString(mSpec, &mHost, (lastbrk-mSpec), (len - (lastbrk-mSpec)));
<                 return NS_OK;
<             }
<             break;
<         default:
<             NS_ASSERTION(0, "This just can't be!");
<             break;
<         }
<     }
<     else // everything is a host
---
>     if (!brk) // everything is a host
495a157
> 		return NS_OK;
496a159,501
> 	switch (*brk)
> 	{
> 	case '/' :
> 	case '?' :
> 		// If the URL starts with a slash then everything is a path
> 		if (brk == mSpec)
> 		{
> 			ExtractString(mSpec, &mPath, 0, len);
> 			return NS_OK;
> 		}
> 		else // The first part is host, so its host/path
> 		{
> 			ExtractString(mSpec, &mHost, 0, (brk - mSpec));
> 			ExtractString(mSpec, &mPath, (brk - mSpec), (len - (brk - mSpec)));
> 			return NS_OK;
> 		}
> 		break;
> 	case ':' :
> 		if (*(brk+1) == '/')
> 		{
> 			ExtractString(mSpec, &mScheme, 0, (brk - mSpec));
>
> 			if (*(brk+2) == '/') // e.g. http://
> 			// If the first colon is followed by // then its definitely a spec
> 			{
> 				lastbrk = brk+3;
> 				brk = PL_strpbrk(lastbrk, delimiters);
> 				if (!brk) // everything else is a host, as in http://host
> 				{
> 					ExtractString(mSpec, &mHost,
> 						(lastbrk - mSpec),
> 						len - (lastbrk - mSpec));
> 					return NS_OK;
> 				}
> 				switch (*brk)
> 				{
> 					case '/' : // standard case- http://host/path
> 					case '?' : // missing path cases
> 						ExtractString(mSpec, &mHost,
> 							(lastbrk - mSpec), (brk - lastbrk));
> 						ExtractString(mSpec, &mPath,
> 							(brk - mSpec), (len - (brk - mSpec)));
> 						return NS_OK;
> 						break;
> 					case ':' : // http://user:... or http://host:...
> 					{
> // It could be http://user:pass@host/path
> // or http://host:port/path we find that by checking further...
> char* nextbrk = PL_strpbrk(brk+1, delimiters);
> if (!nextbrk) // http://host:port
> {
> 	ExtractString(mSpec, &mHost,
> 		(lastbrk-mSpec), (brk-lastbrk));
> 	mPort = ExtractPortFrom(mSpec,
> 		(lastbrk-mSpec), len - (lastbrk-mSpec));
> 	return NS_OK;
> }
> switch (*nextbrk)
> {
> 	case '/': // http://host:port/path
> 	case '?': // http://host:port?path
> 		ExtractString(mSpec, &mHost,
> 			(lastbrk-mSpec), (brk-lastbrk));
> 		mPort = ExtractPortFrom(mSpec, (brk-mSpec+1),(nextbrk-brk-1));
> 		ExtractString(mSpec, &mPath,
> 				(nextbrk-mSpec), len - (nextbrk-mSpec));
> 		return NS_OK;
> 		break;
> 	case '@': // http://user:pass@host...
> 		ExtractString(mSpec, &mPreHost,
> 			(lastbrk - mSpec), (nextbrk - lastbrk));
> 		brk = PL_strpbrk(nextbrk+1, delimiters);
> 		if (!brk) // its just http://user:pass@host
> 		{
> 			ExtractString(mSpec, &mHost,
> 				(nextbrk+1 - mSpec),
> 				len - (nextbrk+1 - mSpec));
> 			return NS_OK;
> 		}
>
> 		ExtractString(mSpec, &mHost,
> 			(nextbrk+1 - mSpec), brk - (nextbrk+1));
>
> 		switch (*brk)
> 		{
> 		case '/': // http://user:pass@host/path
> 		case '?':
> 			ExtractString(mSpec, &mPath,
> 				(nextbrk+1 - mSpec),
> 				len - (nextbrk+1 - mSpec));
> 			return NS_OK;
> 			break;
> 		case ':': // http://user:pass@host:port...
> 			lastbrk = brk;
> 			brk = PL_strpbrk(lastbrk+1, "/?");
> 			if (brk)    // http://user:pass@host:port/path
> 			{
> 				mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),(brk-lastbrk));
> 				ExtractString(mSpec, &mPath, (brk-mSpec), len - (brk-mSpec));
> 				return NS_OK;
> 			}
> 			else        // http://user:pass@host:port
> 			{
> 				mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),
> 					len - (lastbrk-mSpec));
> 				return NS_OK;
> 			}
> 			break;
> 		default: NS_POSTCONDITION(0, "This just can't be!");
> 			break;
> 		}
> 		break;
> 	case ':': // three colons!
> 		return NS_ERROR_MALFORMED_URI;
> 		break;
> 	default: NS_POSTCONDITION(0, "This just can't be!");
> 		break;
> }
> 						}
> 						break;
> 					case '@' : // http://user@host...
> 						{
> 							ExtractString(mSpec, &mPreHost,
> 								(lastbrk-mSpec), (brk-lastbrk));
> 							lastbrk = brk+1;
> 							brk = PL_strpbrk(lastbrk, delimiters);
> 							if (!brk) // its just http://user@host
> 							{
> 								ExtractString(mSpec, &mHost,
> 									(lastbrk+1 - mSpec),
> 									len - (lastbrk+1 - mSpec));
> 								return NS_OK;
> 							}
> 							ExtractString(mSpec, &mHost,
> 								(lastbrk-mSpec), (brk - lastbrk));
> 							switch (*brk)
> 							{
> 								case ':' : // http://user@host:port...
> 									lastbrk = brk+1;
> 									brk = PL_strpbrk(lastbrk, "/?");
> 									if (brk)    // http://user@host:port/path
> 									{
> 										mPort = ExtractPortFrom(mSpec,
> 											(lastbrk-mSpec),(brk-lastbrk));
> 										ExtractString(mSpec, &mPath,
> 											(brk-mSpec),
> 											len - (brk-mSpec));
> 										return NS_OK;
> 									}
> 									else        // http://user@host:port
> 									{
> 										mPort = ExtractPortFrom(mSpec,
> 											(lastbrk-mSpec),
> 											len - (lastbrk-mSpec));
> 										return NS_OK;
> 									}
> 									break;
> 								case '/' : // http://user@host/path
> 								case '?' : // http://user@host?path
> 									ExtractString(mSpec, &mPath,
> 										(brk - mSpec),
> 										len - (brk - mSpec));
> 									return NS_OK;
> 									break;
> 								case '@' :
> 									return NS_ERROR_MALFORMED_URI;
> 								default : NS_POSTCONDITION(0,
> 									"This just can't be!");
> 									break;
> 							}
> 						}
> 						break;
> 					default: NS_POSTCONDITION(0, "This just can't be!");
> 						break;
> 				}
> 			}
> 			else // This is a no // path alone case like file:/path,
> 				// there is never a prehost/host in this case.
> 			{
> 				ExtractString(mSpec, &mPath, (brk-mSpec+1),
> 					len - (brk-mSpec+1));
> 				return NS_OK;
> 			}
> 		}
> 		else // scheme:host or host:port...
> 		{
> 			lastbrk = brk+1;
>
> 			if ((*lastbrk >= '0') && (*lastbrk <= '9')) //host:port...
> 			{
> 				ExtractString(mSpec, &mHost, 0, (brk - mSpec));
> 				brk = PL_strpbrk(lastbrk, delimiters);
> 				if (!brk) // Everything else is just the port
> 				{
> 					mPort = ExtractPortFrom(mSpec, lastbrk-mSpec,
> 						len - (lastbrk-mSpec));
> 					return NS_OK;
> 				}
> 				switch (*brk)
> 				{
> 					case '/' : // The path, so its host:port/path
> 					case '?' : // The path, so its host:port?path
> 						mPort = ExtractPortFrom(mSpec, lastbrk-mSpec,
> 							brk-lastbrk);
> 						ExtractString(mSpec, &mPath, brk- mSpec,
> 							len - (brk-mSpec));
> 						return NS_OK;
> 						break;
> 					case ':' :
> 						return NS_ERROR_MALFORMED_URI;
> 						break;
> 					case '@' :
> 						// This is a special case of user:pass@host... so
> 						// Cleanout our earliar knowledge of host
> 						ExtractString(mSpec, &mHost, -1, -1);
>
> 						ExtractString(mSpec, &mPreHost, 0, (brk-mSpec));
> 						lastbrk = brk+1;
> 						brk = PL_strpbrk(lastbrk, ":/");
> 					// its user:pass@host so everthing else is just the host
> 						if (!brk)
> 						{
> 							ExtractString(mSpec, &mHost,
> 								(lastbrk-mSpec), len - (lastbrk-mSpec));
> 							return NS_OK;
> 						}
> 						ExtractString(mSpec, &mHost,
> 							(lastbrk-mSpec), (brk-lastbrk));
> 						if (*brk == ':') // user:pass@host:port...
> 						{
> 							lastbrk = brk+1;
> 							brk = PL_strpbrk(lastbrk, "/?");
> 							if (brk)    // user:pass@host:port/path
> 							{
> 								mPort = ExtractPortFrom(mSpec,
> 									(lastbrk-mSpec),(brk-lastbrk));
> 								ExtractString(mSpec, &mPath,
> 									(brk-mSpec), len - (brk-mSpec));
> 								return NS_OK;
> 							}
> 							else        // user:pass@host:port
> 							{
> 								mPort = ExtractPortFrom(mSpec,
> 									(lastbrk-mSpec),len - (lastbrk-mSpec));
> 								return NS_OK;
> 							}
> 						}
> 						else // (*brk == '/') so user:pass@host/path
> 						{
> 							ExtractString(mSpec, &mPath, (brk - mSpec),
> 								len - (brk - mSpec));
> 							return NS_OK;
> 						}
> 						break;
> 					default: NS_POSTCONDITION(0, "This just can't be!");
> 						break;
> 				}
> 			}
> 			else // scheme:host...
> 			{
> 				ExtractString(mSpec, &mScheme, 0, (brk - mSpec));
> 				brk = PL_strpbrk(lastbrk, delimiters);
> 				if (!brk) // its just scheme:host
> 				{
> 					ExtractString(mSpec, &mHost, (lastbrk-mSpec),
> 						len - (lastbrk-mSpec));
> 					return NS_OK;
> 				}
> 				switch (*brk)
> 				{
> 					case '/' : // The path, so its scheme:host/path
> 					case '?' : // The path, so its scheme:host?path
> 						ExtractString(mSpec, &mHost, (lastbrk-mSpec),
> 							(brk-lastbrk));
> 						ExtractString(mSpec, &mPath, (brk - mSpec),
> 							len - (brk - mSpec));
> 						return NS_OK;
> 						break;
> 					case '@' : // scheme:user@host...
> 						ExtractString(mSpec, &mPreHost, (lastbrk-mSpec),
> 							(brk-lastbrk));
> 						// TODO more here...
> 						break;
> 					case ':' : // scheme:user:pass@host...or scheme:host:port...
> 						/* TODO
> 						if you find @ in the remaining string
> 						then // scheme:user:pass@host...
> 						{
>
>
> 						}
> 						else // scheme:host:port
> 						{
> 							ExtractString(mSpec, &mHost, (lastbrk-mSpec),
> 								(brk-lastbrk));
> 						}
> 						*/
> 						break;
> 					default: NS_POSTCONDITION(0, "This just can't be!");
> 						break;
> 				}
> 			}
> 		}
> 		break;
> 	case '@' :
> 		//Everything before the @ is the prehost stuff
> 		ExtractString(mSpec, &mPreHost, 0, brk-mSpec);
> 		lastbrk = brk+1;
> 		brk = PL_strpbrk(lastbrk, ":/");
> 		if (!brk) // its user@host so everything else is just the host
> 		{
> 			ExtractString(mSpec, &mHost, (lastbrk-mSpec),
> 				(len - (lastbrk-mSpec)));
> 			return NS_OK;
> 		}
> 		ExtractString(mSpec, &mHost, (lastbrk-mSpec), (brk-lastbrk));
> 		if (*brk == ':') // user@host:port...
> 		{
> 			lastbrk = brk+1;
> 			brk = PL_strpbrk(lastbrk, "/?");
> 			if (brk)    // user@host:port/path
> 			{
> 				mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),(brk-lastbrk));
> 				ExtractString(mSpec, &mPath, (brk-mSpec), len - (brk-mSpec));
> 				return NS_OK;
> 			}
> 			else        // user@host:port
> 			{
> 				mPort = ExtractPortFrom(mSpec, (lastbrk-mSpec),
> 					len - (lastbrk-mSpec));
> 				return NS_OK;
> 			}
> 		}
> 		else // (*brk == '/') so user@host/path
> 		{
> 			ExtractString(mSpec, &mPath, (brk - mSpec), len - (brk - mSpec));
> 			return NS_OK;
> 		}
> 		break;
> 	default:
> 		NS_ASSERTION(0, "This just can't be!");
> 		break;
> 	}
578,580c583
<     {
<         return NS_ERROR_OUT_OF_MEMORY;
<     }
---
>         return returnValue; // ERROR!
620,626c623
< 	// TODO- Fix this. Hack to create tmp only becuz nsString can't
< 	// give us a PR_Malloc (nsCRT/nsAllocator) string
< 	char* tmp = dir.ToNewCString();
< 	if (!tmp)
< 		return NS_ERROR_OUT_OF_MEMORY;
<     mDirectory = nsCRT::strdup(tmp);
< 	delete[] tmp;
---
>     mDirectory = dir.ToNewCString();
677d673
<     nsresult status = NS_ERROR_FAILURE;
782,783c778,782
<     NS_ASSERTION(file, "This can't be! ParsePath called without a /Path");
<     if (!file) return NS_OK;
---
>     if (!file)
> 	{
> 		// Treat the whole mPath as file -- this could still have ?, # etc.
> 		file = mPath;
> 	}
788a788,790
> 	else
> 		DupString(&mDirectory, "/");
>
795,819c797
<     if (brk)
<     {
<         ExtractString(file, &mFileName, 1 /* skip the leading / */, (brk-file-1));
<         //Keep pulling out other pieces...
<         while (brk)
<         {
<             char* lastbrk = brk;
<             brk = PL_strpbrk(lastbrk+1, delimiters);
<             switch (*lastbrk)
<             {
<                 case ';' : /*
<                            ExtractString(lastbrk, &mParam, 1, (brk ? (brk-lastbrk-1) : (len - (lastbrk-file) -1)));
<                            */
<                     break;
<                 case '?' : ExtractString(lastbrk, &mQuery, 1, (brk ? (brk-lastbrk-1) : (len - (lastbrk-file) -1)));
<                     break;
<                 case '#' : ExtractString(lastbrk, &mRef, 1, (brk ? (brk-lastbrk-1) : (len - (lastbrk-file) -1)));
<                     break;
<                 default:
<                     NS_ASSERTION(0, "This just can't be!");
<                     break;
<             }
<         }
<     }
<     else // Everything in the file is just the filename
---
>     if (!brk) // Everything in the file is just the filename
822a801,821
> 	ExtractString(file, &mFileName, 1 /* skip the leading / */, (brk-file-1));
> 	//Keep pulling out other pieces...
> 	while (brk)
> 	{
> 		char* lastbrk = brk;
> 		brk = PL_strpbrk(lastbrk+1, delimiters);
> 		switch (*lastbrk)
> 		{
> 			case ';' : /*
> 					   ExtractString(lastbrk, &mParam, 1, (brk ? (brk-lastbrk-1) : (len - (lastbrk-file) -1)));
> 					   */
> 				break;
> 			case '?' : ExtractString(lastbrk, &mQuery, 1, (brk ? (brk-lastbrk-1) : (len - (lastbrk-file) -1)));
> 				break;
> 			case '#' : ExtractString(lastbrk, &mRef, 1, (brk ? (brk-lastbrk-1) : (len - (lastbrk-file) -1)));
> 				break;
> 			default:
> 				NS_ASSERTION(0, "This just can't be!");
> 				break;
> 		}
> 	}
912,915c911
< 	// TODO fix when nsString changes
< 	char* tempDirFile = temp.ToNewCString();
< 	*o_DirFile = nsCRT::strdup(tempDirFile);
< 	delete[] tempDirFile;
---
> 	*o_DirFile = temp.ToNewCString();
1999-07-27 07:40:38 +00:00
valeski%netscape.com 2316686429 this dir is not in any builds. removed the unwanted AsyncConvertSTream method. now we support one sync conversion method, and one async 1999-07-27 03:25:57 +00:00
hoa.nguyen%intel.com 30774b9c9e Removed backed out change which added dns/daemon to build. Need to test on Windows and Mac build first. 1999-07-27 02:56:36 +00:00
hoa.nguyen%intel.com 76e62584cf Added dns/daemon to makefiles 1999-07-27 02:44:16 +00:00
gordon%netscape.com 22715d631f Find proper resource directory for Mac, rather than /usr/local/netscape/bin. 1999-07-27 01:11:03 +00:00
gagan%netscape.com 0b54a9d025 Necko only. Added a missing trailing newline. 1999-07-26 22:44:22 +00:00
valeski%netscape.com 0aa4b40d49 stream converter interface changes. the sync and 2nd async methods are now implemented by the service too 1999-07-26 22:12:05 +00:00
dougt%netscape.com 5adb63dcaf Fix for bug 10177 and 10041. 1999-07-26 22:09:42 +00:00
hoa.nguyen%intel.com 2ff37fbe4e Standalone daemon process to handle async DNS lookup on Unix/Linux. 1999-07-26 21:25:00 +00:00
hoa.nguyen%intel.com af36f5dd52 Makefile for DNS daemon process. 1999-07-26 21:23:24 +00:00
beard%netscape.com a0521b8805 Makes resource URLs work, by special-casing "/usr/local/netscape/bin" on the Mac. This should probably be moved elsewhere, but works for now. 1999-07-25 18:39:41 +00:00
beard%netscape.com edf11af6ff First Checked In. 1999-07-25 18:35:34 +00:00
valeski%netscape.com 748a1853fe necko - we now set the user agent by default 1999-07-25 13:54:47 +00:00
sdagley%netscape.com f2f9874640 Removed mime component from main newterk and put it into its own project. 1999-07-25 01:39:44 +00:00
sdagley%netscape.com 83177199fa First Checked In. 1999-07-25 01:37:42 +00:00
ducarroz%netscape.com 43cdf18964 First Checked In. 1999-07-24 20:50:35 +00:00
warren%netscape.com 26a8529775 Removed about:blank joke. 1999-07-23 20:11:02 +00:00
gordon%netscape.com de06f1d4be File Removed. 1999-07-23 19:39:04 +00:00
valeski%netscape.com f3f12e6a64 necko only - added temporary user agent string creation code 1999-07-23 16:35:53 +00:00
valeski%netscape.com c7f0110854 necko only - fixed some miss-matched memory deallocations, and pulled an extraneous addref/release combo 1999-07-23 16:35:13 +00:00
gordon%netscape.com c1251fd4a9 Mac-NECKO-only checkin. Added nsIStreamConverter2.idl to netwerkIDL.mcp project, as per Scott MacGregor's request. 1999-07-23 07:09:36 +00:00
mscott%netscape.com 26a3b9cd3b necko only:
Added the "hack" which can be turned off by undefining STREAM_CONVERTER_HACK. Basically, if we are reading in an rfc822
file we insert a stream converter between the file channel and the consumer of the file channel. the file channel
then talks to the converter which talks to the end consumer.

Made the file channel honor the number of bytes read parameter which gets passed in on AsyncRead. We now cancel the read
after we've read in the desired # of bytes.

fixed two file parsing bugs: one in Init and one in GetContenttype
1999-07-23 06:16:37 +00:00
pinkerton%netscape.com 9b0acc807e fix access paths to find timer in widget instead of gfx. all targets updated. 1999-07-23 06:06:19 +00:00
mscott%netscape.com 95219aea51 export nsIStreamConverter2.idl 1999-07-23 05:50:32 +00:00
mscott%netscape.com 912123a982 generate header file for nsIStreamConverter2.idl 1999-07-23 05:49:07 +00:00
mscott%netscape.com d37058008e this used to be mailnews\mime\public\nsIStreamConverter.idl but it needs to be moved out of mailnews as it is generic
and not specific to mailnews. The final resting place for this file will be netwerk\streamcnvts\public but that
directory isn't buildable yet so I'm moving it here for safe keeping. The name (the 2 part) is lame but it conflicted
with a file Jud is addding to streamconv (nsIStreamConverter). Don't worry..eventually the two interfaces
are going to be merged into one.
1999-07-23 05:48:27 +00:00
gordon%netscape.com f1a158016a Added nsTimer.cpp and nsRepeater.cpp for the purposes of landing NECKO. This most closely approximates the functionality of the old NetLib, so it required the least amount of changes. We can figure out the ultimate resting place for these files after NECKO lands. 1999-07-23 05:24:28 +00:00
gordon%netscape.com c932b5eea5 Export functions on Mac (only) because it builds Netwerk Util as a shared library, not as static as on the other platforms. 1999-07-23 01:50:58 +00:00
gordon%netscape.com d8313c8a56 Added nsHTTPEncodeStream.cpp. 1999-07-23 01:03:15 +00:00
gordon%netscape.com dd4ca602e8 Added nsIHTTPProtocolHandler.idl. 1999-07-23 00:56:23 +00:00
gordon%netscape.com eb898b8540 Removed nsStandardUrl.cpp and added nsStdURL.cpp. Changed prefix header of debug target to actually use debug header file (Thanks Scott). 1999-07-23 00:43:07 +00:00
valeski%netscape.com 86906715b9 changed stream converter progid root and provided more in depth usage notes 1999-07-22 23:59:32 +00:00
andreas.otte%primus-online.de 7614fb74cc adding the new streamconv makefiles 1999-07-22 21:39:04 +00:00
andreas.otte%primus-online.de cbc124a0a4 some ignorance 1999-07-22 21:38:22 +00:00
valeski%netscape.com 7c9e239166 stream converter graph construction now happens when a direct path is not accessible, and is built up by enumerating stream converter subkeys from the registry 1999-07-22 21:24:58 +00:00
gagan%netscape.com ac23409abc Replaced nsStandardUrl with nsStdURL. 1999-07-22 21:19:15 +00:00
gagan%netscape.com b44058b222 Changes for the standard URL parsing. Added SetRelativePath. Cleaned up the deletions (all thru nsCRT now) Added functionality for Query and Ref portions of the Path. Added DirFile function to nsIURL to allow just Directory and the Filename. Misc. cleanups as well. 1999-07-22 21:14:51 +00:00
mscott%netscape.com 0e4d1c20f7 Necko only: Change the library name to mimetype instead of mime. we were overwriting a mailnews library which had the same name. 1999-07-22 20:09:22 +00:00
mscott%netscape.com 99170f793f Necko only: change the name of the mime type dll to be mimetype.dll instead of mime.dll. mime.dll was over-writing
the mailnews mime.dll.
1999-07-22 20:05:33 +00:00
valeski%netscape.com 81f815e9aa adding stream converter code 1999-07-22 19:11:33 +00:00
tbogard%aol.net fc1c23671b Fixing Necko build bustage. 1999-07-22 03:33:49 +00:00
tbogard%aol.net 8f76874619 Looks like I missed a header for the nsCStringKey -> nsStringKey change. 1999-07-22 02:47:39 +00:00
tbogard%aol.net 8fced9fa19 Changed nsCStringKey to nsStringKey. This new key now has the ability to hash on PRUnichar* strings as well as char* strings. 1999-07-22 02:11:04 +00:00
gagan%netscape.com 14c1cb2c49 Replaced resource:// with resource:/ to be more compliant with our parsing rules. 1999-07-21 11:48:56 +00:00
warren%netscape.com ab34582f5b Added encode flags. 1999-07-21 07:05:12 +00:00
warren%netscape.com 568cf0dedf Working on NS_NewPostDataStream -- doesn't work yet though. 1999-07-21 05:53:25 +00:00
mscott%netscape.com 824bad82e8 we were always returning text/html as the content type for any page using the http channel!!!! this was preventing us from
properly loading rdf files from the web (particularly the tinderbox page for the flash panel). Only use the default
dummy type if we weren't able to extract a legitimate content type from the header.
1999-07-20 22:44:24 +00:00
valeski%netscape.com 7126bb1563 added notification progids 1999-07-20 21:54:40 +00:00
valeski%netscape.com 3373348387 using more appropriate notification progids 1999-07-20 20:44:02 +00:00
mscott%netscape.com ff5d0893fc Necko only!!! Fix build breakage for clobber builds by removing reference to nsIHTTPHandler.h
which is no longer being exported.
1999-07-20 18:46:34 +00:00
warren%netscape.com 1dd4c2627a Fixed query/ref problem. 1999-07-20 08:46:35 +00:00
warren%netscape.com bf8423a769 Changed around load group insertion/removal to happen on mozilla thread. 1999-07-20 08:46:33 +00:00