Mercurial > hg > nnchat
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); |