tech-userlevel archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

rpcgen -M missing foo_freeresult_N() signature?



Hi,

I think rpcgen -M might be missing the generation of the 'foo_freeresult_N'
server procedure signature in the generated foo_svc.c program.

I'm not sure however, as I did not manage to find proper documentation
about this. The fact is that I have a rpcgen program that fails to compile
properly with -Werror, while it's fine with other rpcgen implementations.
And the generated _svc.c program contains a call to this function, in
the Mflag != 0 case.

Anyway, attached is a tentative patch fixing things for me.

Best,
Anthony

Index: rpc_svcout.c
===================================================================
RCS file: /cvsroot/src/usr.bin/rpcgen/rpc_svcout.c,v
retrieving revision 1.31
diff -u -r1.31 rpc_svcout.c
--- rpc_svcout.c	8 Nov 2015 01:59:31 -0000	1.31
+++ rpc_svcout.c	5 Jun 2024 19:09:08 -0000
@@ -353,7 +353,18 @@
 		pvname(def->def_name, vp->vers_num);
 		f_print(fout, "(struct svc_req *%s, ", RQSTP);
 		f_print(fout, "SVCXPRT *%s);\n", TRANSP);
+
+		if (Mflag) {
+			if (storage != NULL) {
+				f_print(fout, "%s ", storage);
+			}
+			f_print(fout, "int ");
+			pvname(def->def_name, vp->vers_num);
+			f_print(fout, "_freeresult"
+                                "(SVCXPRT *, xdrproc_t, caddr_t);\n");
+		}
 		f_print(fout, "\n");
+
 		if (storage != NULL) {
 			f_print(fout, "%s ", storage);
 		}


Home | Main Index | Thread Index | Old Index