summaryrefslogtreecommitdiff
path: root/applications/jpip/libopenjpip/dec_clientmsg_handler.c
diff options
context:
space:
mode:
authorKaori Hagihara <khagihara@users.noreply.github.com>2011-11-03 17:20:00 +0000
committerKaori Hagihara <khagihara@users.noreply.github.com>2011-11-03 17:20:00 +0000
commitd16c93aa08ef8d2dcb21f9c7de9df5cf597ad22f (patch)
tree0a235fdc01e3a82bd052187a0566da588d81adbd /applications/jpip/libopenjpip/dec_clientmsg_handler.c
parent46367a7a7bafa9e3e5615e59733616d46358676b (diff)
solved memory leak of opj_server, and removed redundant defines
Diffstat (limited to 'applications/jpip/libopenjpip/dec_clientmsg_handler.c')
-rw-r--r--applications/jpip/libopenjpip/dec_clientmsg_handler.c70
1 files changed, 45 insertions, 25 deletions
diff --git a/applications/jpip/libopenjpip/dec_clientmsg_handler.c b/applications/jpip/libopenjpip/dec_clientmsg_handler.c
index 875e297d..294285af2 100644
--- a/applications/jpip/libopenjpip/dec_clientmsg_handler.c
+++ b/applications/jpip/libopenjpip/dec_clientmsg_handler.c
@@ -37,20 +37,16 @@
#include "jpipstream_manager.h"
#include "jp2k_encoder.h"
-
-//! maximum length of channel identifier
-#define MAX_LENOFCID 30
-
void handle_JPIPstreamMSG( SOCKET connected_socket, cachelist_param_t *cachelist,
Byte_t **jpipstream, int *streamlen, msgqueue_param_t *msgqueue)
{
Byte_t *newjpipstream;
int newstreamlen = 0;
cache_param_t *cache;
- char target[MAX_LENOFTARGET], tid[MAX_LENOFTID], cid[MAX_LENOFCID];
+ char *target, *tid, *cid;
metadatalist_param_t *metadatalist;
- newjpipstream = receive_JPIPstream( connected_socket, target, tid, cid, &newstreamlen);
+ newjpipstream = receive_JPIPstream( connected_socket, &target, &tid, &cid, &newstreamlen);
parse_JPIPstream( newjpipstream, newstreamlen, *streamlen, msgqueue);
@@ -61,11 +57,11 @@ void handle_JPIPstreamMSG( SOCKET connected_socket, cachelist_param_t *cachelist
parse_metamsg( msgqueue, *jpipstream, *streamlen, metadatalist);
// cid registration
- if( target[0] != 0){
+ if( target != NULL){
if((cache = search_cache( target, cachelist))){
- if( tid[0] != 0)
+ if( tid != NULL)
update_cachetid( tid, cache);
- if( cid[0] != 0)
+ if( cid != NULL)
add_cachecid( cid, cache);
}
else{
@@ -80,6 +76,10 @@ void handle_JPIPstreamMSG( SOCKET connected_socket, cachelist_param_t *cachelist
delete_metadatalist( &cache->metadatalist);
cache->metadatalist = metadatalist;
+ if( target) free( target);
+ if( tid) free( tid);
+ if( cid) free( cid);
+
response_signal( connected_socket, true);
}
@@ -87,14 +87,19 @@ void handle_PNMreqMSG( SOCKET connected_socket, Byte_t *jpipstream, msgqueue_par
{
Byte_t *pnmstream;
ihdrbox_param_t *ihdrbox;
- char cid[MAX_LENOFCID], tmp[10];
+ char *CIDorTID, tmp[10];
cache_param_t *cache;
int fw, fh;
- receive_line( connected_socket, cid);
- if(!(cache = search_cacheBycid( cid, cachelist)))
- if(!(cache = search_cacheBytid( cid, cachelist)))
+ CIDorTID = receive_string( connected_socket);
+
+ if(!(cache = search_cacheBycid( CIDorTID, cachelist)))
+ if(!(cache = search_cacheBytid( CIDorTID, cachelist))){
+ free( CIDorTID);
return;
+ }
+
+ free( CIDorTID);
receive_line( connected_socket, tmp);
fw = atoi( tmp);
@@ -112,12 +117,17 @@ void handle_PNMreqMSG( SOCKET connected_socket, Byte_t *jpipstream, msgqueue_par
void handle_XMLreqMSG( SOCKET connected_socket, Byte_t *jpipstream, cachelist_param_t *cachelist)
{
- char cid[MAX_LENOFCID];
+ char *cid;
cache_param_t *cache;
- receive_line( connected_socket, cid);
- if(!(cache = search_cacheBycid( cid, cachelist)))
+ cid = receive_string( connected_socket);
+
+ if(!(cache = search_cacheBycid( cid, cachelist))){
+ free( cid);
return;
+ }
+
+ free( cid);
boxcontents_param_t *boxcontents = cache->metadatalist->last->boxcontents;
Byte_t *xmlstream = (Byte_t *)malloc( boxcontents->length);
@@ -128,12 +138,14 @@ void handle_XMLreqMSG( SOCKET connected_socket, Byte_t *jpipstream, cachelist_pa
void handle_TIDreqMSG( SOCKET connected_socket, cachelist_param_t *cachelist)
{
- char target[MAX_LENOFTARGET], *tid = NULL;
+ char *target, *tid = NULL;
cache_param_t *cache;
int tidlen = 0;
- receive_line( connected_socket, target);
+ target = receive_string( connected_socket);
cache = search_cache( target, cachelist);
+
+ free( target);
if( cache){
tid = cache->tid;
@@ -144,13 +156,15 @@ void handle_TIDreqMSG( SOCKET connected_socket, cachelist_param_t *cachelist)
void handle_CIDreqMSG( SOCKET connected_socket, cachelist_param_t *cachelist)
{
- char target[MAX_LENOFTARGET], *cid = NULL;
+ char *target, *cid = NULL;
cache_param_t *cache;
int cidlen = 0;
- receive_line( connected_socket, target);
+ target = receive_string( connected_socket);
cache = search_cache( target, cachelist);
+ free( target);
+
if( cache){
if( cache->numOfcid > 0){
cid = cache->cid[ cache->numOfcid-1];
@@ -162,23 +176,29 @@ void handle_CIDreqMSG( SOCKET connected_socket, cachelist_param_t *cachelist)
void handle_dstCIDreqMSG( SOCKET connected_socket, cachelist_param_t *cachelist)
{
- char cid[MAX_LENOFCID];
+ char *cid;
- receive_line( connected_socket, cid);
+ cid = receive_string( connected_socket);
remove_cachecid( cid, cachelist);
response_signal( connected_socket, true);
+
+ free( cid);
}
void handle_JP2saveMSG( SOCKET connected_socket, cachelist_param_t *cachelist, msgqueue_param_t *msgqueue, Byte_t *jpipstream)
{
- char cid[MAX_LENOFCID];
+ char *cid;
cache_param_t *cache;
Byte_t *jp2stream;
Byte8_t jp2len;
- receive_line( connected_socket, cid);
- if(!(cache = search_cacheBycid( cid, cachelist)))
+ cid = receive_string( connected_socket);
+ if(!(cache = search_cacheBycid( cid, cachelist))){
+ free( cid);
return;
+ }
+
+ free( cid);
jp2stream = recons_jp2( msgqueue, jpipstream, cache->csn, &jp2len);