mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#7305 add slapi_[get|free]_client_ip()
This commit is contained in:
parent
450d224291
commit
a572f4b967
@ -399,6 +399,8 @@ void slapi_seq_internal_set_pb( Slapi_PBlock *pb, char *ibase, int type,
|
||||
/* connection related routines */
|
||||
int slapi_is_connection_ssl(Slapi_PBlock *pPB, int *isSSL);
|
||||
int slapi_get_client_port(Slapi_PBlock *pPB, int *fromPort);
|
||||
int slapi_get_client_ip(Slapi_PBlock *pb, char **clientIP);
|
||||
void slapi_free_client_ip(char **clientIP);
|
||||
|
||||
/* computed attributes */
|
||||
typedef struct _computed_attr_context computed_attr_context;
|
||||
|
@ -1843,6 +1843,43 @@ slapi_pw_find(
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Get connected client IP address.
|
||||
//
|
||||
// The user must free the returned client IP after its use.
|
||||
// Compatible with IBM Tivoli call.
|
||||
//
|
||||
// Errors:
|
||||
// * LDAP_PARAM_ERROR - If the pb parameter is null.
|
||||
// * LDAP_OPERATIONS_ERROR - If the API encounters error processing the request.
|
||||
// * LDAP_NO_MEMORY - Failed to allocate required memory.
|
||||
|
||||
int
|
||||
slapi_get_client_ip(Slapi_PBlock *pb, char **clientIP)
|
||||
{
|
||||
char *s = NULL;
|
||||
|
||||
if(pb == NULL || pb->pb_conn == NULL) return(LDAP_PARAM_ERROR);
|
||||
if((s = (char *) slapi_ch_malloc(pb->pb_conn->c_peer_name.bv_len + 1)) == NULL) {
|
||||
return(LDAP_NO_MEMORY);
|
||||
}
|
||||
|
||||
memcpy(s, pb->pb_conn->c_peer_name.bv_val, pb->pb_conn->c_peer_name.bv_len);
|
||||
|
||||
s[pb->pb_conn->c_peer_name.bv_len] = 0;
|
||||
|
||||
*clientIP = s;
|
||||
|
||||
return(LDAP_SUCCESS);
|
||||
}
|
||||
|
||||
// Free previously allocated client IP address.
|
||||
|
||||
void
|
||||
slapi_free_client_ip(char **clientIP)
|
||||
{
|
||||
slapi_ch_free((void **) clientIP);
|
||||
}
|
||||
|
||||
#define MAX_HOSTNAME 512
|
||||
|
||||
char *
|
||||
|
Loading…
Reference in New Issue
Block a user