block_dns.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /*
  2. This file is part of GNUnet.
  3. Copyright (C) 2013 GNUnet e.V.
  4. GNUnet is free software: you can redistribute it and/or modify it
  5. under the terms of the GNU Affero General Public License as published
  6. by the Free Software Foundation, either version 3 of the License,
  7. or (at your option) any later version.
  8. GNUnet is distributed in the hope that it will be useful, but
  9. WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  11. Affero General Public License for more details.
  12. You should have received a copy of the GNU Affero General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>.
  14. SPDX-License-Identifier: AGPL3.0-or-later
  15. */
  16. /**
  17. * @author Christian Grothoff
  18. *
  19. * @file
  20. * DNS network structs
  21. *
  22. * @defgroup block-dns DNS Service network protocol definitions
  23. * @{
  24. */
  25. #ifndef BLOCK_DNS_H
  26. #define BLOCK_DNS_H
  27. #include "gnunet_util_lib.h"
  28. GNUNET_NETWORK_STRUCT_BEGIN
  29. /**
  30. * This is the structure describing an DNS exit service.
  31. */
  32. struct GNUNET_DNS_Advertisement
  33. {
  34. /**
  35. * Signature of the peer affirming that it is offering the service.
  36. */
  37. struct GNUNET_CRYPTO_EddsaSignature signature;
  38. /**
  39. * Beginning of signed portion of the record, signs everything until
  40. * the end of the struct.
  41. */
  42. struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
  43. /**
  44. * When does this signature expire?
  45. */
  46. struct GNUNET_TIME_AbsoluteNBO expiration_time;
  47. /**
  48. * The peer providing this service
  49. */
  50. struct GNUNET_PeerIdentity peer;
  51. };
  52. GNUNET_NETWORK_STRUCT_END
  53. #endif
  54. /** @} */ /* end of group */