gns.h   gns.h 
skipping to change at line 21 skipping to change at line 21
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details. General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with GNUnet; see the file COPYING. If not, write to the along with GNUnet; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 59 Temple Place - Suite 330, Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. Boston, MA 02111-1307, USA.
*/ */
#include "gnunet_gns_service.h"
/** /**
* @file gns/gns.h * @file gns/gns.h
* @brief IPC messages between GNS API and GNS service * @brief IPC messages between GNS API and GNS service
* @author Martin Schanzenbach * @author Martin Schanzenbach
*/ */
#ifndef GNS_H #ifndef GNS_H
#define GNS_H #define GNS_H
#define GNUNET_GNS_TLD "gnunet"
#define GNUNET_GNS_TLD_ZKEY "zkey"
#define GNUNET_GNS_DHT_MAX_UPDATE_INTERVAL 3600
#define MAX_DNS_LABEL_LENGTH 63
#define MAX_DNS_NAME_LENGTH 253
GNUNET_NETWORK_STRUCT_BEGIN GNUNET_NETWORK_STRUCT_BEGIN
/** /**
* Message from client to GNS service to lookup records. * Message from client to GNS service to lookup records.
*/ */
struct GNUNET_GNS_ClientLookupMessage struct GNUNET_GNS_ClientLookupMessage
{ {
/** /**
* Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_LOOKUP * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_LOOKUP
*/ */
struct GNUNET_MessageHeader header; struct GNUNET_MessageHeader header;
/** /**
* A key. TODO some uid * Unique identifier for this request (for key collisions).
*/ */
GNUNET_HashCode key; uint32_t id GNUNET_PACKED;
/** /**
* Unique identifier for this request (for key collisions). * Should we look up in the default zone?
*/ */
// FIXME: unaligned uint32_t use_default_zone GNUNET_PACKED;
uint64_t unique_id;
/**
* If use_default_zone is empty this zone is used for lookup
*/
struct GNUNET_CRYPTO_ShortHashCode zone;
/** /**
* the type of record to look up * the type of record to look up
*/ */
// FIXME: bad type - should be of GNUNET_GNS_RecordType enum GNUNET_GNS_RecordType type;
int type;
/* Followed by the name to look up */ /* Followed by the name to look up */
}; };
/** /**
* Message from GNS service to client: new results. * Message from GNS service to client: new results.
*/ */
struct GNUNET_GNS_ClientResultMessage struct GNUNET_GNS_ClientLookupResultMessage
{ {
/** /**
* Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_RESULT * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_RESULT
*/ */
struct GNUNET_MessageHeader header; struct GNUNET_MessageHeader header;
/** /**
* Unique identifier for this request (for key collisions). * Unique identifier for this request (for key collisions).
*/ */
// FIXME: unaligned uint32_t id GNUNET_PACKED;
uint64_t unique_id;
/** /**
* A key. TODO some uid * The number of records contained in response
* // FIXME: why hash?
*/ */
GNUNET_HashCode key; uint32_t rd_count;
// FIXME: what format has a GNS_Record?
/* followed by rd_count GNUNET_NAMESTORE_RecordData structs*/
};
/**
* Message from client to GNS service to shorten names.
*/
struct GNUNET_GNS_ClientShortenMessage
{
/** /**
* The number of records contained in response * Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN
*/ */
uint32_t num_records; struct GNUNET_MessageHeader header;
// FIXME: what format has a GNS_Record? /**
/* followed by num_records GNUNET_GNS_Records*/ * Unique identifier for this request
*/
uint32_t id GNUNET_PACKED;
/**
* Should we look up in the default zone?
*/
uint32_t use_default_zone GNUNET_PACKED;
/**
* If use_default_zone is empty this zone is used for lookup
*/
struct GNUNET_CRYPTO_ShortHashCode zone;
/* Followed by the name to shorten up */
};
/**
* Message from GNS service to client: shorten result.
*/
struct GNUNET_GNS_ClientShortenResultMessage
{
/**
* Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_SHORTEN_RESULT
*/
struct GNUNET_MessageHeader header;
/**
* Unique identifier for this request (for key collisions).
*/
uint32_t id GNUNET_PACKED;
/* followed by the shortened name or '\0' for no result*/
}; };
/**
* Message from client to GNS service to lookup an authority of a name.
*/
struct GNUNET_GNS_ClientGetAuthMessage
{
/**
* Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_GET_AUTH
*/
struct GNUNET_MessageHeader header;
/**
* Unique identifier for this request
*/
uint32_t id GNUNET_PACKED;
/* Followed by the name to get authority for */
};
/**
* Message from GNS service to client: authority result.
*/
struct GNUNET_GNS_ClientGetAuthResultMessage
{
/**
* Header of type GNUNET_MESSAGE_TYPE_GNS_CLIENT_GET_AUTH_RESULT
*/
struct GNUNET_MessageHeader header;
/**
* Unique identifier for this request (for key collisions).
*/
uint32_t id GNUNET_PACKED;
/* followed by the authority part of the name or '\0' for no result*/
};
GNUNET_NETWORK_STRUCT_END GNUNET_NETWORK_STRUCT_END
#endif #endif
 End of changes. 16 change blocks. 
17 lines changed or deleted 105 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/