aboutsummaryrefslogtreecommitdiff
path: root/src/stream
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-09-11 10:24:54 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-09-11 10:24:54 +0000
commit786b876b5759c3e8bcd494c8e880d15e05285e29 (patch)
tree38dda98a06764c6c690df61c9055403466d3597e /src/stream
parent1ae24ace5ac040dac0b1e9261a7db506b1530ca1 (diff)
downloadgnunet-786b876b5759c3e8bcd494c8e880d15e05285e29.tar.gz
gnunet-786b876b5759c3e8bcd494c8e880d15e05285e29.zip
rename MAX_PACKET_SIZE option to MAX_PAYLOAD_SIZE
Diffstat (limited to 'src/stream')
-rw-r--r--src/stream/mesh.supp6
-rw-r--r--src/stream/stream_api.c54
2 files changed, 27 insertions, 33 deletions
diff --git a/src/stream/mesh.supp b/src/stream/mesh.supp
index 7e3de9f07..7107c0b3d 100644
--- a/src/stream/mesh.supp
+++ b/src/stream/mesh.supp
@@ -6,11 +6,7 @@
6 fun:GNUNET_PEER_intern 6 fun:GNUNET_PEER_intern
7 fun:GNUNET_MESH_peer_request_connect_add 7 fun:GNUNET_MESH_peer_request_connect_add
8 fun:GNUNET_STREAM_open 8 fun:GNUNET_STREAM_open
9 fun:stream_ca 9 ...
10 fun:configuration_receiver
11 fun:handle_peer_config
12 fun:message_handler
13 fun:receive_task
14} 10}
15{ 11{
16 <unknown_from_mesh> 12 <unknown_from_mesh>
diff --git a/src/stream/stream_api.c b/src/stream/stream_api.c
index fe494a5a9..d09182d2b 100644
--- a/src/stream/stream_api.c
+++ b/src/stream/stream_api.c
@@ -63,7 +63,7 @@
63/** 63/**
64 * The maximum packet size of a stream packet 64 * The maximum packet size of a stream packet
65 */ 65 */
66#define MAX_PACKET_SIZE 64000 66#define DEFAULT_MAX_PAYLOAD_SIZE 64000
67 67
68/** 68/**
69 * Receive buffer 69 * Receive buffer
@@ -363,11 +363,6 @@ struct GNUNET_STREAM_Socket
363 uint32_t copy_offset; 363 uint32_t copy_offset;
364 364
365 /** 365 /**
366 * The maximum packet size this stream handle will give to mesh
367 */
368 uint16_t max_packet_size;
369
370 /**
371 * The maximum size of the data message payload this stream handle can send 366 * The maximum size of the data message payload this stream handle can send
372 */ 367 */
373 uint16_t max_payload_size; 368 uint16_t max_payload_size;
@@ -445,9 +440,9 @@ struct GNUNET_STREAM_ListenSocket
445 uint32_t testing_set_write_sequence_number_value; 440 uint32_t testing_set_write_sequence_number_value;
446 441
447 /** 442 /**
448 * The maximum packet size this stream handle will give to mesh 443 * The maximum size of the data message payload this stream handle can send
449 */ 444 */
450 uint16_t max_packet_size; 445 uint16_t max_payload_size;
451 446
452}; 447};
453 448
@@ -2788,9 +2783,7 @@ new_tunnel_notify (void *cls,
2788 socket->testing_active = lsocket->testing_active; 2783 socket->testing_active = lsocket->testing_active;
2789 socket->testing_set_write_sequence_number_value = 2784 socket->testing_set_write_sequence_number_value =
2790 lsocket->testing_set_write_sequence_number_value; 2785 lsocket->testing_set_write_sequence_number_value;
2791 socket->max_packet_size = lsocket->max_packet_size; 2786 socket->max_payload_size = lsocket->max_payload_size;
2792 socket->max_payload_size =
2793 socket->max_packet_size - sizeof (struct GNUNET_STREAM_DataMessage);
2794 LOG (GNUNET_ERROR_TYPE_DEBUG, 2787 LOG (GNUNET_ERROR_TYPE_DEBUG,
2795 "%s: Peer %s initiated tunnel to us\n", 2788 "%s: Peer %s initiated tunnel to us\n",
2796 GNUNET_i2s (&socket->other_peer), 2789 GNUNET_i2s (&socket->other_peer),
@@ -2951,6 +2944,7 @@ GNUNET_STREAM_open (const struct GNUNET_CONFIGURATION_Handle *cfg,
2951 enum GNUNET_STREAM_Option option; 2944 enum GNUNET_STREAM_Option option;
2952 GNUNET_MESH_ApplicationType ports[] = {app_port, 0}; 2945 GNUNET_MESH_ApplicationType ports[] = {app_port, 0};
2953 va_list vargs; 2946 va_list vargs;
2947 uint16_t payload_size;
2954 2948
2955 LOG (GNUNET_ERROR_TYPE_DEBUG, 2949 LOG (GNUNET_ERROR_TYPE_DEBUG,
2956 "%s\n", __func__); 2950 "%s\n", __func__);
@@ -2962,7 +2956,7 @@ GNUNET_STREAM_open (const struct GNUNET_CONFIGURATION_Handle *cfg,
2962 /* Set defaults */ 2956 /* Set defaults */
2963 socket->retransmit_timeout = TIME_REL_SECS (default_timeout); 2957 socket->retransmit_timeout = TIME_REL_SECS (default_timeout);
2964 socket->testing_active = GNUNET_NO; 2958 socket->testing_active = GNUNET_NO;
2965 socket->max_packet_size = MAX_PACKET_SIZE; 2959 socket->max_payload_size = DEFAULT_MAX_PAYLOAD_SIZE;
2966 va_start (vargs, open_cb_cls); /* Parse variable args */ 2960 va_start (vargs, open_cb_cls); /* Parse variable args */
2967 do { 2961 do {
2968 option = va_arg (vargs, enum GNUNET_STREAM_Option); 2962 option = va_arg (vargs, enum GNUNET_STREAM_Option);
@@ -2984,18 +2978,17 @@ GNUNET_STREAM_open (const struct GNUNET_CONFIGURATION_Handle *cfg,
2984 case GNUNET_STREAM_OPTION_SIGNAL_LISTEN_SUCCESS: 2978 case GNUNET_STREAM_OPTION_SIGNAL_LISTEN_SUCCESS:
2985 GNUNET_break (0); /* Option irrelevant in STREAM_open */ 2979 GNUNET_break (0); /* Option irrelevant in STREAM_open */
2986 break; 2980 break;
2987 case GNUNET_STREAM_OPTION_MAX_PACKET_SIZE: 2981 case GNUNET_STREAM_OPTION_MAX_PAYLOAD_SIZE:
2988 socket->max_packet_size = (uint16_t) va_arg (vargs, unsigned int); 2982 payload_size = (uint16_t) va_arg (vargs, unsigned int);
2989 if (socket->max_packet_size > MAX_PACKET_SIZE) 2983 GNUNET_assert (0 != payload_size);
2990 socket->max_packet_size = MAX_PACKET_SIZE; 2984 if (payload_size < socket->max_payload_size)
2985 socket->max_payload_size = payload_size;
2991 break; 2986 break;
2992 case GNUNET_STREAM_OPTION_END: 2987 case GNUNET_STREAM_OPTION_END:
2993 break; 2988 break;
2994 } 2989 }
2995 } while (GNUNET_STREAM_OPTION_END != option); 2990 } while (GNUNET_STREAM_OPTION_END != option);
2996 va_end (vargs); /* End of variable args parsing */ 2991 va_end (vargs); /* End of variable args parsing */
2997 socket->max_payload_size =
2998 socket->max_packet_size - sizeof (struct GNUNET_STREAM_DataMessage);
2999 socket->mesh = GNUNET_MESH_connect (cfg, /* the configuration handle */ 2992 socket->mesh = GNUNET_MESH_connect (cfg, /* the configuration handle */
3000 socket, /* cls */ 2993 socket, /* cls */
3001 NULL, /* No inbound tunnel handler */ 2994 NULL, /* No inbound tunnel handler */
@@ -3219,6 +3212,7 @@ GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg,
3219 struct GNUNET_TIME_Relative listen_timeout; 3212 struct GNUNET_TIME_Relative listen_timeout;
3220 enum GNUNET_STREAM_Option option; 3213 enum GNUNET_STREAM_Option option;
3221 va_list vargs; 3214 va_list vargs;
3215 uint16_t payload_size;
3222 3216
3223 GNUNET_assert (NULL != listen_cb); 3217 GNUNET_assert (NULL != listen_cb);
3224 lsocket = GNUNET_malloc (sizeof (struct GNUNET_STREAM_ListenSocket)); 3218 lsocket = GNUNET_malloc (sizeof (struct GNUNET_STREAM_ListenSocket));
@@ -3235,7 +3229,7 @@ GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg,
3235 lsocket->retransmit_timeout = TIME_REL_SECS (default_timeout); 3229 lsocket->retransmit_timeout = TIME_REL_SECS (default_timeout);
3236 lsocket->testing_active = GNUNET_NO; 3230 lsocket->testing_active = GNUNET_NO;
3237 lsocket->listen_ok_cb = NULL; 3231 lsocket->listen_ok_cb = NULL;
3238 lsocket->max_packet_size = MAX_PACKET_SIZE; 3232 lsocket->max_payload_size = DEFAULT_MAX_PAYLOAD_SIZE;
3239 listen_timeout = TIME_REL_SECS (60); /* A minute for listen timeout */ 3233 listen_timeout = TIME_REL_SECS (60); /* A minute for listen timeout */
3240 va_start (vargs, listen_cb_cls); 3234 va_start (vargs, listen_cb_cls);
3241 do { 3235 do {
@@ -3259,10 +3253,11 @@ GNUNET_STREAM_listen (const struct GNUNET_CONFIGURATION_Handle *cfg,
3259 lsocket->listen_ok_cb = va_arg (vargs, 3253 lsocket->listen_ok_cb = va_arg (vargs,
3260 GNUNET_STREAM_ListenSuccessCallback); 3254 GNUNET_STREAM_ListenSuccessCallback);
3261 break; 3255 break;
3262 case GNUNET_STREAM_OPTION_MAX_PACKET_SIZE: 3256 case GNUNET_STREAM_OPTION_MAX_PAYLOAD_SIZE:
3263 lsocket->max_packet_size = (uint16_t) va_arg (vargs, unsigned int); 3257 payload_size = (uint16_t) va_arg (vargs, unsigned int);
3264 if (lsocket->max_packet_size > MAX_PACKET_SIZE) 3258 GNUNET_assert (0 != payload_size);
3265 lsocket->max_packet_size = MAX_PACKET_SIZE; 3259 if (payload_size < lsocket->max_payload_size)
3260 lsocket->max_payload_size = payload_size;
3266 break; 3261 break;
3267 case GNUNET_STREAM_OPTION_END: 3262 case GNUNET_STREAM_OPTION_END:
3268 break; 3263 break;
@@ -3331,14 +3326,15 @@ GNUNET_STREAM_write (struct GNUNET_STREAM_Socket *socket,
3331 GNUNET_STREAM_CompletionContinuation write_cont, 3326 GNUNET_STREAM_CompletionContinuation write_cont,
3332 void *write_cont_cls) 3327 void *write_cont_cls)
3333{ 3328{
3334 unsigned int num_needed_packets;
3335 unsigned int packet;
3336 struct GNUNET_STREAM_IOWriteHandle *io_handle; 3329 struct GNUNET_STREAM_IOWriteHandle *io_handle;
3337 uint32_t packet_size;
3338 uint32_t payload_size;
3339 struct GNUNET_STREAM_DataMessage *data_msg; 3330 struct GNUNET_STREAM_DataMessage *data_msg;
3340 const void *sweep; 3331 const void *sweep;
3341 struct GNUNET_TIME_Relative ack_deadline; 3332 struct GNUNET_TIME_Relative ack_deadline;
3333 unsigned int num_needed_packets;
3334 unsigned int packet;
3335 uint32_t packet_size;
3336 uint32_t payload_size;
3337 uint16_t max_data_packet_size;
3342 3338
3343 LOG (GNUNET_ERROR_TYPE_DEBUG, 3339 LOG (GNUNET_ERROR_TYPE_DEBUG,
3344 "%s\n", __func__); 3340 "%s\n", __func__);
@@ -3390,12 +3386,14 @@ GNUNET_STREAM_write (struct GNUNET_STREAM_Socket *socket,
3390 determined from RTT */ 3386 determined from RTT */
3391 ack_deadline = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5); 3387 ack_deadline = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5);
3392 /* Divide the given buffer into packets for sending */ 3388 /* Divide the given buffer into packets for sending */
3389 max_data_packet_size =
3390 socket->max_payload_size + sizeof (struct GNUNET_STREAM_DataMessage);
3393 for (packet=0; packet < num_needed_packets; packet++) 3391 for (packet=0; packet < num_needed_packets; packet++)
3394 { 3392 {
3395 if ((packet + 1) * socket->max_payload_size < size) 3393 if ((packet + 1) * socket->max_payload_size < size)
3396 { 3394 {
3397 payload_size = socket->max_payload_size; 3395 payload_size = socket->max_payload_size;
3398 packet_size = socket->max_packet_size; 3396 packet_size = max_data_packet_size;
3399 } 3397 }
3400 else 3398 else
3401 { 3399 {