1 | /*************************************** 2 | $Revision: 1.7 $ 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 | /* server needs to yield one serial less just in case the last one causes the crash */ 58 | #define SAFE_BACKLOG 1 59 | 60 | 61 | 62 | typedef struct _nrtm_q_t { 63 | char *source; 64 | int version; 65 | long first; 66 | long last; 67 | } nrtm_q_t; 68 | 69 | #define PM_get_current_serial(connection) PM_get_minmax_serial(connection, 1) 70 | #define PM_get_oldest_serial(connection) PM_get_minmax_serial(connection, 0) 71 | 72 | 73 | long PM_get_minmax_serial(SQ_connection_t *sql_connection, int max); 74 | char *PM_get_serial_object(SQ_connection_t *sql_connection, long serial_number, int *operation); 75 | GString *PM_get_nrtm_sources(ip_addr_t *client_address, char *source); 76 | 77 | void PM_interact(int sock); 78 | 79 | #endif /* PM_H */