Changeset 1c567c5 in rtems for cpukit


Ignore:
Timestamp:
Oct 9, 2018, 1:42:42 PM (12 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
bf4c7ff6
Parents:
6d3ec58a
git-author:
Sebastian Huber <sebastian.huber@…> (10/09/18 13:42:42)
git-committer:
Sebastian Huber <sebastian.huber@…> (10/10/18 12:06:28)
Message:

telnetd: Rename shell_args to telnetd_session

Update #3543.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/telnetd/telnetd.c

    r6d3ec58a r1c567c5  
    6565typedef struct telnetd_context telnetd_context;
    6666
    67 struct shell_args {
     67typedef struct telnetd_session {
    6868  rtems_pty_context  pty;
    6969  char               peername[16];
    7070  telnetd_context   *ctx;
    71 };
     71} telnetd_session;
    7272
    7373struct telnetd_context {
     
    8686static telnetd_context telnetd_instance;
    8787
    88 static struct shell_args *grab_a_Connection(
     88static telnetd_session *grab_a_Connection(
    8989  telnetd_context *ctx,
    9090  int des_socket,
     
    9494)
    9595{
    96   struct shell_args *args;
     96  telnetd_session *session;
    9797  socklen_t size_adr = sizeof(srv->sin);
    9898  int acp_sock;
     
    102102  }
    103103
    104   args = malloc(sizeof(*args));
    105   if (args == NULL) {
     104  session = malloc(sizeof(*session));
     105  if (session == NULL) {
    106106    perror("telnetd:malloc");
    107107    return NULL;
     
    111111  if (acp_sock<0) {
    112112    perror("telnetd:accept");
    113     free(args);
     113    free(session);
    114114    return NULL;
    115115  };
    116116
    117   if (telnet_get_pty(&args->pty, acp_sock) == NULL) {
     117  if (telnet_get_pty(&session->pty, acp_sock) == NULL) {
    118118    syslog( LOG_DAEMON | LOG_ERR, "telnetd: unable to obtain PTY");
    119119    /* NOTE: failing 'do_get_pty()' closed the socket */
    120     free(args);
     120    free(session);
    121121    return NULL;
    122122  }
     
    129129      "telnetd: accepted connection from %s on %s",
    130130      peername,
    131       args->pty.name);
     131      session->pty.name);
    132132#endif
    133133
    134134  ++ctx->active_clients;
    135   args->ctx = ctx;
    136   return args;
     135  session->ctx = ctx;
     136  return session;
    137137}
    138138
     
    200200
    201201static void
    202 spawned_shell(rtems_task_argument arg);
     202telnetd_session_task(rtems_task_argument arg);
    203203
    204204/***********************************************************/
    205205static void
    206 telnetd_server_task(rtems_task_argument targ)
     206telnetd_server_task(rtems_task_argument arg)
    207207{
    208208  int                des_socket;
     
    211211  int                i=1;
    212212  int                size_adr;
    213   struct shell_args *arg = NULL;
     213  telnetd_session   *session = NULL;
    214214  rtems_id           task_id;
    215   telnetd_context   *ctx = (telnetd_context *) targ;
     215  telnetd_context   *ctx = (telnetd_context *) arg;
    216216
    217217  if ((des_socket=socket(PF_INET,SOCK_STREAM,0))<0) {
     
    240240   */
    241241  do {
    242     arg = grab_a_Connection(ctx, des_socket, &srv, peername,
     242    session = grab_a_Connection(ctx, des_socket, &srv, peername,
    243243      sizeof(peername));
    244244
    245     if (arg == NULL) {
     245    if (session == NULL) {
    246246      /* if something went wrong, sleep for some time */
    247247      sleep(10);
     
    249249    }
    250250
    251     strncpy(arg->peername, peername, sizeof(arg->peername));
     251    strncpy(session->peername, peername, sizeof(session->peername));
    252252
    253253    task_id = telnetd_spawn_task(
     
    255255      ctx->config.priority,
    256256      ctx->config.stack_size,
    257       spawned_shell,
    258       arg
     257      telnetd_session_task,
     258      session
    259259    );
    260260    if (task_id == RTEMS_ID_NONE) {
     
    268268       */
    269269
    270       if ( !(dummy=fopen(arg->pty.name,"r+")) )
     270      if ( !(dummy=fopen(session->pty.name,"r+")) )
    271271        perror("Unable to dummy open the pty, losing a slot :-(");
    272       release_a_Connection(ctx, arg->pty.name, peername, &dummy, 1);
    273       free(arg);
     272      release_a_Connection(ctx, session->pty.name, peername, &dummy, 1);
     273      free(session);
    274274      sleep(2); /* don't accept connections too fast */
    275275    }
     
    340340/* utility wrapper */
    341341static void
    342 spawned_shell(rtems_task_argument targ)
     342telnetd_session_task(rtems_task_argument arg)
    343343{
    344344  rtems_status_code    sc;
     
    346346  FILE                *ostd[3]={ stdin, stdout, stderr };
    347347  int                  i=0;
    348   struct shell_args  *arg = (struct shell_args *) targ;
    349   telnetd_context    *ctx = arg->ctx;
     348  telnetd_session    *session = (telnetd_session *) arg;
     349  telnetd_context    *ctx = session->ctx;
    350350  bool login_failed = false;
    351351  bool start = true;
     
    368368  /* redirect stdio */
    369369  for (i=0; i<3; i++) {
    370     if ( !(nstd[i]=fopen(arg->pty.name,"r+")) ) {
     370    if ( !(nstd[i]=fopen(session->pty.name,"r+")) ) {
    371371      perror("unable to open stdio");
    372372      goto cleanup;
     
    383383      stdin,
    384384      stderr,
    385       arg->pty.name,
     385      session->pty.name,
    386386      ctx->config.login_check
    387387    );
     
    389389  }
    390390  if (start) {
    391     ctx->config.command( arg->pty.name, ctx->config.arg);
     391    ctx->config.command( session->pty.name, ctx->config.arg);
    392392  }
    393393
     
    400400      LOG_AUTHPRIV | LOG_WARNING,
    401401      "telnetd: to many wrong passwords entered from %s",
    402       arg->peername
     402      session->peername
    403403    );
    404404  }
    405405
    406406cleanup:
    407   release_a_Connection(ctx, arg->pty.name, arg->peername, nstd, i);
    408   free(arg);
    409 }
     407  release_a_Connection(ctx, session->pty.name, session->peername, nstd, i);
     408  free(session);
     409}
Note: See TracChangeset for help on using the changeset viewer.