-
-/* success = 0, -1 = couldn't connect, -2 HTTP error, -3 file exists, -4 couldn't write to file... */
-/* uri: like "/uri.html?whatever" */
-/* only reason for the "wrapper" is so we can do redirects. */
-int a_http_download_get_url ( const char *hostname, const char *uri, const char *fn )
-{
- return http_download_get_url ( hostname, uri, fn, 0, 1 );
-}
-
-int a_http_download_get_url_nohostname ( const char *hostname, const char *uri, const char *fn )
-{
- return http_download_get_url ( hostname, uri, fn, 0, 0 );
-}
-
-
-int usgs_hack ( const char *scale_factor, const char *uri, const char *fn )
-{
- static char input_buffer[1024];
- int sock;
- /* int hnlen = strlen ( scale_factor ); */
-
-#ifdef WINDOWS
- WSADATA usadata;
- WSAStartup ( MAKEWORD(2,2), &usadata );
-#endif
-
- sock = http_connect ( scale_factor, 80 );
- if (sock < 0)
- return -1;
-
- send ( sock, "GET /", 5, 0);
- send ( sock, uri, strlen ( uri ), 0 );
- send ( sock, " HTTP/1.0\r\n\r\n", 13, 0 );
-
- /* next, skip through all headers EXCEPT content length.,
- that is, if it begins with "Content-Length: " (strncasecmp),
- atoi that line from +16 (+17 ?), read that many bytes directly
- into file (IF we can open it, else return error) and we're done.
- */
-
- /* "HTTP/1.x 200 OK" check */
- for (;;) {
- if ( http_get_line ( sock, input_buffer, 1024 ) == 0 )
- break;
-
- if ( strncmp(input_buffer, "\t\t\t<img src=\"/g", 15) == 0 && strlen(input_buffer) > 28 )
- {
- char *uri = input_buffer + 13;
- close(sock);
- uri[strlen(uri)-4] = '\0';
- return a_http_download_get_url_nohostname ( scale_factor, uri, fn );
- }
- }
- close ( sock );
-#ifdef WINDOWS
- WSACleanup(); /* they sure make winsock programming easy. */
-#endif
- return -10;
-}