ReactOS  0.4.14-dev-833-g5f692ed
pmap_getmaps.c
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2009, Sun Microsystems, Inc.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * - Redistributions of source code must retain the above copyright notice,
8  * this list of conditions and the following disclaimer.
9  * - Redistributions in binary form must reproduce the above copyright notice,
10  * this list of conditions and the following disclaimer in the documentation
11  * and/or other materials provided with the distribution.
12  * - Neither the name of Sun Microsystems, Inc. nor the names of its
13  * contributors may be used to endorse or promote products derived
14  * from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26  * POSSIBILITY OF SUCH DAMAGE.
27  */
28 
29 //#include <sys/cdefs.h>
30 
31 /*
32  * pmap_getmap.c
33  * Client interface to pmap rpc service.
34  * contains pmap_getmaps, which is only tcp service involved
35  *
36  * Copyright (C) 1984, Sun Microsystems, Inc.
37  */
38 
39 #include <wintirpc.h>
40 #include <sys/types.h>
41 //#include <sys/socket.h>
42 //#include <sys/ioctl.h>
43 
44 //#include <arpa/inet.h>
45 //#include <net/if.h>
46 
47 #include <assert.h>
48 #include <errno.h>
49 //#include <netdb.h>
50 #include <stdio.h>
51 //#include <unistd.h>
52 
53 #include <rpc/rpc.h>
54 #include <rpc/pmap_prot.h>
55 #include <rpc/pmap_clnt.h>
56 //#include <clnt_soc.h>
57 #define NAMELEN 255
58 #define MAX_BROADCAST_SIZE 1400
59 
60 /*
61  * Get a copy of the current port maps.
62  * Calls the pmap service remotely to do get the maps.
63  */
64 struct pmaplist *
66  struct sockaddr_in *address;
67 {
68  struct pmaplist *head = NULL;
70  struct timeval minutetimeout;
71  CLIENT *client;
72 
73  assert(address != NULL);
74 
75  minutetimeout.tv_sec = 60;
76  minutetimeout.tv_usec = 0;
77  address->sin_port = htons(PMAPPORT);
79  PMAPVERS, &sock, 50, 500);
80  if (client != NULL) {
83  (xdrproc_t)xdr_pmaplist, &head, minutetimeout) !=
84  RPC_SUCCESS) {
85  clnt_perror(client, "pmap_getmaps rpc problem");
86  }
88  }
89  address->sin_port = 0;
90  return (head);
91 }
u_int32_t rpcproc_t
Definition: types.h:106
#define PMAPPROG
Definition: pmap_prot.h:77
struct outqueuenode * head
Definition: adnsresfilter.c:66
unsigned long tv_sec
Definition: linux.h:1738
#define assert(x)
Definition: debug.h:53
bool_t(* xdrproc_t)(XDR *,...)
Definition: xdr.h:144
void clnt_perror(CLIENT *rpch, const char *s)
Definition: clnt_perror.c:181
bool_t xdr_pmaplist(XDR *xdrs, struct pmaplist **rp)
Definition: pmap_prot2.c:83
struct pmaplist * pmap_getmaps(struct sockaddr_in *address)
Definition: pmap_getmaps.c:65
#define CLNT_CALL(rh, proc, xargs, argsp, xres, resp, secs)
Definition: clnt.h:199
smooth NULL
Definition: ftsmooth.c:416
unsigned long tv_usec
Definition: linux.h:1739
#define PMAPVERS
Definition: pmap_prot.h:78
#define INVALID_SOCKET
Definition: winsock.h:332
#define PMAPPORT
Definition: pmap_prot.h:76
static FILE * client
Definition: client.c:41
GLuint address
Definition: glext.h:9393
#define PMAPPROC_DUMP
Definition: pmap_prot.h:85
bool_t xdr_void(void)
Definition: xdr.c:92
#define CLNT_DESTROY(rh)
Definition: clnt.h:275
__BEGIN_DECLS CLIENT * clnttcp_create(struct sockaddr_in *, u_long, u_long, SOCKET *, u_int, u_int)
Definition: tcpcore.h:1455
UINT_PTR SOCKET
Definition: winsock.h:47
#define htons(x)
Definition: module.h:213