client_manager: add API for async operations
[oweals/gnunet.git] / src / include / block_regex.h
index 73d7b70a5feab17fda9b8ed734ecf08870a71277..7b262548ebcf099707f19ca31e97f301a6989e84 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2012,2013 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2012,2013 Christian Grothoff (and other contributing authors)
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -43,65 +43,36 @@ GNUNET_NETWORK_STRUCT_BEGIN
 
 
 /**
- * @brief A RegexBlock contains one or more of this struct in the payload.
- */
-struct RegexEdge
-{
-  /**
-   * Destination of this edge.
-   */
-  struct GNUNET_HashCode key;
-  
-  /**
-   * Length of the token towards the new state.
-   */
-  uint32_t n_token GNUNET_PACKED;
-
-  /* char token[n_token] */
-};
-
-
-/**
- * @brief Block to announce a regex state.
+ * @brief Block to announce a peer accepting a state.
  */
-struct RegexBlock
+struct RegexAcceptBlock
 {
 
   /**
-   * Length of the proof regex string.
+   * Accept blocks must be signed.  Signature
+   * goes over expiration time and key.
    */
-  uint16_t proof_len GNUNET_PACKED;
+  struct GNUNET_CRYPTO_EccSignaturePurpose purpose;
 
   /**
-   * Is this state an accepting state?
+   * When does the signature expire?
    */
-  int16_t is_accepting GNUNET_PACKED;
+  struct GNUNET_TIME_AbsoluteNBO expiration_time;
 
-  /**
-   * Numer of edges parting from this state.
-   */
-  uint32_t n_edges GNUNET_PACKED;
-
-  /* char proof[n_proof] */
-  /* struct RegexEdge edges[n_edges] */
-};
-
-
-/**
- * @brief Block to announce a peer accepting a state.
- */
-struct RegexAccept
-{
   /**
    * The key of the state.
    */
   struct GNUNET_HashCode key;
-  
+
   /**
-   * The identity of the peer accepting the state
+   * Public key of the peer signing.
    */
-  struct GNUNET_PeerIdentity id;
+  struct GNUNET_PeerIdentity peer;
 
+  /**
+   * The signature.
+   */
+  struct GNUNET_CRYPTO_EddsaSignature signature;
 };