/usr/share/ada/adainclude/aws/aws-client-hotplug.adb is in libaws2.10.2-dev 2.10.2-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | ------------------------------------------------------------------------------
-- Ada Web Server --
-- --
-- Copyright (C) 2004-2009, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or modify --
-- it under the terms of the GNU General Public License as published by --
-- the Free Software Foundation; either version 2 of the License, or (at --
-- your option) any later version. --
-- --
-- This library is distributed in the hope that it will be useful, but --
-- WITHOUT 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 --
-- along with this library; if not, write to the Free Software Foundation, --
-- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. --
-- --
------------------------------------------------------------------------------
with GNAT.MD5;
with AWS.Communication.Client;
with AWS.Digest;
with AWS.Messages;
with AWS.Server.Hotplug;
with AWS.URL;
package body AWS.Client.Hotplug is
--------------
-- Register --
--------------
function Register
(Name : String;
Password : String;
Server : String;
Regexp : String;
URL : String) return Response.Data
is
use type Messages.Status_Code;
Srv : AWS.URL.Object;
Response : AWS.Response.Data;
Digest : AWS.Digest.Digest_String;
begin
Srv := AWS.URL.Parse (Server);
-- Ask the server for a Nonce string
Response := Communication.Client.Send_Message
(AWS.URL.Host (Srv), AWS.URL.Port (Srv),
AWS.Server.Hotplug.Request_Nonce_Message,
Communication.Parameters (Name));
if AWS.Response.Status_Code (Response) /= Messages.S200 then
return Response;
end if;
-- Send registration with a digest encoded using the server Nonce
declare
Nonce : constant String := AWS.Response.Message_Body (Response);
begin
Digest := AWS.Digest.Create
(Name, "hotplug",
GNAT.MD5.Digest (Name & ":aws:" & Password),
Nonce, "hotplug", Regexp);
return AWS.Communication.Client.Send_Message
(AWS.URL.Host (Srv), AWS.URL.Port (Srv),
AWS.Server.Hotplug.Register_Message,
Communication.Parameters (Name, Digest, Regexp, URL));
end;
exception
when AWS.URL.URL_Error =>
return AWS.Response.Acknowledge (Messages.S400, "Server URL error");
end Register;
----------------
-- Unregister --
----------------
function Unregister
(Name : String;
Password : String;
Server : String;
Regexp : String) return Response.Data
is
use type Messages.Status_Code;
Srv : AWS.URL.Object;
Response : AWS.Response.Data;
Digest : AWS.Digest.Digest_String;
begin
Srv := AWS.URL.Parse (Server);
-- Ask the server for a Nonce string
Response := AWS.Communication.Client.Send_Message
(AWS.URL.Host (Srv), AWS.URL.Port (Srv),
AWS.Server.Hotplug.Request_Nonce_Message,
Communication.Parameters (Name));
if AWS.Response.Status_Code (Response) /= Messages.S200 then
return Response;
end if;
-- Send unregister message with a digest encoded using the server Nonce
declare
Nonce : constant String := AWS.Response.Message_Body (Response);
begin
Digest := AWS.Digest.Create
(Name, "hotplug",
GNAT.MD5.Digest (Name & ":aws:" & Password),
Nonce, "hotplug", Regexp);
return AWS.Communication.Client.Send_Message
(AWS.URL.Host (Srv), AWS.URL.Port (Srv),
AWS.Server.Hotplug.Unregister_Message,
Communication.Parameters (Name, Digest, Regexp));
end;
exception
when AWS.URL.URL_Error =>
return AWS.Response.Acknowledge (Messages.S400, "Server URL error");
end Unregister;
end AWS.Client.Hotplug;
|