• Patch: Elm ME+ 2.5 PLalpha51 -> Elm ME+ 2.5 PLalpha52 [4/7] (4/5)

    From Kari Hurtta@21:1/5 to All on Mon Jun 8 19:51:10 2020
    [continued from previous message]

    + if (ra->socknameaddr.dummy) {
    + free(ra->socknameaddr.dummy);
    + ra->socknameaddr.dummy = NULL;
    + }
    + ra->socknamesize = 0;
    }

    void clear_remote_account(ra)
    ***************
    *** 1446,1452 ****
    return connect_fail;
    }

    ! s = give_addr_as_string(ra->hostaddr.generic,mybuffer,sizeof mybuffer);

    DPRINT(Debug,12,(&Debug,
    "connect_one_IN: family=%d size=%ld",
    --- 1522,1529 ----
    return connect_fail;
    }

    ! s = give_SOCKADDR_ptr_as_string(ra->hostaddr,ra->addrsize,
    ! mybuffer,sizeof mybuffer);

    DPRINT(Debug,12,(&Debug,
    "connect_one_IN: family=%d size=%ld",
    ***************
    *** 2651,2656 ****
    --- 2728,2844 ----
    return r;
    }

    + static void update_ra_sockname P_((int cur_socket, struct remote_account *ra));
    + static void update_ra_sockname(cur_socket,ra)
    + int cur_socket;
    + struct remote_account *ra;
    + {
    +
    + #ifdef HAVE_GETSOCKNAME
    + SOCKADDR sockname;
    + GETSOCKNAME_SOCKLEN socknamelen = sizeof (sockname);
    + int r;
    +
    + /* getsockname can return local address of machine
    + only after socket is connected. Before that
    + routing is not done and source address is not
    + selected. before that wildcard address may be
    + returned.
    + */
    +
    + bzero(&sockname,sizeof (sockname));
    +
    + r = getsockname(cur_socket,&sockname.sa,&socknamelen);
    +