[389-devel] 49086: Target spec and target address
Hi, While looking into the failure of test 48272 (addn), I realised that we were using both target_address and target_spec in the operation struct. The pblock is a bit inconsistent about their usage also. I've attached a list of the places we use them. I think that this is a mistake, we really only need "one" target value (probably target_spec). I want to propose that we drop target_address for target_spec, update the pblock to use operation_set_target_spec as needed. However, I don't know the full history of these values, so I would like your input to this design. Is there a difference between target_spec and target_address? Thanks, -- Sincerely, William Brown Software Engineer Red Hat, Brisbane [william@rei 13:15] ~/development/389ds/ds I0> grep -r -n -e 'target_address' ldap/servers/plugins/replication/replutil.c:440:if (op->target_address.uniqueid == NULL) ldap/servers/plugins/replication/replutil.c:447:if (op->target_address.sdn == NULL) ldap/servers/plugins/replication/windows_inc_protocol.c:1099:return (strcmp (op->target_address.uniqueid, START_ITERATION_ENTRY_UNIQUEID) == 0); ldap/servers/plugins/replication/windows_inc_protocol.c:1341: entry.op->target_address.uniqueid, csn_str, ldap/servers/plugins/replication/windows_inc_protocol.c:1355: entry.op->target_address.uniqueid, csn_str, ldap/servers/plugins/replication/windows_inc_protocol.c:1366: entry.op->target_address.uniqueid, csn_str, ldap/servers/plugins/replication/windows_inc_protocol.c:1381: entry.op->target_address.uniqueid, csn_str); ldap/servers/plugins/replication/repl5_plugins.c:1136: op_params->target_address.uniqueid = slapi_ch_strdup (uniqueid); ldap/servers/plugins/replication/repl5_plugins.c:1167: REPL_GET_DN(_params->target_address), ldap/servers/plugins/replication/repl5_plugins.c:1168: op_params->target_address.uniqueid, ldap/servers/plugins/replication/repl5_plugins.c:1177: slapi_ch_free((void**)_params->target_address.uniqueid); ldap/servers/plugins/replication/repl5_plugins.c:1193: const char *dn = op_params ? REPL_GET_DN(_params->target_address) : "unknown"; ldap/servers/plugins/replication/repl5_plugins.c:1194: Slapi_DN *sdn = op_params ? (_params->target_address)->sdn : NULL; ldap/servers/plugins/replication/repl5_plugins.c:1195: char *uniqueid = op_params ? op_params->target_address.uniqueid : "unknown"; ldap/servers/plugins/replication/windows_protocol_util.c:1550: local_dn = slapi_sdn_dup( op->target_address.sdn ); ldap/servers/plugins/replication/windows_protocol_util.c:1559: rc = windows_get_local_entry_by_uniqueid(prp, op->target_address.uniqueid, _entry, 0); ldap/servers/plugins/replication/windows_protocol_util.c:1561: rc = windows_get_local_tombstone_by_uniqueid(prp, op->target_address.uniqueid, _entry); ldap/servers/plugins/replication/windows_protocol_util.c:1570: op->target_address.uniqueid, _entry, 1 /* is_global */); ldap/servers/plugins/replication/windows_protocol_util.c:1577: REPL_GET_DN(>target_address)); ldap/servers/plugins/replication/windows_protocol_util.c:1590: REPL_GET_DN(>target_address)); ldap/servers/plugins/replication/windows_protocol_util.c:1596: REPL_GET_DN(>target_address), "ours"); ldap/servers/plugins/replication/windows_protocol_util.c:1615: REPL_GET_DN(>target_address), is_ours ? "ours" : "not ours", ldap/servers/plugins/replication/windows_protocol_util.c:1629: REPL_GET_DN(>target_address), ldap/servers/plugins/replication/windows_protocol_util.c:1637: REPL_GET_DN(>target_address), slapi_sdn_get_dn(remote_dn)); ldap/servers/plugins/replication/repl5_inc_protocol.c:1339: if (create_NSDS50ReplUpdateInfoControl(op->target_address.uniqueid, ldap/servers/plugins/replication/repl5_inc_protocol.c:1353: op2string(op->operation_type), REPL_GET_DN(>target_address), ldap/servers/plugins/replication/repl5_inc_protocol.c:1387: REPL_GET_DN(>target_address), ldap/servers/plugins/replication/repl5_inc_protocol.c:1392: return_value = conn_send_add(prp->conn, REPL_GET_DN(>target_address), ldap/servers/plugins/replication/repl5_inc_protocol.c:1412: REPL_GET_DN(>target_address), ldap/servers/plugins/replication/repl5_inc_protocol.c:1417: return_value =
[389-devel] 49086: Target spec and target address
Hi, While looking into the failure of test 48272 (addn), I realised that we were using both target_address and target_spec in the operation struct. The pblock is a bit inconsistent about their usage also. I've attached a list of the places we use them. I think that this is a mistake, we really only need "one" target value (probably target_spec). I want to propose that we drop target_address for target_spec, update the pblock to use operation_set_target_spec as needed. However, I don't know the full history of these values, so I would like your input to this design. Is there a difference between target_spec and target_address? Thanks, -- Sincerely, William Brown Software Engineer Red Hat, Brisbane [william@rei 13:15] ~/development/389ds/ds I0> grep -r -n -e 'target_address' ldap/servers/plugins/replication/replutil.c:440:if (op->target_address.uniqueid == NULL) ldap/servers/plugins/replication/replutil.c:447:if (op->target_address.sdn == NULL) ldap/servers/plugins/replication/windows_inc_protocol.c:1099:return (strcmp (op->target_address.uniqueid, START_ITERATION_ENTRY_UNIQUEID) == 0); ldap/servers/plugins/replication/windows_inc_protocol.c:1341: entry.op->target_address.uniqueid, csn_str, ldap/servers/plugins/replication/windows_inc_protocol.c:1355: entry.op->target_address.uniqueid, csn_str, ldap/servers/plugins/replication/windows_inc_protocol.c:1366: entry.op->target_address.uniqueid, csn_str, ldap/servers/plugins/replication/windows_inc_protocol.c:1381: entry.op->target_address.uniqueid, csn_str); ldap/servers/plugins/replication/repl5_plugins.c:1136: op_params->target_address.uniqueid = slapi_ch_strdup (uniqueid); ldap/servers/plugins/replication/repl5_plugins.c:1167: REPL_GET_DN(_params->target_address), ldap/servers/plugins/replication/repl5_plugins.c:1168: op_params->target_address.uniqueid, ldap/servers/plugins/replication/repl5_plugins.c:1177: slapi_ch_free((void**)_params->target_address.uniqueid); ldap/servers/plugins/replication/repl5_plugins.c:1193: const char *dn = op_params ? REPL_GET_DN(_params->target_address) : "unknown"; ldap/servers/plugins/replication/repl5_plugins.c:1194: Slapi_DN *sdn = op_params ? (_params->target_address)->sdn : NULL; ldap/servers/plugins/replication/repl5_plugins.c:1195: char *uniqueid = op_params ? op_params->target_address.uniqueid : "unknown"; ldap/servers/plugins/replication/windows_protocol_util.c:1550: local_dn = slapi_sdn_dup( op->target_address.sdn ); ldap/servers/plugins/replication/windows_protocol_util.c:1559: rc = windows_get_local_entry_by_uniqueid(prp, op->target_address.uniqueid, _entry, 0); ldap/servers/plugins/replication/windows_protocol_util.c:1561: rc = windows_get_local_tombstone_by_uniqueid(prp, op->target_address.uniqueid, _entry); ldap/servers/plugins/replication/windows_protocol_util.c:1570: op->target_address.uniqueid, _entry, 1 /* is_global */); ldap/servers/plugins/replication/windows_protocol_util.c:1577: REPL_GET_DN(>target_address)); ldap/servers/plugins/replication/windows_protocol_util.c:1590: REPL_GET_DN(>target_address)); ldap/servers/plugins/replication/windows_protocol_util.c:1596: REPL_GET_DN(>target_address), "ours"); ldap/servers/plugins/replication/windows_protocol_util.c:1615: REPL_GET_DN(>target_address), is_ours ? "ours" : "not ours", ldap/servers/plugins/replication/windows_protocol_util.c:1629: REPL_GET_DN(>target_address), ldap/servers/plugins/replication/windows_protocol_util.c:1637: REPL_GET_DN(>target_address), slapi_sdn_get_dn(remote_dn)); ldap/servers/plugins/replication/repl5_inc_protocol.c:1339: if (create_NSDS50ReplUpdateInfoControl(op->target_address.uniqueid, ldap/servers/plugins/replication/repl5_inc_protocol.c:1353: op2string(op->operation_type), REPL_GET_DN(>target_address), ldap/servers/plugins/replication/repl5_inc_protocol.c:1387: REPL_GET_DN(>target_address), ldap/servers/plugins/replication/repl5_inc_protocol.c:1392: return_value = conn_send_add(prp->conn, REPL_GET_DN(>target_address), ldap/servers/plugins/replication/repl5_inc_protocol.c:1412: REPL_GET_DN(>target_address), ldap/servers/plugins/replication/repl5_inc_protocol.c:1417: return_value =