コード例 #1
0
ファイル: forwarder.c プロジェクト: FlavioFalcao/tinq-core
static qeo_retcode_t fwd_server_unregister(qeo_factory_t *factory)
{
    qeo_retcode_t             rc = QEO_OK;

    if (!qeocore_parameter_get_number("FWD_DISABLE_LOCATION_SERVICE")) {
        qeo_security_hndl         qeo_sec = factory->qeo_sec;
        qeo_mgmt_client_retcode_t mgmt_rc = QMGMTCLIENT_EFAIL;
        qeo_mgmt_client_ctx_t     *mgmt_client_ctx = NULL;
        int                       nrOfLocators = 0;


        do {
            if (QEO_OK != (rc = qeo_security_get_mgmt_client_ctx(qeo_sec, &mgmt_client_ctx))) {
                qeo_log_e("unregister_forwarder get security mgmt client failed (rc=%d)", rc);
                break;
            }

            /* Now register the forwarder. */
            qeo_log_i("unregister the forwarder");
            if ((mgmt_rc = qeo_mgmt_client_register_forwarder(mgmt_client_ctx,
                                                              factory->qeo_id.url,
                                                              NULL,
                                                              nrOfLocators,
                                                              ssl_ctx_cb,
                                                              qeo_sec)) != QMGMTCLIENT_OK) {
                qeo_log_e("unregister forwarder failed (rc=%d)", mgmt_rc);
                rc = QEO_EFAIL;
                break;
            }

        } while (0);
    }
    return rc;
}
コード例 #2
0
ファイル: forwarder.c プロジェクト: FlavioFalcao/tinq-core
static qeo_retcode_t fwd_server_register(qeo_factory_t *factory)
{
    qeo_retcode_t             rc = QEO_OK;

    if (!qeocore_parameter_get_number("FWD_DISABLE_LOCATION_SERVICE")) {
        qeo_security_hndl         qeo_sec = factory->qeo_sec;
        qeo_mgmt_client_retcode_t mgmt_rc = QMGMTCLIENT_EFAIL;
        qeo_mgmt_client_ctx_t     *mgmt_client_ctx = NULL;
        qeo_mgmt_client_locator_t locator={QMGMT_LOCATORTYPE_TCPV4, factory->fwd.locator->address, factory->fwd.locator->port};
        int                       nrOfLocators = 1;

        do {
            if ((rc = qeo_security_get_mgmt_client_ctx(qeo_sec, &mgmt_client_ctx)) != QEO_OK) {
                qeo_log_e("register_forwarder get security mgmt client failed (rc=%d)", rc);
                break;
            }
            /* Now register the forwarder. */
            qeo_log_i("register the forwarder with locator address %s:port %d\n", locator.address, locator.port);
            if ((mgmt_rc = qeo_mgmt_client_register_forwarder(mgmt_client_ctx,
                                                              factory->qeo_id.url,
                                                              &locator,
                                                              nrOfLocators,
                                                              ssl_ctx_cb,
                                                              qeo_sec)) != QMGMTCLIENT_OK) {
                qeo_log_e("register forwarder failed (rc=%d)", mgmt_rc);
                rc = QEO_EFAIL;
                break;
            }

        } while (0);
    }
    return rc;
}
コード例 #3
0
ファイル: fwd.c プロジェクト: JianlongCao/qeo-core
END_TEST


START_TEST(test_register_error_forwarders)
{
    qeo_mgmt_client_locator_t locators[4]={};
    int i = 0;

    for (i = 0; i < 4; i++) {
        locators[i].address = "212.118.224.153";
        locators[i].type = QMGMT_LOCATORTYPE_TCPV4;
        locators[i].port = 7400;

        locators[i].type = QMGMT_LOCATORTYPE_UNKNOWN;
        ck_assert_int_eq(
                qeo_mgmt_client_register_forwarder(s_ctx, TEST_URL, locators, i+1, my_ssl_cb, (void*)COOKIE_MAGIC_NUMBER),
                QMGMTCLIENT_EINVAL);
        locators[i].type = QMGMT_LOCATORTYPE_TCPV4;

        locators[i].port = -1;
        ck_assert_int_eq(
                qeo_mgmt_client_register_forwarder(s_ctx, TEST_URL, locators, i+1, my_ssl_cb, (void*)COOKIE_MAGIC_NUMBER),
                QMGMTCLIENT_OK);
        locators[i].port = 0xFFFF;
        ck_assert_int_eq(
                qeo_mgmt_client_register_forwarder(s_ctx, TEST_URL, locators, i+1, my_ssl_cb, (void*)COOKIE_MAGIC_NUMBER),
                QMGMTCLIENT_OK);
        locators[i].port = -2;
        ck_assert_int_eq(
                qeo_mgmt_client_register_forwarder(s_ctx, TEST_URL, locators, i+1, my_ssl_cb, (void*)COOKIE_MAGIC_NUMBER),
                QMGMTCLIENT_EINVAL);
        locators[i].port = 0x10000;
        ck_assert_int_eq(
                qeo_mgmt_client_register_forwarder(s_ctx, TEST_URL, locators, i+1, my_ssl_cb, (void*)COOKIE_MAGIC_NUMBER),
                QMGMTCLIENT_EINVAL);
        locators[i].port = 6666;

        locators[i].address = NULL;
        ck_assert_int_eq(
                qeo_mgmt_client_register_forwarder(s_ctx, TEST_URL, locators, i+1, my_ssl_cb, (void*)COOKIE_MAGIC_NUMBER),
                QMGMTCLIENT_EINVAL);
        locators[i].address = "212.118.224.153";
    }

}