1    | /***************************************
2    |   $Revision: 1.6 $
3    | 
4    |   Near real-time mirror server module (pm).  NRTM  protocol.
5    | 
6    |   Status: NOT REVUED, NOT TESTED
7    | 
8    |   +html+ <DL COMPACT>
9    |   +html+ <DT>Online References:
10   |   +html+ <DD><UL>
11   |   +html+ </UL>
12   |   +html+ </DL>
13   |   +html+ <PRE>
14   |   Author:
15   |       andrei
16   |   +html+ </PRE>
17   |  
18   |   ******************/ /******************
19   |   Copyright (c) 2000                              RIPE NCC
20   |  
21   |   All Rights Reserved
22   |   
23   |   Permission to use, copy, modify, and distribute this software and its
24   |   documentation for any purpose and without fee is hereby granted,
25   |   provided that the above copyright notice appear in all copies and that
26   |   both that copyright notice and this permission notice appear in
27   |   supporting documentation, and that the name of the author not be
28   |   used in advertising or publicity pertaining to distribution of the
29   |   software without specific, written prior permission.
30   |   
31   |   THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
32   |   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS; IN NO EVENT SHALL
33   |   AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
34   |   DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
35   |   AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
36   |   OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
37   |   ***************************************/
38   | #ifndef PM_H
39   | #define PM_H
40   | 
41   | #include <glib.h>
42   | #include "mysql_driver.h"
43   | #include "iproutines.h"
44   | #include "aa.h"
45   | 
46   | 
47   | /*+ String sizes +*/
48   | #define STR_S   63
49   | #define STR_M   255
50   | #define STR_L   1023
51   | #define STR_XL  4095
52   | #define STR_XXL 16383
53   | 
54   | /*+ Maximum size of input that can be recieved from the client. +*/
55   | #define MAX_PM_INPUT_SIZE  256
56   | 
57   | typedef struct _nrtm_q_t {
58   |  char *source;
59   |  int version;
60   |  long first;
61   |  long last;
62   | } nrtm_q_t;
63   |     
64   | #define PM_get_current_serial(connection) PM_get_minmax_serial(connection, 1)
65   | #define PM_get_oldest_serial(connection) PM_get_minmax_serial(connection, 0)
66   | 
67   | 
68   | long PM_get_minmax_serial(SQ_connection_t *sql_connection, int max);
69   | char *PM_get_serial_object(SQ_connection_t *sql_connection, long serial_number, int *operation);
70   | GString *PM_get_nrtm_sources(ip_addr_t *client_address, char *source);
71   | 
72   | void PM_interact(int sock);
73   | 
74   | #endif /* PM_H */