- api part of connect by string
authorBart Polot <bart@net.in.tum.de>
Fri, 22 Jun 2012 14:01:54 +0000 (14:01 +0000)
committerBart Polot <bart@net.in.tum.de>
Fri, 22 Jun 2012 14:01:54 +0000 (14:01 +0000)
src/mesh/mesh.h
src/mesh/mesh_api.c

index 5be4544adffcf9df38d1cb5fa13ca3b6ad249554..fd9de27d8aef1b7e111d256d0eedee2c739466ff 100644 (file)
@@ -191,7 +191,7 @@ struct GNUNET_MESH_PeerControl
 
 
 /**
- * Message for connecting to peers offering a certain service.
+ * Message for connecting to peers offering a service, by service number.
  */
 struct GNUNET_MESH_ConnectPeerByType
 {
@@ -211,6 +211,25 @@ struct GNUNET_MESH_ConnectPeerByType
    */
   GNUNET_MESH_ApplicationType type GNUNET_PACKED;
 };
+
+
+/**
+ * Message for connecting to peers offering a service, by service string.
+ */
+struct GNUNET_MESH_ConnectPeerByString
+{
+    /**
+     * Type: GNUNET_MESSAGE_TYPE_MESH_LOCAL_PEER_ADD_BY_STRING
+     */
+  struct GNUNET_MessageHeader header;
+
+  /**
+   * ID of a tunnel controlled by this client.
+   */
+  MESH_TunnelNumber tunnel_id GNUNET_PACKED;
+
+  /* String describing the service */
+};
 GNUNET_NETWORK_STRUCT_END
 
 /******************************************************************************/
index 086b5fa716b51a717c11e63800bd8ca158294907..ca4bff36fd444d14e1de06444e0e53f52a96d0a3 100644 (file)
@@ -1591,7 +1591,18 @@ void
 GNUNET_MESH_peer_request_connect_by_string (struct GNUNET_MESH_Tunnel *tunnel,
                                             const char *description)
 {
-  
+  struct GNUNET_MESH_ConnectPeerByString *msg;
+  size_t len;
+  size_t msgsize;
+
+  len = strlen(description);
+  msgsize = sizeof(struct GNUNET_MESH_ConnectPeerByString) + len;
+  GNUNET_assert (UINT16_MAX > msgsize);
+  msg = GNUNET_malloc (msgsize);
+  msg->header.size = htons (msgsize);
+  msg->header.type = htons (GNUNET_MESSAGE_TYPE_MESH_LOCAL_PEER_ADD_BY_STRING);
+  msg->tunnel_id = htonl (tunnel->tid);
+  memcpy(&msg[1], description, len);
 }