hot patch for tct stuck 15/11415/1
authorho.namkoong <ho.namkoong@samsung.com>
Sun, 27 Oct 2013 15:18:35 +0000 (00:18 +0900)
committerho.namkoong <ho.namkoong@samsung.com>
Sun, 27 Oct 2013 15:20:09 +0000 (00:20 +0900)
Change-Id: I31f915e1662ab1971e5e7bb11cac24f21f04444b

src/log.c
src/log.h
src/sockets.c
src/transport.c

index 41477f3c67fef990ae290e526bc68a6eabb42cd4..7e8494e9eda8005154208f775ccd3d3c2207aea8 100644 (file)
--- 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];
index d6e85ac7f467f27fdf18acd47578c7b0045e958c..6701158985c3a892a57f90370125a11040431513 100644 (file)
--- 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
index e79c9e0d722adc25c2c4dcef2c85d7b11c17de97..7d858371bbc22a98e4fbe22b7393fc9b9b6bf648 100755 (executable)
@@ -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;
             }
 
index 173571cb674ee1fb30a3a8658f587ec07d5c9ff9..cece18fbe476eca0917482d539b394049115a08c 100755 (executable)
@@ -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);
             }