mkversion.sh: printf %s is more portable than echo -e
[ira/wip.git] / source4 / script / build_smb_interfaces.pl
index 7a3b6aab493e6220aabd95532842f763c6c97c97..5fac94ca6e4ab12c9767a9082db16a7d7d3b0281 100755 (executable)
@@ -78,7 +78,7 @@ sub transfer_element($$$) {
   $type = $elt->{TYPE};
   $type =~ s/_t$//;
 
-  print FILE "\tejs_${dir}_$type(ejs, v, \"$prefix.$elt->{NAME}\")\n";
+  print FILE "\tNDR_CHECK(ejs_${dir}_$type(ejs, v, \"$prefix.$elt->{NAME}\"));\n";
 }
 
 sub transfer_struct($$) {
@@ -109,12 +109,25 @@ foreach my $s (@newheader) {
 
     print FILE "NTSTATUS ejs_pull_$s->{TYPE_DEFINED}(struct ejs_rpc *ejs, struct MprVar *v, struct $s->{TYPE_DEFINED} *r)\n";
     print FILE "{\n";
-    print FILE "\treturn NT_STATUS_OK;\n";
+
+    transfer_struct("pull", $s);
+
+    print FILE "\n\treturn NT_STATUS_OK;\n";
     print FILE "}\n\n";
 
     print FILE "NTSTATUS ejs_push_$s->{TYPE_DEFINED}(struct ejs_rpc *ejs, struct MprVar *v, const struct $s->{TYPE_DEFINED} *r)\n";
     print FILE "{\n";
-    print FILE "\treturn NT_STATUS_OK;\n";
+
+    transfer_struct("push", $s);
+
+    print FILE "\n\treturn NT_STATUS_OK;\n";
+    print FILE "}\n\n";
+
+    # Function call
+
+    print FILE "static int ejs_$s->{TYPE_DEFINED}(int eid, int argc, struct MprVar **argv)\n";
+    print FILE "{\n";
+    print FILE "\treturn ejs_raw_call(eid, argc, argv, (ejs_pull_function_t)ejs_pull_$s->{TYPE_DEFINED}, (ejs_push_function_t)ejs_push_$s->{TYPE_DEFINED});\n";
     print FILE "}\n\n";
 
   } else {
@@ -127,12 +140,18 @@ foreach my $s (@newheader) {
 
       print FILE "NTSTATUS ejs_pull_$s->{TYPE_DEFINED}_$arm->{NAME}(struct ejs_rpc *ejs, struct MprVar *v, union $s->{TYPE_DEFINED} *r)\n";
       print FILE "{\n";
-      print FILE "\treturn NT_STATUS_OK;\n";
+
+      transfer_struct("pull", $arm);
+
+      print FILE "\n\treturn NT_STATUS_OK;\n";
       print FILE "}\n\n";
 
       print FILE "NTSTATUS ejs_push_$s->{TYPE_DEFINED}_$arm->{NAME}(struct ejs_rpc *ejs, struct MprVar *v, const union $s->{TYPE_DEFINED} *r)\n";
       print FILE "{\n";
-      print FILE "\treturn NT_STATUS_OK;\n";
+
+      transfer_struct("push", $arm);
+
+      print FILE "\n\treturn NT_STATUS_OK;\n";
       print FILE "}\n\n";
 
     }