netatalk  4.4.0
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
asp_getsess.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/uio.h>
#include <sys/socket.h>
#include <sys/param.h>
#include <sys/wait.h>
#include <netatalk/at.h>
#include <atalk/logger.h>
#include <atalk/compat.h>
#include <atalk/atp.h>
#include <atalk/asp.h>
#include <atalk/server_child.h>
#include <atalk/util.h>
#include "asp_child.h"

Macros

#define WEXITSTATUS(stat_val)
#define WIFEXITED(stat_val)

Functions

static void tickle_handler (int sig)
 send tickles and check tickle status of connections
void asp_kill (int sig)
void asp_stop_tickle (void)
static void set_asp_ac (int sid, struct asp_child *tmp)
ASP asp_getsession (ASP asp, server_child_t *server_children, const int tickleval)
 This call handles open, tickle, and getstatus requests.

Variables

static ASP server_asp
static server_child_tchildren = NULL
static struct asp_child ** asp_ac = NULL

Macro Definition Documentation

◆ WEXITSTATUS

#define WEXITSTATUS ( stat_val)
Value:
((unsigned)(stat_val) >> 8)

◆ WIFEXITED

#define WIFEXITED ( stat_val)
Value:
(((stat_val) & 255) == 0)

Function Documentation

◆ asp_getsession()

ASP asp_getsession ( ASP asp,
server_child_t * server_children,
const int tickleval )

This call handles open, tickle, and getstatus requests.

Note
On a successful open, it forks a child process.
Returns
an ASP to the child and parent and NULL if there is an error.

◆ asp_kill()

void asp_kill ( int sig)

kill children

◆ asp_stop_tickle()

void asp_stop_tickle ( void )

◆ set_asp_ac()

void set_asp_ac ( int sid,
struct asp_child * tmp )
static

◆ tickle_handler()

void tickle_handler ( int sig)
static

send tickles and check tickle status of connections

thoughts on using a hashed list:

  • + child_cleanup, finding slots
  • - tickle_handler, freeing, tickles

if setup for a large number of connections:

  • + space: if actual connections < potential
  • - space: actual connections ~ potential

Variable Documentation

◆ asp_ac

struct asp_child** asp_ac = NULL
static

◆ children

server_child_t* children = NULL
static

◆ server_asp

ASP server_asp
static