- wreplconn->conn = conn;
- wreplconn->service = service;
- wreplconn->our_ip = socket_get_my_addr(conn->socket, wreplconn);
- if (!wreplconn->our_ip) {
- wreplsrv_terminate_connection(wreplconn, "wreplsrv_accept: out of memory");
- return;
+ partner->service = service;
+ partner->address = address;
+ talloc_steal(partner, partner->address);
+
+ DLIST_ADD_END(service->partners, partner, struct wreplsrv_partner *);
+ }
+
+ partner->name = ldb_msg_find_attr_as_string(res->msgs[i], "name", partner->address);
+ talloc_steal(partner, partner->name);
+ partner->our_address = ldb_msg_find_attr_as_string(res->msgs[i], "ourAddress", NULL);
+ talloc_steal(partner, partner->our_address);
+
+ partner->type = ldb_msg_find_attr_as_uint(res->msgs[i], "type", WINSREPL_PARTNER_BOTH);
+ partner->pull.interval = ldb_msg_find_attr_as_uint(res->msgs[i], "pullInterval",
+ WINSREPL_DEFAULT_PULL_INTERVAL);
+ partner->pull.retry_interval = ldb_msg_find_attr_as_uint(res->msgs[i], "pullRetryInterval",
+ WINSREPL_DEFAULT_PULL_RETRY_INTERVAL);
+ partner->push.change_count = ldb_msg_find_attr_as_uint(res->msgs[i], "pushChangeCount",
+ WINSREPL_DEFAULT_PUSH_CHANGE_COUNT);
+ partner->push.use_inform = ldb_msg_find_attr_as_uint(res->msgs[i], "pushUseInform", true);
+
+ DEBUG(3,("wreplsrv_load_partners: found partner: %s type: 0x%X\n",
+ partner->address, partner->type));