From: ho.namkoong Date: Sun, 27 Oct 2013 15:18:35 +0000 (+0900) Subject: hot patch for tct stuck X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F15%2F11415%2F1;p=sdk%2Ftools%2Fsdb.git hot patch for tct stuck Change-Id: I31f915e1662ab1971e5e7bb11cac24f21f04444b --- diff --git a/src/log.c b/src/log.c index 41477f3..7e8494e 100644 --- a/src/log.c +++ b/src/log.c @@ -37,6 +37,45 @@ static struct { { NULL, 0 } }; +void logging_hex(char* hex, char* asci) { + + int hex_len = strnlen(hex, 4096); + + char* hex_ptr = hex; + + fprintf(stderr, "HEX:\n"); + while(hex_len > 512) { + char hex_tmp = hex_ptr[512]; + hex_ptr[512] = '\0'; + + fprintf(stderr, "%s", hex_ptr); + hex_len = hex_len - 512; + hex_ptr[512] = hex_tmp; + hex_ptr = hex_ptr + 512; + } + + fprintf(stderr, "%s\n", hex_ptr); + + + int asci_len = strnlen(asci, 4096); + char* asci_ptr = asci; + + fprintf(stderr, "ASCI:\n"); + while(asci_len > 512) { + char asci_tmp = asci_ptr[512]; + asci_ptr[512] = '\0'; + + fprintf(stderr, "%s", asci_ptr); + asci_len = asci_len - 512; + asci_ptr[512] = asci_tmp; + asci_ptr = asci_ptr + 512; + } + + fprintf(stderr, "%s\n", asci_ptr); + + +} + void logging(LogLevel level, const char *filename, const char *funcname, int line_number, const char *fmt, ...) { char *name = NULL; char mbuf[1024]; diff --git a/src/log.h b/src/log.h index d6e85ac..6701158 100644 --- a/src/log.h +++ b/src/log.h @@ -53,8 +53,15 @@ typedef enum { do { if ((loglevel_mask & (1 << SDBLOG_FIXME)) != 0) { \ logging(SDBLOG_FIXME, __FILE__, __FUNCTION__, __LINE__, args); } } while(0) +#define LOG_HEX(hex, asci) \ + do { \ + logging_hex(hex, asci); } while(0) + + + void log_init(void); void logging(LogLevel level, const char *filename, const char *funcname, int line_number, const char *fmt, ...); +void logging_hex(char* hex, char* asci); // define for a while for testing #undef D diff --git a/src/sockets.c b/src/sockets.c index e79c9e0..7d85837 100755 --- a/src/sockets.c +++ b/src/sockets.c @@ -478,9 +478,8 @@ static void local_socket_event_func(int fd, unsigned ev, void *_s) p->len = MAX_PAYLOAD - avail; //TODO HOT PATCH FOR 2048. - if(p->len == 2048) { - p->len = 2047; - s->char_2048 = p->data[2047]; + if(p->len > 0 && p->len % 512 == 0) { + s->char_2048 = p->data[--p->len]; s->check_2048 = 1; } diff --git a/src/transport.c b/src/transport.c index 173571c..cece18f 100755 --- a/src/transport.c +++ b/src/transport.c @@ -75,6 +75,7 @@ int asprintf( char **sptr, char *fmt, ... ) #endif #define MAX_DUMP_HEX_LEN 30 +//#define MAX_DUMP_HEX_LEN 4096 static void dump_hex( const unsigned char* ptr, size_t len) { if(SDB_TRACING) { @@ -103,7 +104,8 @@ static void dump_hex( const unsigned char* ptr, size_t len) } asci[len] = '\0'; - DR("HEX:'%s', ASCI:'%s'\n", hex, asci); + DR(hex, asci); +// LOG_HEX(hex, asci); } } @@ -775,6 +777,7 @@ void wakeup_select_func(int _fd, unsigned ev, void *data) { __p->msg.command = A_WRTE; __p->msg.arg0 = sock->local_id; __p->msg.arg1 = sock->remote_id; + __p->data[0] = sock->char_2048; __p->msg.data_length = 1; send_packet(__p, sock->transport); }