Sponsored Content
Top Forums Programming Problem with Mux channel legacy code. Post 302947081 by Wpgn on Monday 15th of June 2015 09:22:16 AM
Old 06-15-2015
Code:
/* Sub-Module
   ==========
   Mpath I/O Channel Entry Points */

/* Function
   ========
   MPIOOpen

   Open an MPath I/O Channel and return handle.  An Mpath I/O Channel, like a
   socket is an abstraction of a logical network connection.  It differs from
   a socket in that it preserves message boundaries (ie one can only transmit
   and receive complete messages) and, as much as possible, the semantics of
   datagram and stream i/o are hidden to the caller. */

MPIO_HNDL*
MPIOOpen(MPIO_TYPE type,
         MPIO_DATATYPE data_type,
         struct sockaddr* local_addr,
         struct sockaddr* remote_addr,
         MPIOEventHndlrCBF* event_hndlr,
         void* ulp_arg,
         MPIO_EVENTFLAGS event_flags,
         MPOPT_VEC* opt_vec,
         u_int opt_vec_cnt) {

    MPIO_HNDL* chan = (MPIO_HNDL*)0;
    struct sockaddr* addr;
    MPIO_FAMILY family;
    MPOPT_VEC* opt_vec00,
             * opt_vec01;
    u_int opt_vec_cnt00,
          opt_vec_cnt01;

    u_int failure = true;

    /* Range check */

    if((type >= MPIOMaxType) ||
       (data_type >= MPIODataTypeMax) ||
       ((type == MPIOPassive) &&
        (local_addr == (struct sockaddr*)0)) ||
       ((type == MPIOActive) &&
        (remote_addr == (struct sockaddr*)0)) ||
       ((event_flags != 0) &&
        (event_hndlr == (MPIOEventHndlrCBF*)0)) ||
       ((event_flags == 0) &&
        (event_hndlr != (MPIOEventHndlrCBF*)0)) ||
       (((event_flags & (MPIORefIncEvent|MPIORefDecEvent)) != 0) &&
        ((event_flags & (MPIORefIncEvent|MPIORefDecEvent)) !=
         (MPIORefIncEvent|MPIORefDecEvent)))) {
        MPErrorSet(MPERR_INVALID);
        mp_log("000G9", MPLT_ERR, "MPIOOpen: " "Invalid Parameters");
        goto epilogue;
    }

I not got access to server right now but I will do truss soon as am back in office
 

5 More Discussions You Might Find Interesting

1. Programming

CMI Legacy

Is there anyone who still uses CMI to connect to the legacy system , my c applications do uses the binaries and libraries for using the CMI functionality but i do not have access to the original source code , and since this is a very old stuff , i just could not get any source to get to knwo the... (0 Replies)
Discussion started by: dino_leix
0 Replies

2. UNIX for Advanced & Expert Users

timeout opening writing control channel /dev/initctl problem occur i cant shoudown

Hi... This is message that occurs when i am trying to shutdown the linux system timeout opening writing control channel /dev/initctl how can i shutdown what is the problem here.. Thanks in advance ... (2 Replies)
Discussion started by: arunkumar_mca
2 Replies

3. Red Hat

Spacewalk. Problem with adding the channel

OS: Fedora Linux 11 Spacewalk: 0.6 Installed by manual: https://fedorahosted.org/spacewalk/wiki/HowToInstall I download special script (create_channel.py) for registarion client from CLI and added 3 channel with 32-Bit architecture and all OK: Fedora 11 32-Bit RHEL 4.7 32-bit RHEL 5.3... (2 Replies)
Discussion started by: jess_t03
2 Replies

4. What is on Your Mind?

Tron Legacy

Watched it. Major disappointment. (10 Replies)
Discussion started by: ni2
10 Replies

5. Solaris

Installing TCP-MUX protocol socket help required.

I been looking for a good guide or some help on how to install and setup TCP-MUX protocol socket on my Solaris 7 servers. Can anyone point me in right direction of help me ? Thanks (5 Replies)
Discussion started by: Wpgn
5 Replies
DNET_ADDR(3)						     Library Functions Manual						      DNET_ADDR(3)

NAME
dnet_addr - DECnet nodename to address translation SYNOPSIS
#include <netdnet/dn.h> #include <netdnet/dnetdb.h> struct dn_naddr *dnet_addr (char *nodename) DESCRIPTION
dnet_addr search the decnet hosts file for nodename and returns the DECnet address in the dn_naddr structure If no entry is found, returns NULL EXAMPLE
#include <netdnet/dn.h> #include <netdnet/dnetdb.h> #include <sys/socket.h> main(void) { struct dn_naddr *binaddr; struct sockaddr_dn sockaddr; int sockfd; if ( (binaddr=dnet_addr("mv3100")) == NULL) { printf("No entry in /etc/decnet.conf for mv3100 "); exit(0); } if ((sockfd=socket(AF_DECnet,SOCK_SEQPACKET,DNPROTO_NSP)) == -1) { perror("socket"); exit(-1); } sockaddr.sdn_family = AF_DECnet; sockaddr.sdn_flags = 0x00; sockaddr.sdn_objnum = 0x19; /* MIRROR */ sockaddr.sdn_objnamel = 0x00; memcpy(sockaddr.sdn_add.a_addr, binaddr->a_addr,binaddr->a_len); if (connect(sockfd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)) < 0) { perror("connect"); exit(-1); } close(sockfd); } SEE ALSO
dnet_htoa(3), dnet_ntoa(3), dnet_conn(3), getnodeadd(3), getnodebyname(3), getnodebyaddr(3), setnodeent(3) DECnet database functions July 28, 1998 DNET_ADDR(3)
All times are GMT -4. The time now is 10:44 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy