Changeset 186
- Timestamp:
- 01/23/05 03:35:42 (4 years ago)
- Files:
-
- wire/trunk/wire/client.c (modified) (7 diffs)
- wire/trunk/wire/main.c (modified) (2 diffs)
- wire/trunk/wire/main.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
wire/trunk/wire/client.c
r185 r186 1 /* $Id: client.c,v 1.5 7 2005/01/23 01:08:34morris Exp $ */1 /* $Id: client.c,v 1.58 2005/01/23 02:35:42 morris Exp $ */ 2 2 3 3 /* … … 349 349 int wr_parse_message(char *buffer) { 350 350 za_argv_t *argv; 351 char *p, * buf, *msg = NULL, *arg = NULL;351 char *p, *cbuf, *buf, *msg = NULL, *arg = NULL; 352 352 unsigned int message; 353 int i , bytes;353 int i; 354 354 355 355 argv = za_argv_alloc(); 356 356 357 357 /* convert buffer */ 358 bytes = strlen(buffer); 359 wr_received_bytes += bytes; 360 wr_text_convert(wr_conv_from, buffer, &bytes); 358 wr_received_bytes += strlen(buffer); 359 cbuf = wr_text_convert(wr_conv_from, buffer); 361 360 362 361 /* get message */ 363 buf = buffer;362 buf = cbuf; 364 363 365 364 for(p = buf; *buf && !isspace(*buf); buf++) … … 570 569 571 570 571 if(cbuf) 572 free(cbuf); 573 572 574 if(msg) 573 575 free(msg); … … 601 603 602 604 void wr_send_command_on_ssl(SSL *ssl, const char *fmt, ...) { 603 char *inbuffer, *outbuffer ;605 char *inbuffer, *outbuffer, *cbuffer; 604 606 va_list ap; 605 607 int bytes; … … 607 609 va_start(ap, fmt); 608 610 609 if( vasprintf(&inbuffer, fmt, ap) == -1|| inbuffer == NULL)611 if((bytes = vasprintf(&inbuffer, fmt, ap)) < 0 || inbuffer == NULL) 610 612 return; 611 613 … … 613 615 wr_printf_prefix("<<< %s\n", inbuffer); 614 616 615 bytes = strlen(inbuffer) +2;617 bytes += 2; 616 618 outbuffer = (char *) malloc(bytes); 617 619 bytes = snprintf(outbuffer, bytes, "%s%s", 618 620 inbuffer, WR_MESSAGE_SEPARATOR); 619 621 620 wr_text_convert(wr_conv_to, outbuffer, &bytes);621 622 622 if(ssl) { 623 SSL_write(ssl, outbuffer, bytes); 623 cbuffer = wr_text_convert(wr_conv_to, outbuffer); 624 bytes = strlen(cbuffer); 625 SSL_write(ssl, cbuffer, bytes); 624 626 wr_transferred_bytes += bytes; 625 627 } … … 676 678 za_strtoui(argv[0], &cid); 677 679 za_strtoui(argv[1], &uid); 678 679 680 user = wr_user_with_uid(uid); 680 681 wire/trunk/wire/main.c
r184 r186 1 /* $Id: main.c,v 1.7 0 2005/01/23 01:01:04morris Exp $ */1 /* $Id: main.c,v 1.71 2005/01/23 02:35:42 morris Exp $ */ 2 2 3 3 /* … … 494 494 #pragma mark - 495 495 496 void wr_text_convert(iconv_t conv, char *inbuffer, int *inbytes) { 497 char *in, *out, *outbuffer; 498 size_t outbytes, length; 499 500 if(conv == (iconv_t) -1) 501 return; 502 503 length = outbytes = *inbytes * 2; 504 outbuffer = (char *) malloc(outbytes); 505 memset(outbuffer, 0, outbytes); 496 char * wr_text_convert(iconv_t conv, const char *inbuffer) { 497 const char *in; 498 char *out, *outbuffer; 499 size_t bytes, inbytes, outbytes; 500 501 inbytes = strlen(inbuffer); 502 bytes = outbytes = inbytes * 4; 503 outbuffer = (char *) malloc(bytes); 504 in = inbuffer; 506 505 out = outbuffer; 507 in = inbuffer; 508 509 if((iconv_t) iconv(conv, (const char **) &in, (size_t *) inbytes, &out, &outbytes) != (iconv_t) -1) { 510 memcpy(inbuffer, outbuffer, length - outbytes); 511 inbuffer[length - outbytes] = '\0'; 512 513 *inbytes = length - outbytes; 506 507 if((iconv_t) iconv(conv, &in, &inbytes, &out, &outbytes) != (iconv_t) -1) { 508 outbuffer[bytes - outbytes] = '\0'; 514 509 } else { 515 510 wr_printf_prefix("iconv: %s\n", strerror(errno)); 516 } 517 518 free(outbuffer); 511 wr_printf_prefix("inbuffer: %u '%s'\n", inbytes, inbuffer); 512 wr_printf_prefix("outbuffer: %u '%s'\n", outbytes, outbuffer); 513 strlcpy(outbuffer, inbuffer, bytes); 514 } 515 516 return outbuffer; 519 517 } 520 518 wire/trunk/wire/main.h
r183 r186 1 /* $Id: main.h,v 1.2 1 2005/01/23 00:06:02 morris Exp $ */1 /* $Id: main.h,v 1.22 2005/01/23 02:35:42 morris Exp $ */ 2 2 3 3 /* … … 59 59 void wr_loop(bool, int, double); 60 60 61 void wr_text_convert(iconv_t, char *, int*);61 char * wr_text_convert(iconv_t, const char *); 62 62 char * wr_expand_path(const char *, char *); 63 63
