delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/06/12/19:37:36

X-Spam-Check-By: sourceware.org
Message-ID: <f0d10dd60606121637p41bdd413q587a99ea08e8606e@mail.gmail.com>
Date: Tue, 13 Jun 2006 05:07:23 +0530
From: "Zahir Koradia" <zahir DOT koradia AT gmail DOT com>
To: cygwin AT cygwin DOT com
Subject: Problem with sunrpc
MIME-Version: 1.0
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Hi,
This message might be specifically for Sam Robb but am sending to the
whole list as others may be able to help. I installed the binaries and
downloaded the source of sunrpc while installing cygwin. I intended to
use the function clnttcp_create present in clnt.h header. The anamoly
I see is that in the header file the signature has no parameters and
in the source code the function definition has parameters. The
signature in the header file is
/*
 * TCP based rpc
 * CLIENT *
 * clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz)
 *    struct sockaddr_in *raddr;
 *    u_long prog;
 *    u_long version;
 *    register int *sockp;
 *    u_int sendsz;
 *    u_int recvsz;
 */
extern CLIENT *clnttcp_create( );

and the source code (clnt_tcp.c) definition had the line

CLIENT *
clnttcp_create(raddr, prog, vers, sockp, sendsz, recvsz)
   struct sockaddr_in *raddr;
   u_long prog;
   u_long vers;
   register int *sockp;
   u_int sendsz;
   u_int recvsz;
{

This code does not compile. When I use the function with parameters in
my code it gives me error "undefined reference to..." then i went and
changed the signature in the header file itself. I did get past that
error but now I have a loader error stating that there is no
implementation for the function (with parameters).

I wanted to know whether the binaries have the function with
parameters or without them. To me having the function without the
parameters seems unlikely. Where can I get the right header file? Am I
going wrong somewhere myself?

In clnt.h header file the macro definition
#define    clnt_destroy(rh)    ((*(rh)->cl_ops->cl_destroy)(rh))
is fault since if u look at the client structure u will notice that
cl_destroy does not take any arguments. The definition should have
been
#define    clnt_destroy(rh)    ((*(rh)->cl_ops->cl_destroy)())

Is the version that i have got very old? (It is 4.0.2 or 4.0.3 i dont
rememebr exactly which one)

Can someone please clear things out here?

Thanx,
Zahir Koradia

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019