w_inst.c File Reference

Contains install and remove functions that manipulate the windows services API and windows registry. More...

#include "config.h"
#include "winrc/w_inst.h"
#include "winrc/win_svc.h"

Functions

void wsvc_err2str (char *str, size_t len, const char *fixed, DWORD err)
 Convert windows GetLastError() value to a neat string. More...
 
static void fatal_win (FILE *out, const char *str)
 exit with windows error
 
static void event_reg_install (FILE *out, const char *pathname)
 install registry entries for eventlog
 
static void event_reg_remove (FILE *out)
 remove registry entries for eventlog
 
static void quote_it (FILE *out, char *str, size_t maxlen)
 put quotes around string. More...
 
static void change (FILE *out, char *path, size_t max, const char *from, const char *to)
 change suffix
 
void wsvc_install (FILE *out, const char *rename)
 Install service in servicecontrolmanager, setup registry. More...
 
void wsvc_remove (FILE *out)
 Remove installed service from servicecontrolmanager, registry entries. More...
 
void wsvc_rc_start (FILE *out)
 Start the service from servicecontrolmanager, tells OS to start daemon. More...
 
void wsvc_rc_stop (FILE *out)
 Stop the service from servicecontrolmanager, tells OS to stop daemon. More...
 

Detailed Description

Contains install and remove functions that manipulate the windows services API and windows registry.

Function Documentation

◆ wsvc_err2str()

void wsvc_err2str ( char *  str,
size_t  len,
const char *  fixed,
DWORD  err 
)

Convert windows GetLastError() value to a neat string.

Parameters
strdestination buffer
lenlength of dest buffer
fixedfixed text to prepend to string.
errthe GetLastError() value.

◆ quote_it()

static void quote_it ( FILE *  out,
char *  str,
size_t  maxlen 
)
static

put quotes around string.

Needs one space in front

Parameters
outdebugfile
strto be quoted.
maxlenmax length of the string buffer.

Referenced by wsvc_install().

◆ wsvc_install()

void wsvc_install ( FILE *  out,
const char *  rename 
)

Install service in servicecontrolmanager, setup registry.

Parameters
outdebug output printed here (errors). or NULL.
renameif nonNULL this executable is not unbound.exe but this name.

References change(), event_reg_install(), fatal_win(), quote_it(), and SERVICE_NAME.

Referenced by main(), and wsvc_command_option().

◆ wsvc_remove()

void wsvc_remove ( FILE *  out)

Remove installed service from servicecontrolmanager, registry entries.

Parameters
outdebug output printed here (errors). or NULL.

References event_reg_remove(), fatal_win(), and SERVICE_NAME.

Referenced by main(), and wsvc_command_option().

◆ wsvc_rc_start()

void wsvc_rc_start ( FILE *  out)

Start the service from servicecontrolmanager, tells OS to start daemon.

Parameters
outdebug output printed here (errors). or NULL.

References fatal_win(), and SERVICE_NAME.

Referenced by main(), and wsvc_command_option().

◆ wsvc_rc_stop()

void wsvc_rc_stop ( FILE *  out)

Stop the service from servicecontrolmanager, tells OS to stop daemon.

Parameters
outdebug output printed here (errors). or NULL.

References fatal_win(), and SERVICE_NAME.

Referenced by main(), and wsvc_command_option().