FreeRTOS+TCP 4.0.0 What is the "proper" way to change end-point settings

@NikhilKamath Thanks for responding so quickly.
Please consider the fact that I’m referring to changing settings after +TCP has been initialized. I am calling FreeRTOS_FillEndPoint() prior to calling FreeRTOS_IPInit_Multi() with no ill effects, however…

A few seconds after everything is initialized, I attempt to change the settings of one of my endpoints.
If I execute

xEndPoints[ 0 ].ipv4_defaults.ulIPAddress = uiIPAddress_NBO;
FreeRTOS_SetEndPointConfiguration( &uiIPAddress_NBO, &uiNetMask_NBO, &uiGateway_NBO, &uiDNS_NBO, &xEndPoints[0]);

everything works.
But if I try what you are suggesting and instead call this:

FreeRTOS_FillEndPoint( xEndPoints[ 0 ].pxNetworkInterface, &( xEndPoints[ 0 ] ), &uiIPAddress_NBO, &uiNetMask_NBO, &uiGateway_NBO, &uiDNS_NBO, MAC_Address_48 );

weird stuff happens… my IPv4 endpoint works, but my IPv6 endpoint stops working… I haven’t gotten to exactly what’s going on, but for now, let’s just leave it at “weird stuff that looks like bugs”

After some digging, I’m starting to really question whether calling FreeRTOS_FillEndPoint() after the TCP stack is initialized is a good idea.
Inside FreeRTOS_FillEndPoint() you can find things like:

( void ) memset( pxEndPoint, 0, sizeof( *pxEndPoint ) );

That can’t be good with the whole stack operating…
Further down. we see this:

( void ) FreeRTOS_AddEndPoint( pxNetworkInterface, pxEndPoint );

That is also causing something to go wrong but I haven’t figured out exactly what just yet.