Sender: ab AT bspu DOT unibel DOT by Message-ID: <3801EC95.41F88309@bspu.unibel.by> Date: Mon, 11 Oct 1999 16:56:37 +0300 From: Alexander Bokovoy Organization: BSPU named after Maxim Tank X-Mailer: Mozilla 4.61 [en] (X11; I; Linux 2.2.11 i586) X-Accept-Language: en MIME-Version: 1.0 To: djgpp AT delorie DOT com Subject: Re: Question regarding CGI References: <199910110416 DOT HAA05344 AT ankara DOT Foo DOT COM> Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 7bit Reply-To: djgpp AT delorie DOT com "S. M. Halloran" wrote: > > > > > Been using djgpp for a little while now on windows nt. > > Today I decided to try to write a CGI application to use via > > Windows NT's Peer web service's web server. The code ( fairly > > simplistic, included below ). I get an error when I try to run > > it, claiming that the application didn't return the proper http > > headers, it then includes nothing as the error. > > I compiled the same code under Visual C++ on my work PC, and > > it runs fine... what gives ? > > > > I couldn't find any references to CGI or problems related to it > > in the DJGPP FAQ. > > > > TIA ! > > > > > > - Bub > > > > /*----------- foo.c -------------------- > > cgi app that prints blah blah in red > > */ > > > > #include > > > > int > > main(int argc, char **argv) > > { > > fprintf(stdout,"Content-Type: text/html\n\n"); > ^^^^^ > Try this: "Content-Type: text/html\r\n\r\n" > Read the RFCs on HTTP 1.0 and 1.1 so that you understand why. > > You should also be aware of your server's capabilities. The server must lead > the response to the client with a 3-digit code and an optional message, > followed by valid HTTP headers, and then the message body. If your CGI app is > expected to supply all headers and the server merely transfers the output, you > may have to supply an entire response that conforms with HTTP. If so, then > know the spec. > > The Visual C++ compiler may be translating the '\n' as '\r\n' for you. Try > this: instead of stdout, save to a file the DJGPP- and Visual C++ output and > look at it with a binary editor (such as MS-DOS Edit with the 'open binary' > checked). The main problem is that most of Windows HTTP-servers could not execute DOS-based CGIs. DJGPP is not an environment that can be used for CGI programming under Windows. Use CygWin instead. -- Sincerely yours, Alexander Bokovoy