error reporting from FIFO commands introduced
[sip-router] / fifo_server.h
1 /*
2  * $Id$
3  *
4  */
5
6 #ifndef _FIFO_SERVER_H
7 #define _FIFO_SERVER_H
8
9 #include <stdio.h>
10
11 #define CMD_SEPARATOR ':'
12
13 /* core FIFO command set */
14 #define FIFO_PRINT "print"
15 #define FIFO_UPTIME "uptime"
16 #define FIFO_VERSION "version"
17
18 typedef int (fifo_cmd)( FILE *fifo_stream, char *response_file );
19
20 struct fifo_command{
21         fifo_cmd *f;
22         struct fifo_command *next;
23         void *param;
24         char *name;
25 };
26
27 int register_fifo_cmd(fifo_cmd f, char *cmd_name, void *param);
28
29 /* read a single EoL-terminated line from fifo */
30 int read_line( char *b, int max, FILE *stream, int *read );
31 /* consume EoL from fifo */
32 int read_eol( FILE *stream );
33 /* consume a set of EoL-terminated lines terminated by an additional EoL */
34 int read_line_set(char *buf, int max_len, FILE *fifo, int *len);
35 /* consume a set of EoL-terminated lines terminated by a single dot line */
36 int read_body(char *buf, int max_len, FILE *fifo, int *len);
37
38 int open_fifo_server();
39
40 /* regsiter core FIFO command set */
41 int register_core_fifo();
42
43 FILE *open_reply_pipe( char *pipe_name );
44
45 /* tell FIFO client an error occured via reply pipe */
46 void fifo_reply( char *reply_fifo, char *reply_txt);
47
48
49 #endif