This file is indexed.

/usr/share/ada/adainclude/anet/anet-sockets-thin.ads is in libanet0.3.1-dev 0.3.1-1ubuntu1.

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
--
--  Copyright (C) 2011, 2012 secunet Security Networks AG
--  Copyright (C) 2011-2014  Buerki <reet@codelabs.ch>
--  Copyright (C) 2011-2014  Adrian-Ken Rueegsegger <ken@codelabs.ch>
--
--  This program 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.  See <http://www.fsf.org/copyleft/gpl.txt>.
--
--  This program 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.
--
--  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.
--

with System;

package Anet.Sockets.Thin is

   type IPv4_Mreq_Type is record
      Imr_Multiaddr : IPv4_Addr_Type;
      Imr_Interface : IPv4_Addr_Type;
   end record;
   pragma Convention (C, IPv4_Mreq_Type);
   --  struct ip_mreq (netinet/in.h).

   type IPv6_Mreq_Type is record
      IPv6mr_Multiaddr : IPv6_Addr_Type;
      IPv6mr_Interface : Interfaces.C.unsigned;
   end record;
   pragma Convention (C, IPv6_Mreq_Type);
   --  struct ipv6_mreq (netinet/in.h).

   -------------
   -- Imports --
   -------------

   function C_Socket
     (Domain   : Interfaces.C.int;
      Typ      : Interfaces.C.int;
      Protocol : Interfaces.C.int)
      return Interfaces.C.int;
   pragma Import (C, C_Socket, "socket");

   function C_Bind
     (S       : Interfaces.C.int;
      Name    : System.Address;
      Namelen : Interfaces.C.unsigned_long)
      return Interfaces.C.int;
   pragma Import (C, C_Bind, "bind");

   function C_Connect
     (S       : Interfaces.C.int;
      Name    : System.Address;
      Namelen : Interfaces.C.unsigned_long)
      return Interfaces.C.int;
   pragma Import (C, C_Connect, "connect");

   function C_Recv
     (S     : Interfaces.C.int;
      Msg   : System.Address;
      Len   : Interfaces.C.size_t;
      Flags : Interfaces.C.int)
      return Interfaces.C.long;
   pragma Import (C, C_Recv, "recv");

   function C_Recvfrom
     (S       : Interfaces.C.int;
      Msg     : System.Address;
      Len     : Interfaces.C.size_t;
      Flags   : Interfaces.C.int;
      From    : System.Address;
      Fromlen : not null access Interfaces.C.int)
      return Interfaces.C.long;
   pragma Import (C, C_Recvfrom, "recvfrom");

   function C_Send
     (S     : Interfaces.C.int;
      Buf   : System.Address;
      Len   : Interfaces.C.size_t;
      Flags : Interfaces.C.int)
      return Interfaces.C.long;
   pragma Import (C, C_Send, "send");

   function C_Sendto
     (S     : Interfaces.C.int;
      Buf   : System.Address;
      Len   : Interfaces.C.size_t;
      Flags : Interfaces.C.int;
      To    : System.Address;
      Tolen : Interfaces.C.unsigned_long)
      return Interfaces.C.long;
   pragma Import (C, C_Sendto, "sendto");

   function C_Setsockopt
     (S       : Interfaces.C.int;
      Level   : Interfaces.C.int;
      Optname : Interfaces.C.int;
      Optval  : System.Address;
      Optlen  : Interfaces.C.unsigned_long)
      return Interfaces.C.int;
   pragma Import (C, C_Setsockopt, "setsockopt");

   function C_Accept
     (S       : Interfaces.C.int;
      Name    : System.Address;
      Namelen : not null access Interfaces.C.int)
      return Interfaces.C.int;
   pragma Import (C, C_Accept, "accept");

   function C_Listen
     (Socket  : Interfaces.C.int;
      Backlog : Interfaces.C.int)
      return Interfaces.C.int;
   pragma Import (C, C_Listen, "listen");

   function C_Close (Fd : Interfaces.C.int) return Interfaces.C.int;
   pragma Import (C, C_Close, "close");

end Anet.Sockets.Thin;