------------------------------------------------------------------------------ -- sepheaders.adb -- -- Copyright (C) 2003 Andreas Almroth -- -- -- -- AdacURL is free software; you can redistribute it and/or modify it -- -- under terms of the GNU General Public License as published by the Free -- -- Software Foundation; either version 2, or (at your option) any later -- -- version. AdacURL is distributed in the hope that it will be useful, -- -- but WITH OUT ANY WARRANTY; without even the implied warranty of -- -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General -- -- Public License for more details. You should have received a copy of the -- -- GNU General Public License distributed with AdacURL; see file COPYING. -- -- If not, write to the Free Software Foundation, 59 Temple Place - -- -- Suite 330, Boston, MA 02111-1307, USA. -- -- -- -- As a special exception, if other files instantiate generics from this -- -- unit, or you link this unit with other files to produce an executable, -- -- this unit does not by itself cause the resulting executable to be -- -- covered by the GNU General Public License. This exception does not -- -- however invalidate any other reasons why the executable file might be -- -- covered by the GNU Public License. -- -- -- ------------------------------------------------------------------------------ -- $Author: Andreas Almroth $ -- $Date: 03-07-29 17:15 $ -- $Workfile: sepheaders.adb $ -- $Revision: 1 $ -- $State: Unstable $ -- -- HISTORY: -- -- Revision 1: Initial release -- -- sepheaders.adb is based on the sepheaders.c sample file with System; use System; with Adacurl; use Adacurl; with Adacurl.easy; use Adacurl.Easy; with Interfaces.C; use Interfaces.C; with Interfaces.C.Strings; use Interfaces.C.Strings; with Curl_Callbacks; use Curl_Callbacks; procedure Sepheaders is function fopen(Name : chars_ptr; Mode : Chars_Ptr) return File_P; pragma Import(C,fopen,"fopen"); function fclose(Stream : File_P) return Int; pragma Import(C,fclose,"fclose"); Curl : CURL_P; Res : CURLcode; Str : Chars_Ptr := New_String("www.almroth.com"); Headerfilename : Chars_Ptr := New_String("head.out"); Headerfile : FILE_P; Bodyfilename : Chars_Ptr := New_String("body.out"); Bodyfile : FILE_P; Rc : Int; begin Curl := Curl_Easy_Init; Res := Curl_Easy_Setopt(Curl,CURLOPT_URL,New_String("www.almroth.com")); Res := Curl_Easy_Setopt(Curl,CURLOPT_NOPROGRESS,1); Res := Curl_Easy_Setopt(Curl,CURLOPT_MUTE,1); Res := Curl_Easy_Setopt(Curl,CURLOPT_WRITEFUNCTION,Write_Data'Access); Headerfile := Fopen(Headerfilename,New_String("w")); if Headerfile = System.Null_Address then Curl_Easy_Cleanup(Curl); return; end if; Bodyfile := Fopen(Bodyfilename,New_String("w")); if Bodyfile = System.Null_Address then Curl_Easy_Cleanup(Curl); return; end if; Res := Curl_Easy_Setopt(Curl,CURLOPT_WRITEHEADER,headerfile); Res := Curl_Easy_Setopt(Curl,CURLOPT_WRITEDATA,bodyfile); Res := Curl_Easy_Perform(Curl); Rc := Fclose(Headerfile); Rc := Fclose(Bodyfile); Curl_Easy_Cleanup(Curl); end Sepheaders;