JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Cluster Reference Manual
search filter icon
search icon

Document Information

Preface

Introduction

OSC33 1

OSC33 1cl

OSC33 1ha

OSC33 1m

OSC33 3ha

scds_calls(3HA)

scds_close(3HA)

scds_error_string(3HA)

scds_error_string_i18n(3HA)

scds_failover_rg(3HA)

scds_fm_action(3HA)

scds_fm_net_connect(3HA)

scds_fm_net_disconnect(3HA)

scds_fm_print_probes(3HA)

scds_fm_sleep(3HA)

scds_fm_tcp_connect(3HA)

scds_fm_tcp_disconnect(3HA)

scds_fm_tcp_read(3HA)

scds_fm_tcp_write(3HA)

scds_free_ext_property(3HA)

scds_free_netaddr_list(3HA)

scds_free_net_list(3HA)

scds_free_port_list(3HA)

scds_get_current_method_name(3HA)

scds_get_ext_property(3HA)

scds_get_netaddr_list(3HA)

scds_get_port_list(3HA)

scds_get_resource_group_name(3HA)

scds_get_resource_name(3HA)

scds_get_resource_type_name(3HA)

scds_get_rg_hostnames(3HA)

scds_get_rg_hostnames_zone(3HA)

scds_get_rs_hostnames(3HA)

scds_get_zone_name(3HA)

scds_hasp_check(3HA)

scds_initialize(3HA)

scds_pmf_get_status(3HA)

scds_pmf_restart_fm(3HA)

scds_pmf_signal(3HA)

scds_pmf_start(3HA)

scds_pmf_start_env(3HA)

scds_pmf_stop(3HA)

scds_pmf_stop_monitoring(3HA)

scds_print_netaddr_list(3HA)

scds_print_net_list(3HA)

scds_print_port_list(3HA)

scds_property_functions(3HA)

scds_restart_resource(3HA)

scds_restart_rg(3HA)

scds_simple_net_probe(3HA)

scds_simple_probe(3HA)

scds_svc_wait(3HA)

scds_syslog(3HA)

scds_syslog_debug(3HA)

scds_timerun(3HA)

scha_calls(3HA)

scha_cluster_close(3HA)

scha_cluster_get(3HA)

scha_cluster_getlogfacility(3HA)

scha_cluster_getnodename(3HA)

scha_cluster_getzone(3HA)

scha_cluster_open(3HA)

scha_control(3HA)

scha_control_zone(3HA)

scha_resource_close(3HA)

scha_resource_get(3HA)

scha_resourcegroup_close(3HA)

scha_resourcegroup_get(3HA)

scha_resourcegroup_open(3HA)

scha_resource_open(3HA)

scha_resource_setstatus(3HA)

scha_resource_setstatus_zone(3HA)

scha_resourcetype_close(3HA)

scha_resourcetype_get(3HA)

scha_resourcetype_open(3HA)

scha_strerror(3HA)

scha_strerror_i18n(3HA)

OSC33 4

OSC33 5

OSC33 5cl

OSC33 7

OSC33 7p

Index

scds_fm_net_connect

- establish a TCP connection to an application

Synopsis

cc [flags…] -I /usr/cluster/include file -L /usr/cluster/lib -l dsdev

#include <rgm/libdsdev.h>



scha_err_t scds_fm_net_connect(scds_handle_t handle, scds_socket_t *socklist,

     int count, scds_netaddr_t addr, time_t timeout);

Description

The scds_fm_net_connect() function establishes one or more TCP connections (depending on the protocol value of Port_list for each address, as described below) to a process that is being monitored.

You can retrieve a list of network addresses for the resource by using scds_get_netaddr_list(3HA). That call also fills the protocol value for each address in the list. If tcp6 is specified as the protocol in Port_list for that address, the protocol value is set to SCDS_IPPROTO_TCP6. If tcp is specified as the protocol in Port_list for that address or if no protocol is specified in Port_list, the protocol value is set to SCDS_IPPROTO_TCP.

This function also resolves the hostname that is supplied in addr and connects to:

Parameters

The following parameters are supported:

handle

The handle that is returned by scds_initialize(3HA).

socklist

An array of SCDS_MAX_IPADDR_TYPES members of type scds_socket_t. Each member in the array holds a status and a socket file descriptor for a TCP connection. This parameter is an output argument that is set by this function.

count

The number of members in the socklist array. Set this parameter to SCDS_MAX_IPADDR_TYPES.

addr

The hostname, TCP port number, and protocol identifier that specify where the process is listening.

timeout

The timeout value in seconds. Each socket gets the same time period for a connection to be established before it is timed out. As these time intervals proceed in parallel, this value is effectively the maximum time that the function takes to execute.

Return Values

The scds_fm_net_connect() function returns the following values:

0

The function succeeded. At least one socket connected.

SCHA_ERR_INVAL

The function was called with invalid paramaters.

nonzero

Not a single connection could be established, due to a timeout, a refused connection, or some other error. You can inspect the status field of all members of the socklist array that are set to SCDS_FMSOCK_ERR to determine the exact error.

Errors

SCHA_ERR_NOERR

Indicates that the function succeeded.

SCHA_ERR_INTERNAL

Indicates that an internal error occurred while the function was executing.

SCHA_ERR_STATE

Indicates that the connection request was refused by the server.

SCHA_ERR_TIMEOUT

Indicates that the connection request timed out.

Examples

Example 1 Using the scds_fm_net_connect() Function

/* this function is called repeatedly, 

   after thorough_probe_interval seconds */

int probe(scds_handle_t scds_handle, ...)

{

    scds_socket_t socklist[SCDS_MAX_IPADDR_TYPES];

    ...



    /* for each hostname/port/proto */

    for (i = 0; i < netaddr->num_netaddrs, i++) {

        if (scds_fm_net_connect(scds_handle, socklist,

            SCDS_MAX_IPADDR_TYPES, netaddr[i], timeout) !=

            SCHA_ERR_NOERR)

            {

                /* failed completely */

                ...

        } else {

            /* at least one sock connected */

            for (j = 0, j < SCDS_MAX_IPADDR_TYPES, j++) {

                if (socklist[j].status == SCDS_FM_SOCK_NA)

                    continue;



                if (socklist[j].status == SCDS_FMSOCK_ERR) {

                    /* this particular connection failed */

                    scds_syslog(LOG_ERR, "Failed: %s",

                        scds_error_string(socklist[j].err));

                    continue;

                }



                /* use socklist[i].fd to perform write/read */

                ...

            }

            (void) scds_fm_net_disconnect(scds_handle, socklist,

                SCDS_MAX_IPADDR_TYPES, remaining_time);

        }

        

    }

    ...

    return (result);

}

Files

/usr/cluster/include/rgm/libdsdev.h

Include file

/usr/cluster/lib/libdsdev.so

Library

Attributes

See attributes(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
SUNWscdev
Interface Stability
Evolving

See Also

scds_fm_net_disconnect(3HA), scds_fm_tcp_connect(3HA), scds_get_netaddr_list(3HA), scds_initialize(3HA), scha_calls(3HA), attributes(5)