[389-devel] 49086: Target spec and target address

2017-01-26 Thread William Brown
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

2017-01-11 Thread William Brown
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 =