netatalk  4.5.0
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
status.c File Reference
#include <arpa/inet.h>
#include <ctype.h>
#include <fcntl.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>
#include <atalk/dsi.h>
#include <atalk/atp.h>
#include <atalk/asp.h>
#include <atalk/globals.h>
#include <atalk/logger.h>
#include <atalk/unicode.h>
#include <atalk/util.h>
#include "afp_config.h"
#include "icon.h"
#include "status.h"
#include "uam_auth.h"

Functions

static int uam_gss_enabled (void)
 
static void status_flags (char *data, const int notif, const int ipok, const unsigned char passwdbits, const int dirsrvcs, int flags)
 
static int status_server (char *data, const char *server, const struct afp_options *options)
 
static void status_machine (char *data)
 
static uint16_t status_signature (char *data, int *servoffset, const struct afp_options *options)
 
static size_t status_netaddress (char *data, int *servoffset, const ASP asp, const DSI *dsi, const struct afp_options *options)
 
static size_t status_directorynames (char *data, int *diroffset, const DSI *dsi, const struct afp_options *options)
 Build the DirectoryNames field of the status reply.
 
static size_t status_utf8servername (char *data, int *nameoffset, const DSI *dsi, const struct afp_options *options)
 
static void status_icon (char *data, const unsigned char *icondata, const size_t iconlen, const int sigoffset)
 
void status_init (AFPObj *dsi_obj, AFPObj *asp_obj, DSI *dsi)
 
void set_signature (struct afp_options *options)
 Set the server signature.
 
int afp_getsrvrinfo (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 

Variables

static size_t maxstatuslen = 0
 

Function Documentation

◆ afp_getsrvrinfo()

int afp_getsrvrinfo ( AFPObj obj,
char *  ibuf,
size_t  ibuflen,
char *  rbuf,
size_t *  rbuflen 
)

◆ set_signature()

void set_signature ( struct afp_options options)

Set the server signature.

  • If found in conf file, use it.
  • If not found in conf file, genarate and append in conf file.
  • If conf file don't exist, create and genarate.
  • If cannot open conf file, use one-time signature.
  • If signature = xxxxx, use it.

◆ status_directorynames()

static size_t status_directorynames ( char *  data,
int *  diroffset,
const DSI dsi,
const struct afp_options options 
)
static

Build the DirectoryNames field of the status reply.

DirectoryNamesCount offset: uint16_t
...
DirectoryNamesCount: uint8_t
DirectoryNames: list of UTF-8 Pascal strings (uint8_t + char[1,255])
Definition etc/atalkd/list.h:6

◆ status_flags()

static void status_flags ( char *  data,
const int  notif,
const int  ipok,
const unsigned char  passwdbits,
const int  dirsrvcs,
int  flags 
)
static

◆ status_icon()

static void status_icon ( char *  data,
const unsigned char *  icondata,
const size_t  iconlen,
const int  sigoffset 
)
static

◆ status_init()

void status_init ( AFPObj dsi_obj,
AFPObj asp_obj,
DSI dsi 
)

◆ status_machine()

static void status_machine ( char *  data)
static

◆ status_netaddress()

static size_t status_netaddress ( char *  data,
int *  servoffset,
const ASP  asp,
const DSI dsi,
const struct afp_options options 
)
static

◆ status_server()

static int status_server ( char *  data,
const char *  server,
const struct afp_options options 
)
static

◆ status_signature()

static uint16_t status_signature ( char *  data,
int *  servoffset,
const struct afp_options options 
)
static

◆ status_utf8servername()

static size_t status_utf8servername ( char *  data,
int *  nameoffset,
const DSI dsi,
const struct afp_options options 
)
static

◆ uam_gss_enabled()

static int uam_gss_enabled ( void  )
static

Variable Documentation

◆ maxstatuslen

size_t maxstatuslen = 0
static