Changeset 132 for trunk/src/sh_forward.c


Ignore:
Timestamp:
Oct 23, 2007, 11:44:41 PM (17 years ago)
Author:
rainer
Message:

Make utility functions thread-safe.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_forward.c

    r34 r132  
    386386  cipherInstance          cipherInst;
    387387  int                     err_num;
     388  char expbuf[SH_ERRBUF_SIZE];
    388389#else
    389390  docrypt = SL_FALSE; /* dummy to fix compiler warning */
     
    422423      if (err_num < 0)
    423424        sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    424                         errorExplain(err_num),
     425                        errorExplain(err_num, expbuf, sizeof(expbuf)),
    425426                        _("sh_forward_send_intern: cipherInit"));
    426427
     
    433434          if (err_num < 0)
    434435            sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    435                             errorExplain(err_num),
     436                            errorExplain(err_num, expbuf, sizeof(expbuf)),
    436437                            _("sh_forward_send_intern: blockEncrypt"));
    437438          memcpy(q, outBlock, B_SIZ);
     
    447448          if (err_num < 0)
    448449            sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    449                             errorExplain(err_num),
     450                            errorExplain(err_num, expbuf, sizeof(expbuf)),
    450451                            _("sh_forward_send_intern: blockEncrypt"));
    451452          memcpy(q, outBlock, B_SIZ);
     
    549550  cipherInstance          cipherInst;
    550551  int                     err_num;
     552  char expbuf[SH_ERRBUF_SIZE];
    551553#else
    552554  docrypt = SL_FALSE; /* dummy to fix compiler warning */
     
    655657      if (err_num < 0)
    656658        sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    657                         errorExplain(err_num),
     659                        errorExplain(err_num, expbuf, sizeof(expbuf)),
    658660                        _("sh_forward_receive_intern: cipherInit"));
    659661
     
    668670          if (err_num < 0)
    669671            sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    670                             errorExplain(err_num),
     672                            errorExplain(err_num, expbuf, sizeof(expbuf)),
    671673                            _("sh_forward_receive_intern: blockDecrypt"));
    672674          memcpy(q, outBlock, B_SIZ);
     
    881883#ifdef SH_ENCRYPT
    882884  int err_num;
     885  char expbuf[SH_ERRBUF_SIZE];
    883886#endif
    884887
     
    10531056          if (err_num < 0)
    10541057            sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    1055                             errorExplain(err_num),
     1058                            errorExplain(err_num, expbuf, sizeof(expbuf)),
    10561059                            _("sh_forward_try_impl: makeKey"));
    10571060
     
    10601063          if (err_num < 0)
    10611064            sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    1062                             errorExplain(err_num),
     1065                            errorExplain(err_num, expbuf, sizeof(expbuf)),
    10631066                            _("sh_forward_try_impl: make_key"));
    10641067#endif
     
    12331236                                sh_error_handle((-1), FIL__, __LINE__, -1,
    12341237                                                MSG_E_SUBGEN,
    1235                                                 errorExplain(err_num),
     1238                                                errorExplain(err_num, expbuf, sizeof(expbuf)),
    12361239                                                _("sh_forward_try_impl: makeKey"));
    12371240                              err_num = makeKey(&(skey->keyInstD),
     
    12411244                                sh_error_handle((-1), FIL__, __LINE__, -1,
    12421245                                                MSG_E_SUBGEN,
    1243                                                 errorExplain(err_num),
     1246                                                errorExplain(err_num, expbuf, sizeof(expbuf)),
    12441247                                                _("sh_forward_try_impl: makeKey"));
    12451248#endif
     
    17411744  if (flag_err != 0)
    17421745    {
     1746      char errbuf[SH_ERRBUF_SIZE];
    17431747      conn_state = BAD;
    17441748      timeout_val *= 2;
    1745       if (flag_err < 0 || NULL == sh_error_message(flag_err))
     1749      if (flag_err < 0 || NULL == sh_error_message(flag_err, errbuf, sizeof(errbuf)))
    17461750        flag_err = EIO;
    17471751      sh_error_handle((-1), FIL__, __LINE__, flag_err, MSG_TCP_ECONN,
    1748                       sh_error_message(flag_err));
     1752                      sh_error_message(flag_err, errbuf, sizeof(errbuf)));
    17491753      SL_RETURN( (-1), _("sh_forward_try_impl"));
    17501754    }
     
    20532057      for (i = 0; i < CLT_MAX; ++i)
    20542058        newclt->status_arr[i] = CLT_INACTIVE;
    2055       sl_strlcpy(newclt->timestamp[CLT_INACTIVE],   sh_unix_time(0), TIM_MAX);
     2059      (void) sh_unix_time(0, newclt->timestamp[CLT_INACTIVE], TIM_MAX);
    20562060      /* truncate */
    20572061      sl_strlcpy(newclt->hostname,  &str[0],        sep[0]+1);
     
    22572261  cipherInstance          cipherInst;
    22582262  int                     err_num;
     2263  char expbuf[SH_ERRBUF_SIZE];
    22592264#else
    22602265  (void) docrypt;
     
    23292334      if (err_num < 0)
    23302335        sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    2331                         errorExplain(err_num),
     2336                        errorExplain(err_num, expbuf, sizeof(expbuf)),
    23322337                        _("sh_forward_prep_send_int: cipherInit"));
    23332338
     
    23392344          if (err_num < 0)
    23402345            sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    2341                             errorExplain(err_num),
     2346                            errorExplain(err_num, expbuf, sizeof(expbuf)),
    23422347                            _("sh_forward_prep_send_int: blockEncrypt"));
    23432348          memcpy(q, outBlock, B_SIZ);
     
    23552360          if (err_num < 0)
    23562361            sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    2357                             errorExplain(err_num),
     2362                            errorExplain(err_num, expbuf, sizeof(expbuf)),
    23582363                            _("sh_forward_prep_send_int: blockEncrypt"));
    23592364          memcpy(q, outBlock, B_SIZ);
     
    24382443  conn->status_now = status;
    24392444  conn->status_arr[status] = status;
    2440   sl_strlcpy(conn->timestamp[status],
    2441              sh_unix_time(0),
    2442              TIM_MAX);
     2445  (void) sh_unix_time(0, conn->timestamp[status], TIM_MAX);
    24432446
    24442447#if defined(WITH_EXTERNAL)
     
    28062809  int        send_bytes;
    28072810  int        err_num;
     2811  char expbuf[SH_ERRBUF_SIZE];
    28082812#endif
    28092813
     
    38803884               if (err_num < 0)
    38813885                 sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    3882                                  errorExplain(err_num),
     3886                                 errorExplain(err_num, expbuf, sizeof(expbuf)),
    38833887                                 _("check_protocol: makeKey"));
    38843888               err_num = makeKey(&(conn->client_entry->keyInstD),
     
    38873891               if (err_num < 0)
    38883892                 sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    3889                                  errorExplain(err_num),
     3893                                 errorExplain(err_num, expbuf, sizeof(expbuf)),
    38903894                                 _("check_protocol: makeKey"));
    38913895#endif
     
    42114215                  if (err_num < 0)
    42124216                    sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    4213                                     errorExplain(err_num),
     4217                                    errorExplain(err_num, expbuf, sizeof(expbuf)),
    42144218                                    _("sh_forward_prep_send_int: makeKey"));
    42154219                  err_num = makeKey(&(conn->client_entry->keyInstD),
     
    42184222                  if (err_num < 0)
    42194223                    sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    4220                                     errorExplain(err_num),
     4224                                    errorExplain(err_num, expbuf, sizeof(expbuf)),
    42214225                                    _("sh_forward_prep_send_int: makeKey"));
    42224226#endif
     
    43124316  cipherInstance          cipherInst;
    43134317  int                     err_num;
     4318  char expbuf[SH_ERRBUF_SIZE];
    43144319#endif
    43154320
     
    44104415                  if (err_num < 0)
    44114416                    sh_error_handle((-1), FIL__, __LINE__, -1, MSG_E_SUBGEN,
    4412                                     errorExplain(err_num),
     4417                                    errorExplain(err_num, expbuf, sizeof(expbuf)),
    44134418                                    _("sh_forward_do_read: cipherInit"));
    44144419
     
    44224427                        sh_error_handle((-1), FIL__, __LINE__, -1,
    44234428                                        MSG_E_SUBGEN,
    4424                                         errorExplain(err_num),
     4429                                        errorExplain(err_num, expbuf, sizeof(expbuf)),
    44254430                                        _("sh_forward_do_read: blockDecrypt"));
    44264431                      memcpy(q, outBlock, B_SIZ);
     
    46504655  else
    46514656    {
     4657      char err_buf[SH_ERRBUF_SIZE];
    46524658      errflag = errno;
    46534659      sh_error_handle((-1), FIL__, __LINE__, 0, MSG_E_SUBGEN,
    4654                       sh_error_message(errflag), _("accept"));
     4660                      sh_error_message(errflag,err_buf, sizeof(err_buf)), _("accept"));
    46554661      newconn->fd    = -1;
    46564662      newconn->state = CONN_FREE;
     
    47324738int sh_forward_printerr_final(int slot)
    47334739{
     4740  char errbuf[SH_ERRBUF_SIZE];
     4741
    47344742  SL_ENTER(_("sh_forward_printerr_final"));
    47354743  if (sock_err[slot].msg[0] != '\0')
     
    47374745      dlog(1, FIL__, __LINE__,
    47384746           _("Could not set up the listening socket for the server because of the\nfollowing error: %s\nPossible reasons include:\n - insufficient privilege for UID %d, or\n - the port %d is already used by another program.\n"),
    4739            sh_error_message(sock_err[slot].errnum), sock_err[slot].euid,
     4747           sh_error_message(sock_err[slot].errnum, errbuf, sizeof(errbuf)),
     4748           sock_err[slot].euid,
    47404749           sock_err[slot].port);
    47414750      sh_error_handle((-1), FIL__, sock_err[slot].line,
    47424751                      sock_err[slot].errnum, MSG_EXIT_ABORTS,
    4743                       sh_error_message(sock_err[slot].errnum),
     4752                      sh_error_message(sock_err[slot].errnum, errbuf, sizeof(errbuf)),
    47444753                      sh.prg_name,
    47454754                      sock_err[slot].msg);
     
    51805189      if ( num_sel < 0 )        /* some error             */
    51815190        {
     5191          char errbuf[SH_ERRBUF_SIZE];
     5192
    51825193          if (sig_raised == 1)
    51835194            {
     
    52075218
    52085219          sh_error_handle((-1), FIL__, __LINE__, errnum, MSG_EXIT_ABORTS,
    5209                           sh_error_message(errnum),
     5220                          sh_error_message(errnum, errbuf, sizeof(errbuf)),
    52105221                          sh.prg_name,
    52115222                          _("select"));
     
    55355546  char               buf[1048];
    55365547  struct sockaddr_in from;
     5548  char errbuf[SH_ERRBUF_SIZE];
    55375549
    55385550  /* The 6th argument in recvfrom is *socklen_t in Linux and *BSD,
     
    55755587          TPT(( 0, FIL__, __LINE__, _("msg=<UDP error: %d>\n"), res));
    55765588          sh_error_handle((-1), FIL__, __LINE__, res, MSG_ERR_SYSLOG,
    5577                           sh_error_message(res), my_inet_ntoa(from.sin_addr));
     5589                          sh_error_message(res, errbuf, sizeof(errbuf)),
     5590                          my_inet_ntoa(from.sin_addr));
    55785591          SL_RETURN( (-1), _("recv_syslog_socket"));
    55795592        }     
     
    56345647      TPT(( 0, FIL__, __LINE__, _("msg=<UDP error: %d>\n"), res));
    56355648      sh_error_handle((-1), FIL__, __LINE__, res, MSG_ERR_SYSLOG,
    5636                       sh_error_message(res), my_inet_ntoa(from.sin_addr));
     5649                      sh_error_message(res, errbuf, sizeof(errbuf)),
     5650                      my_inet_ntoa(from.sin_addr));
    56375651
    56385652      /* don't accept anything the next 2 seconds
Note: See TracChangeset for help on using the changeset viewer.