Commit b3c3d891 authored by Jani Salonen's avatar Jani Salonen Committed by Quanah Gibson-Mount
Browse files

ITS#7305 add slapi_[get|free]_client_ip()

parent fc5f77e1
...@@ -399,6 +399,8 @@ void slapi_seq_internal_set_pb( Slapi_PBlock *pb, char *ibase, int type, ...@@ -399,6 +399,8 @@ void slapi_seq_internal_set_pb( Slapi_PBlock *pb, char *ibase, int type,
/* connection related routines */ /* connection related routines */
int slapi_is_connection_ssl(Slapi_PBlock *pPB, int *isSSL); int slapi_is_connection_ssl(Slapi_PBlock *pPB, int *isSSL);
int slapi_get_client_port(Slapi_PBlock *pPB, int *fromPort); 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 */ /* computed attributes */
typedef struct _computed_attr_context computed_attr_context; typedef struct _computed_attr_context computed_attr_context;
......
...@@ -1843,6 +1843,43 @@ slapi_pw_find( ...@@ -1843,6 +1843,43 @@ slapi_pw_find(
return 1; 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 #define MAX_HOSTNAME 512
char * char *
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment