<br>Oh, thanks.<div>  I have found that if my return type is 
<span style>remote_nonnull_string, the error will be happen, </span></div><div><span style>but if the return type is int, it works ok.</span></div><div><font face="arial, sans-serif"><span style="font-size:14px"><br></span></font><div class="gmail_quote">
2012/2/14 Eric Blake <span dir="ltr"><<a href="mailto:eblake@redhat.com">eblake@redhat.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 02/12/2012 11:26 AM, Áé½Ã wrote:<br>

<br>
[please don't top-post on technical lists]<br>
<br>
> Sorry,<br>
>      I just add the function prototypes in libvirt.h <a href="http://libvirt.in" target="_blank">libvirt.in</a><<a href="http://libvirt.in" target="_blank">http://libvirt.in</a>>,   implement it in libvirt.c and call a hypervisor function in qemu_drivier.h.<br>

> basicly no other codes.<br>
<br>
It's easier to review your code for errors if you post the actual<br>
patches you have written so far.<br>
<br>
><br>
> 2012/2/13 chang liu <<a href="mailto:lingjiao.lc@gmail.com">lingjiao.lc@gmail.com</a><mailto:<a href="mailto:lingjiao.lc@gmail.com">lingjiao.lc@gmail.com</a>>><br>
<div class="im">> hi all,<br>
>    Sorry to disturb you.<br>
>    I wanna to add a new api to get some sheepdog cluster info, but I has get this error, I don't know how to do.<br>
><br>
>    I have add a function to daemon/remote.c that call the libvirt.c 's  api, remoteDispatchConnectExecuteCommand, and here i get the return value.<br>
><br>
>         struct remote_connect_execute_command_ret {<br>
>                remote_nonnull_string ret_val;<br>
>         };<br>
>         typedef struct remote_connect_execute_command_ret remote_connect_execute_command_ret;<br>
><br>
><br>
>         static int<br>
>         remoteDispatchConnectExecuteCommand (struct qemud_server *server ATTRIBUTE_UNUSED,<br>
>                              struct qemud_client *client ATTRIBUTE_UNUSED,<br>
>                              virConnectPtr conn,<br>
>                              remote_message_header *hdr ATTRIBUTE_UNUSED,<br>
>                              remote_error *rerr,<br>
>                              remote_connect_execute_command_args *args,<br>
>                              remote_connect_execute_command_ret *ret)<br>
<br>
</div>If you're lucky, your new API won't need you to write any code in<br>
daemon/remote.c, but can instead be autogenerated as part of adding your<br>
new API to src/remote/remote_protocol.x.  But it's hard to see what you<br>
might be doing wrong without seeing your full patch.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Eric Blake   <a href="mailto:eblake@redhat.com">eblake@redhat.com</a>    +1-919-301-3266<br>
Libvirt virtualization library <a href="http://libvirt.org" target="_blank">http://libvirt.org</a><br>
<br>
</font></span><br>--<br>
libvir-list mailing list<br>
<a href="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a><br>
<a href="https://www.redhat.com/mailman/listinfo/libvir-list" target="_blank">https://www.redhat.com/mailman/listinfo/libvir-list</a><br></blockquote></div><br></div>