comparison nnchat.c @ 236:71fa0364c058

Report network errors to the user.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 17 Mar 2011 08:58:19 +0200
parents 6b1c67274f6c
children 52a2f06fd41c
comparison
equal deleted inserted replaced
235:87f434330547 236:71fa0364c058
389 } 389 }
390 390
391 391
392 char *errorMessages = NULL; 392 char *errorMessages = NULL;
393 393
394 void errorMsg(const char *fmt, ...) 394 void errorMsgV(const char *fmt, va_list ap)
395 { 395 {
396 char *tmp; 396 char *tmp;
397 va_list ap1, ap2; 397 va_list ap2;
398 398
399 va_start(ap1, fmt); 399 va_copy(ap2, ap);
400 va_copy(ap2, ap1); 400 printMsgV(TRUE, FALSE, fmt, ap);
401 printMsgV(TRUE, FALSE, fmt, ap1);
402 va_end(ap1);
403 401
404 tmp = th_strdup_vprintf(fmt, ap2); 402 tmp = th_strdup_vprintf(fmt, ap2);
405 va_end(ap2);
406 403
407 if (errorMessages != NULL) { 404 if (errorMessages != NULL) {
408 char *tmp2 = th_strdup_printf("%s%s", errorMessages, tmp); 405 char *tmp2 = th_strdup_printf("%s%s", errorMessages, tmp);
409 th_free(errorMessages); 406 th_free(errorMessages);
410 th_free(tmp); 407 th_free(tmp);
411 errorMessages = tmp2; 408 errorMessages = tmp2;
412 } else 409 } else
413 errorMessages = tmp; 410 errorMessages = tmp;
411 }
412
413 void errorMsg(const char *fmt, ...)
414 {
415 va_list ap;
416
417 va_start(ap, fmt);
418 errorMsgV(fmt, ap);
419 va_end(ap);
420 }
421
422 void errorFunc(struct _nn_conn_t *conn, const char *fmt, va_list ap)
423 {
424 errorMsgV(fmt, ap);
425 }
426
427 void messageFunc(struct _nn_conn_t *conn, const char *fmt, va_list ap)
428 {
429 printMsgV(TRUE, FALSE, fmt, ap);
414 } 430 }
415 431
416 432
417 BOOL checkIgnoreList(const char *name) 433 BOOL checkIgnoreList(const char *name)
418 { 434 {
1103 if (!nn_conn_check(conn)) { 1119 if (!nn_conn_check(conn)) {
1104 THERR("Main connection setup failed!\n"); 1120 THERR("Main connection setup failed!\n");
1105 goto err_exit; 1121 goto err_exit;
1106 } 1122 }
1107 1123
1124 conn->errfunc = errorFunc;
1125 conn->msgfunc = messageFunc;
1126
1108 THMSG(1, "Connected, logging in as '%s', site '%s'.\n", optUserName, optSite); 1127 THMSG(1, "Connected, logging in as '%s', site '%s'.\n", optUserName, optSite);
1109 optUserNameEnc = nn_dblencode_str(optUserName); 1128 optUserNameEnc = nn_dblencode_str(optUserName);
1110 tmpStr = nn_dblencode_str(optSite); 1129 tmpStr = nn_dblencode_str(optSite);
1111 nn_conn_send_msg(conn, optUserNameEnc, "%%2Flogin%%20%%2Dsite%%20%s%%20%%2Dpassword%%20%s", tmpStr, optPassword); 1130 nn_conn_send_msg(conn, optUserNameEnc, "%%2Flogin%%20%%2Dsite%%20%s%%20%%2Dpassword%%20%s", tmpStr, optPassword);
1112 th_free(tmpStr); 1131 th_free(tmpStr);