Subject Re: How to troubleshoot "connection rejected by remote interface" error? Something has got wrong...
Author
It is superserver.

I tried to skim the source code - tha call stack is:

INET_analyze
    INET_connect
        send_full(port, packet)
            xdr_protocol(&port->port_send, packet) / bool_t xdr_protocol(XDR* xdrs, PACKET* p)
                case op_connect:
                {
                    connect = &p->p_cnct; //is this really some function call? Function with name/address p_cnct?

So - the call packet->p_cnct determines all. I hoped to narrow down the call stack to the single socket operation from which I could deduce the result of packet->p_operation (the full list of possible values are in the protocol.h P_OP enumeration) but at present I can not do it.

My understanding is that p_cnct is expanded further and the resulting determination of the value of p_operation involves both technical (e.g. connectivity issues) and logical (e.g. some kind of processing of connection data done by Firebird server) factors, so I can not rely that those factors would be logged in some journals of the operating system.

I see that xdr_protocol involved DEBUG_XDR_PACKET(xdrs, p); i.e. I could catch the error using the debug relesae of the server/client... But I am not user whether I can put debug release in the production environment...