{ 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];
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
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;
}
#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) {
}
asci[len] = '\0';
- DR("HEX:'%s', ASCI:'%s'\n", hex, asci);
+ DR(hex, asci);
+// LOG_HEX(hex, asci);
}
}
__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);
}