We've been using the GoAhead web server for several years, and recently we've had to fix a few bugs in it (the keep-alive support broke if you used .asp pages). The SSL support is also somewhat broken, and I'm about to start work on fixing that as well.
The GoAhead NNTP server no longer seems to be accessible, and I've gotten no responses to queries submitted to GoAhead via their web page.
I was hoping I could submit patches and get some advice on how to fix the SSL support, but GoAhead seems to have gone dark. Has anybody heard anything from/about GoAhead recently?
--
Grant Edwards grante Yow! How do I get HOME?
at
It seems like the guy that created goahead moved to his own busines project:
formatting link
You will not get support from the company currently holding goahead. use the goahead server on lynxos with flash flex to render the client gui. I'm also going attempt to integrate ssl support using openssl as well i the next month.
The things i don't like about goahead:
- no business support
- no built in session support [session cookies]
- not multithreaded .. can cause timeouts to users if there ar simultenously connected users.
- doesn't support fileupload rfc1867
- also microsoft says the data returned by goahead is malformed so its no http ... whatever compliant. When i instantiate "new WebClient"
but the company i'm in wants to use it.....
other embedded webserver providers
formatting link
formatting link
- looks like a solid product by the documentatio written in c++
I don't want to "get support", I want to give it. ;)
I've fixed the support for for keep-alive, and also fixed some problems that came up when trying to use it in "just SSL" mode. Now I'm trying to figure out where I should send patches.
That wasn't the case when we chose it. :/
None of those are issues for us.
I've seen examples of file upload using GoAhead, but I guess I don't know if they're RFC1867 compliant. Adding support for file upload is on my list of things to do for my current project, so I'll probably find out...
We've been using it for many years, and it works well enough for what we need to do. In the past, I've submitted patches to GoAhead, but it doesn't appear that they're accepting them any more.
I know there are new products coming out that are using the GoAhead web server (I just bought a new wireless AP that uses it), so I was hoping there was an "official" source tree somewhere that would accept fixes/patches.
--
Grant Edwards grante Yow! I feel like I'm
at in a Toilet Bowl with a
when handling file upload make sure to test uploads with large files. browsers do not send the whole file in 1 request you have intermediat requests asking for the next buffer size until your reached your conten length.
lastly although goahead doesn't provide an api to provide easy access t sessions ... it does let you read/write headers manually so you can code u a solution your self.
this project will fit better in sourceforge [forum/feature request/svn .ect] ... you won't be violating anything as long as you attach ther license, make the project gpl, and begin to distinguish you modifications.
although in todays age... creating a webserver isn't that difficult
Event-Based Programming: Taking Events to the Limit (Paperback) - writes an event based one [provides complete source]
formatting link
[ ssl integration - full source mi license]
let me know if you plan on going on your own i wouldn't mind contributing
The files that I'll be uploading are only a few hundred bytes long, but I'll keep that in mind anyway.
We don't have any need for sessions.
Something that serves up files certainly isn't difficult. Handling forms isn't very hard either. The server-side java-script interpreter is probably the tricky bit. We've been using GoAhead for quite a while (7 years?), and we don't really have any motivation to change.
--
Grant Edwards grante Yow! I think I'll make
at SCRAMBLED EGGS!! They're
Hi! By chance I'm looking at the keep-alive support in GoAhead. We have 2.1.8 with a few patches. Keep-alive seems to be broken in combination with SSL also. Would you be weilling to share the keep-alive fix?
Regards, Martin martin dot carlsson at transmode dot se
A couple weeks ago I was in contact with somebody from GoAhead, and while they are no longer supporting the product, they would be happy if somebody wanted to set up a sourceforge project so that the users could have a central place to submit patches.
They don't have anybody on staff with time to admin the SF project, but perhaps if a few users were to step forward, we could get things going. Anybody interested in helping out?
Right now the best place for support info is the wiki at
formatting link
There are a couple problems with keep-alive in the goahead server. NB: Line numbers probably don't match any body else's files due to formatting changes and various other hackage.
1) The server enables keep-alive even when there's no content-length header for the page it's serving. That's a no-no: since the server doesn't close the connection, the client has no way to know the page ended and will wait until the connection times out.
The fix for that is in websDefaultHandler() in default.c: 179 if (bytes) { 180 websWrite(wp, T("Content-length: %d\r\n"), bytes); 181 websSetRequestBytes(wp, bytes); 182 } else { 183 // can't do keep-alive without a content-length header 184 flags &= ~WEBS_KEEP_ALIVE; 185 wp->flags &= ~WEBS_KEEP_ALIVE; 186 }
2) The server contains code to always close the connection at the end of a served page when the link is secure. I've absolutely no idea why this is done. That's in webs.c in the function websDone(). Here's the fix for that:
2203 /* 2204 * Close any opened document by a handler 2205 */ 2206 websPageClose(wp); 2207 2208 #if 0 2209 // I've no idea why this code was here. Keep alive support seems 2210 // to work fine for secure connections. 2211 /* 2212 * Exit if secure. 2213 */ 2214 #ifdef WEBS_SSL_SUPPORT 2215 if (wp->flags & WEBS_SECURE) 2216 { 2217 websTimeoutCancel(wp); 2218 websSSLFlush(wp->wsp); 2219 websSSLShutdown(wp->wsp); 2220 socketCloseConnection(wp->sid); 2221 websFree(wp); 2222 return; 2223 } 2224 #endif 2225 #endif 2226 /* 2227 * If using Keep Alive (HTTP/1.1) we keep the socket open for a period 2228 * while waiting for another request on the socket. 2229 */ 3) There's code that arbitrarily disables keep-alive for certain response types because some fouled-up ancient version of IE is broken. Get rid of that bit of brokenness by deleting whats shown as lines 1493-1496 at the beginning of websResponse() in webs.c:
1481 /******************************************************************************/ 1482 /* 1483 * Output a HTTP response back to the browser. If redirect is set to a 1484 * URL, the browser will be sent to this location. 1485 */ 1486 1487 void websResponse(webs_t wp, int code, char_t *message, char_t
*redirect) 1488 { 1489 char_t *date; 1490 1491 a_assert(websValid(wp)); 1492 1493 /* 1494 * IE3.0 needs no Keep Alive for some return codes. 1495 */ 1496 wp->flags &= ~WEBS_KEEP_ALIVE; 1497
--
Grant Edwards grante Yow! HAIR TONICS, please!!
at
Just wanted to clarify that for now if you have any code changes to submit you can contact GoAhead via the
formatting link
website on the "contact us" page at
formatting link
Someone will get back with you to at least collect any changes in the interim. At some point we (GoAhead) would also like to provide the source on SourceForge, as Grant mentioned above. This will benefit users in the community that are using it currently. As there is no current publlic location for the community today.
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.