Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_forward.c

    r20 r27  
    335335#endif
    336336
    337 #ifdef SH_WITH_CLIENT
     337#if defined(SH_WITH_CLIENT) || defined(SH_WITH_SERVER)
    338338
    339339static int count_dev_server = 0;
     
    345345}
    346346
    347 int sh_forward_setlogserver (char * address)
     347int sh_forward_setlogserver (const char * address)
    348348{
    349349  SL_ENTER(_("sh_forward_setlogserver"));
     
    708708static long sh_forward_try (char * errmsg);
    709709
     710static unsigned int ServerPort = SH_DEFAULT_PORT;
     711
     712int sh_forward_server_port (const char * str)
     713{
     714  unsigned long l;
     715  char * endptr;
     716
     717  SL_ENTER(_("sh_forward_server_port"));
     718
     719  l = strtoul (str, &endptr, 0);
     720  if (l > 65535 || endptr == str)
     721    {
     722      SL_RETURN (-1, _("sh_forward_server_port"));
     723    }
     724  ServerPort = (unsigned int) l;
     725  SL_RETURN (0, _("sh_forward_server_port"));
     726}
    710727
    711728long sh_forward (char * errmsg)
     
    880897
    881898  sockfd = connect_port_2 (sh.srvexport.name, sh.srvexport.alt,
    882                            SH_DEFAULT_PORT,
     899                           ServerPort,
    883900                           error_call, &error_num, error_msg, 256);
    884901
     
    14411458                                                flag_err,
    14421459                                                MSG_TCP_NOCONF);
    1443                               } else {
     1460                              }
     1461#ifdef SH_WITH_CLIENT
     1462                              else {
    14441463                                sh_socket_server_cmd(buffer);
    14451464                              }
     1465#endif
    14461466                              flag_err = 0;
    14471467
     
    19111931
    19121932
    1913 int sh_forward_use_clt_class (char * c)
     1933int sh_forward_use_clt_class (const char * c)
    19141934{
    19151935  int i;
     
    19191939}
    19201940
    1921 int sh_forward_use_clt_sev (char * c)
     1941int sh_forward_use_clt_sev (const char * c)
    19221942{
    19231943  int i;
     
    19501970}
    19511971
    1952 extern int safe_logger (int signal, int method, pid_t thepid);
    1953 
    1954 int sh_forward_register_client (char * str)
     1972
     1973int sh_forward_register_client (const char * str)
    19551974{
    19561975  client_t   * newclt;
    19571976  client_t   * testclt;
    19581977
    1959   char      * ptr;
     1978  const char * ptr;
    19601979  int          sepnum = 0;
    19611980  int          sep[2];
     
    19801999      if (all_clients == NULL)
    19812000        {
    1982           (void) safe_logger (0, 0, getpid());
     2001          (void) safe_logger (0, 0, NULL);
    19832002          aud__exit(FIL__, __LINE__, EXIT_FAILURE);
    19842003        }
     
    20122031        newclt->status_arr[i] = CLT_INACTIVE;
    20132032      sl_strlcpy(newclt->timestamp[CLT_INACTIVE],   sh_unix_time(0), TIM_MAX);
     2033      /* truncate */
    20142034      sl_strlcpy(newclt->hostname,  &str[0],        sep[0]+1);
     2035      /* truncate */
    20152036      sl_strlcpy(newclt->salt,      &str[sep[0]+1], sep[1]-sep[0]);
    20162037      sl_strlcpy(newclt->verifier,  &str[sep[1]+1], sl_strlen(str)-sep[1]+1);
     
    23862407
    23872408#if defined(WITH_EXTERNAL)
    2388   sprintf(msg, _("%s %s %s"),                       /* known to fit  */
    2389           conn->hostname,
    2390           conn->timestamp[status],
    2391           _(clt_stat[status]));
     2409  sl_snprintf(msg, sizeof(msg), _("%s %s %s"),
     2410              conn->hostname, conn->timestamp[status], _(clt_stat[status]));
    23922411  sh_ext_execute('s', 'r', 'v', msg, 0);
    23932412#endif
     
    23982417static time_t time_client_limit = 86400;
    23992418
    2400 int sh_forward_set_time_limit (char * c)
     2419int sh_forward_set_time_limit (const char * c)
    24012420{
    24022421  long val;
     
    24482467static int lookup_err = SH_ERR_SEVERE;
    24492468
    2450 int sh_forward_lookup_level (char * c)
     2469int sh_forward_lookup_level (const char * c)
    24512470{
    24522471  int ci =  sh_error_convert_level (c);
     
    26032622static int UseSocketPeer = S_FALSE;
    26042623
    2605 int set_socket_peer (char * c)
     2624int set_socket_peer (const char * c)
    26062625{
    26072626  return sh_util_flagval(c, &UseSocketPeer);
     
    27312750  char       hash[SH_MAXMSGLEN + KEY_LEN + KEY_LEN + 1];
    27322751  char     * buffer;
    2733   long       len;
    27342752
    27352753  int        clt_sev;
     
    27372755
    27382756  UINT32     ticks;
     2757  size_t     len;
    27392758  int        i;
    27402759  char     * test;
     
    28212840                    sh_error_handle((-1), FIL__, __LINE__, 0, MSG_TCP_FAUTH,
    28222841                                    &(conn->buf[KEY_LEN]));
    2823                   strcpy(conn->buf,                      /* known to fit  */
    2824                          &(conn->buf[KEY_LEN]));
     2842                  len = sl_strlen(&(conn->buf[KEY_LEN])) + 1;
     2843                  /* &(conn->buf[KEY_LEN]) is hostname         */
     2844                  /* may overlap, thus only memmove is correct */
     2845                  memmove(conn->buf, &(conn->buf[KEY_LEN]), len);
    28252846                  this_client->session_key[0]    = '\0';
    28262847                  this_client->session_key_timer = (time_t) 1;
     
    28352856                  conn->K = NULL;
    28362857                }
    2837               i = sl_strlen(&(conn->buf[KEY_LEN])) + KEY_LEN + 1;
    2838               conn->K = SH_ALLOC(i);
     2858              len = sl_strlen(&(conn->buf[KEY_LEN])) + KEY_LEN + 1;
     2859              conn->K = SH_ALLOC(len);
    28392860
    28402861              sl_strlcpy (conn->K,
     
    29142935              conn->A = SH_ALLOC(3*KEY_LEN+1);
    29152936              sl_strlcpy (conn->A, conn->K, KEY_LEN+1);
    2916               sl_strlcat(conn->A, conn->buf, /* ignore remainder */
     2937              sl_strlcat(conn->A, conn->buf, /* truncate */
    29172938                         2*KEY_LEN+1);
    29182939              sl_strlcat(conn->A, conn->client_entry->session_key,
     
    32783299                    sh_error_handle((-1), FIL__, __LINE__, 0, MSG_TCP_FAUTH,
    32793300                                    &(conn->buf[KEY_LEN]));
    3280                   strcpy(conn->buf,                      /* known to fit  */
    3281                          &(conn->buf[KEY_LEN]));
     3301                  len = sl_strlen(&(conn->buf[KEY_LEN])) + 1;
     3302                  /* &(conn->buf[KEY_LEN]) is hostname         */
     3303                  /* may overlap, thus only memmove is correct */
     3304                  memmove(conn->buf, &(conn->buf[KEY_LEN]), len);
    32823305                  this_client->session_key[0]    = '\0';
    32833306                  this_client->session_key_timer = (time_t) 1;
     
    32933316                  conn->K = NULL;
    32943317                }
    3295               i = sl_strlen(&(conn->buf[KEY_LEN])) + KEY_LEN + 1;
    3296               conn->K = SH_ALLOC(i);
     3318              len = sl_strlen(&(conn->buf[KEY_LEN])) + KEY_LEN + 1;
     3319              conn->K = SH_ALLOC(len);
    32973320
    32983321              sl_strlcpy (conn->K,
     
    46004623static unsigned int server_port = SH_DEFAULT_PORT;
    46014624
    4602 int sh_forward_set_port (char * str)
     4625int sh_forward_set_port (const char * str)
    46034626{
    46044627  int retval = 0;
    46054628  unsigned long   i;
    4606   char * endptr = str;
     4629  char * endptr;
    46074630 
    46084631  SL_ENTER(_("sh_forward_set_port"));
     
    46214644static int            use_server_interface = 0;
    46224645
    4623 int sh_forward_set_interface (char * str)
     4646int sh_forward_set_interface (const char * str)
    46244647{
    46254648  if (0 == strcmp(str, _("INADDR_ANY")))
     
    48144837   */
    48154838  new_act.sa_handler = SIG_IGN;
     4839  sigemptyset( &new_act.sa_mask );         /* set an empty mask       */
     4840  new_act.sa_flags = 0;                    /* init sa_flags           */
    48164841  retry_sigaction (FIL__, __LINE__, SIGPIPE, &new_act, &old_act);
    48174842
     
    55715596}
    55725597
    5573 int set_syslog_active(char * c)
     5598int set_syslog_active(const char * c)
    55745599{
    55755600  return sh_util_flagval(c, &enable_syslog_socket);
Note: See TracChangeset for help on using the changeset viewer.