This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
+ the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
struct wreplsrv_service;
struct wreplsrv_in_connection *wreplconn;
struct wrepl_packet req_packet;
struct wrepl_packet rep_packet;
- BOOL terminate_after_send;
+ bool terminate_after_send;
};
/*
*/
struct wreplsrv_partner *partner;
- /*
- * we need to take care of our own ip address,
- * as this is the WINS-Owner ID the peer expect
- * from us.
- */
- const char *our_ip;
-
/* keep track of the assoc_ctx's */
struct {
- BOOL stopped;
+ bool stopped;
uint32_t our_ctx;
uint32_t peer_ctx;
} assoc_ctx;
};
/*
- state of an outcoming wrepl connection
+ state of an outgoing wrepl connection
*/
struct wreplsrv_out_connection {
/* our global service context */
struct wreplsrv_service *service;
/*
- * the partner that connects us,
- * can be NULL, when we got a connection
- * from an unknown address
+ * the partner we connect
*/
struct wreplsrv_partner *partner;
/* change count till push notification */
uint32_t change_count;
+ /* the last wins db maxVersion have reported to the partner */
+ uint64_t maxVersionID;
+
/* we should use WREPL_REPL_INFORM* messages to this partner */
- BOOL use_inform;
+ bool use_inform;
/* the error count till the last success */
uint32_t error_count;
struct timeval startup_time;
/* the winsdb handle */
- struct ldb_context *wins_db;
+ struct winsdb_handle *wins_db;
/* some configuration */
struct {
/* the wins config db handle */
struct ldb_context *ldb;
+ /* the last wins config db seqnumber we know about */
+ uint64_t seqnumber;
+
/*
* the interval (in secs) till an active record will be marked as RELEASED
*/
/* all partners (pull and push) */
struct wreplsrv_partner *partners;
+ /*
+ * this is our local wins_owner entry, this is also in the table list
+ * but we need a pointer to it, because we need to update it on each
+ * query to wreplsrv_find_owner(), as the local records can be added
+ * to the wins.ldb from external tools and the winsserver
+ */
+ struct wreplsrv_owner *owner;
+
/* this is a list of each wins_owner we know about in our database */
struct wreplsrv_owner *table;
/*
* are we currently inside a scavenging run
*/
- BOOL processing;
+ bool processing;
} scavenging;
};
+struct socket_context;
+struct wrepl_name;
+#include "wrepl_server/wrepl_out_helpers.h"
#include "wrepl_server/wrepl_server_proto.h"