/*
* From RFC1833
+ * and http://tools.ietf.org/html/draft-ietf-oncrpc-rpcbind-00
*/
const PMAP_PORT = 111; /* portmapper port number */
struct pmap2_mapping_list *list;
};
+struct pmap3_string_result {
+ string addr<>;
+};
+
struct pmap3_mapping {
unsigned int prog;
unsigned int vers;
struct pmap3_mapping_list *list;
};
+struct pmap3_call_args {
+ unsigned int prog;
+ unsigned int vers;
+ unsigned int proc;
+ opaque args<>;
+};
+
+struct pmap3_call_result {
+ unsigned int port;
+ opaque res<>;
+};
+
+struct pmap3_netbuf {
+ unsigned int maxlen;
+ /* This pretty much contains a sockaddr_storage.
+ * Beware differences in endianess for ss_family
+ * and whether or not ss_len exists.
+ */
+ opaque buf<>;
+};
+
program PMAP_PROGRAM {
version PMAP_V2 {
void
PMAP2_GETPORT(pmap2_mapping) = 3;
pmap2_dump_result
- PMAP2_DUMP(void) = 4;
+ PMAP2_DUMP(void) = 4;
pmap2_call_result
PMAP2_CALLIT(pmap2_call_args) = 5;
void
PMAP3_NULL(void) = 0;
+ bool
+ PMAP3_SET(pmap3_mapping) = 1;
+
+ bool
+ PMAP3_UNSET(pmap3_mapping) = 2;
+
+ pmap3_string_result
+ PMAP3_GETADDR(pmap3_mapping) = 3;
+
pmap3_dump_result
PMAP3_DUMP(void) = 4;
+ pmap3_call_result
+ PMAP3_CALLIT(pmap3_call_args) = 5;
+
+ unsigned int
+ PMAP3_GETTIME(void) = 6;
+
+ pmap3_netbuf
+ PMAP3_UADDR2TADDR(string) = 7;
+
+ struct pmap3_string_result
+ PMAP3_TADDR2UADDR(pmap3_netbuf) = 8;
} = 3;
} = 100000;