{"push_id":1530413182,"size":8,"distinct_size":8,"ref":"refs/heads/master","head":"974cb04cfce88c0397359bc30f14bf195421d539","before":"d924f834bb0af9ac3fb53b753e7cdcc77371d929","commits":[{"sha":"7ff39d028c6359f5c0925ed2cf4a2c4c751af2e4","author":{"name":"Richard W.M. Jones","email":"8d1b5b95ea88d1900c2edd9b2c779b186c6e1f74@redhat.com"},"message":"Add support for socket activation.\n\nSocket activation (aka systemd socket activation) is a simple protocol\nthat lets you pass in an opened, listening socket to a server.\nSupporting socket activation allows you to use a modern superserver to\nserve infrequent NBD requests without needing nbdkit to be running the\nwhole time.\n\nAlthough the protocol was invented by systemd, it has been implemented\nin a few other places, and the protocol is almost trivially simple.\nThis implementation is based on the one in libvirt.\n\nThanks: Dan Berrange, libvirt team","distinct":true,"url":"https://api.github.com/repos/libguestfs/nbdkit/commits/7ff39d028c6359f5c0925ed2cf4a2c4c751af2e4"},{"sha":"74eda2861ff405ea02b0efe0b152e0ab2c2c8cac","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"plugins: Don't use bogus errno from non-C plugins\n\nIt is very unlikely that the value of errno after completing the\nglue code in between the completion of the user's callback and\nthe point in time where we construct the client's reply is going\nto be untouched, which means that we are likely to send the wrong\nerror code across the wire.  Add a new callback which determines\nwhether we can trust errno; defaulting to true for C plugins, where\nwe can trace all code in between to ensure errno is not clobbered,\nand always false for other language bindings.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>","distinct":true,"url":"https://api.github.com/repos/libguestfs/nbdkit/commits/74eda2861ff405ea02b0efe0b152e0ab2c2c8cac"},{"sha":"26d5b0ec769e74d3224a32a2e18a72de5ba54721","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"plugins: Add new nbdkit_set_error() utility function\n\nThe last patch fixed the plugin interface to not use a bogus value\nof errno from other language bindings, but hard-coding things to\nEIO is not nice either.\n\nThe solution is to expose an explicit utility function for setting\nthe preferred error value, while still falling back to errno for\nbackwards compatibility.  The saved error code has to be\nthread-safe for use in multithreaded plugins.\n\nNote that setting an error value but then returning success from\nthe plugin has no impact; the error value is only consulted when\nthe plugin reports failure, and is intentionally wiped before\neach callback.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>","distinct":true,"url":"https://api.github.com/repos/libguestfs/nbdkit/commits/26d5b0ec769e74d3224a32a2e18a72de5ba54721"},{"sha":"012fa3e20aa676c66c595cedc05e146349d11f0e","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"python: Expose nbdkit_set_error to python script\n\nIn addition to calling python functions from C, we want to make\nscript writing easier by exposing C functions to python.  For\nnow, just wrap nbdkit_set_error(), as that will be needed for\nan optimal implementation of a zero() callback.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>","distinct":true,"url":"https://api.github.com/repos/libguestfs/nbdkit/commits/012fa3e20aa676c66c595cedc05e146349d11f0e"},{"sha":"d4ff1a2d474b8d6e493f976684ccbf2ac712e7fe","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"python: Support zero callback\n\nAdd a python language binding for the .zero callback, used for\nimplementing NBD_CMD_WRITE_ZEROES.  The caller doesn't have to\nreturn anything, but should use nbdkit.set_error(errno.EOPNOTSUPP)\nto get an automatic fallback to pwrite.\n\nEnhance the example to show the use of the fallback mechanism,\nand to serve as a test of nbdkit.set_error().\n\nSigned-off-by: Eric Blake <eblake@redhat.com>","distinct":true,"url":"https://api.github.com/repos/libguestfs/nbdkit/commits/d4ff1a2d474b8d6e493f976684ccbf2ac712e7fe"},{"sha":"06f3ea6e360a8b0daafe8950af27db3abc273d85","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"perl: Allow use of modules\n\nTrying something as simple as 'use POSIX ();' causes the perl\nplugin to croak:\n\n$ ./src/nbdkit -e foo -fv plugins/perl/.libs/nbdkit-perl-plugin.so \\\n  script=plugins/perl/example.pl\nnbdkit: debug: registering plugins/perl/.libs/nbdkit-perl-plugin.so\nnbdkit: debug: registered plugins/perl/.libs/nbdkit-perl-plugin.so (name perl)\nnbdkit: debug: plugins/perl/.libs/nbdkit-perl-plugin.so: load\nnbdkit: debug: plugins/perl/.libs/nbdkit-perl-plugin.so: config key=script, value=plugins/perl/example.pl\nCan't load module Fcntl, dynamic loading not available in this perl.\n  (You may need to build a new perl executable which either supports\n  dynamic loading or has the Fcntl module statically linked into it.)\n at /usr/lib64/perl5/POSIX.pm line 17.\nCompilation failed in require at /usr/lib64/perl5/POSIX.pm line 17.\nBEGIN failed--compilation aborted at /usr/lib64/perl5/POSIX.pm line 17.\nCompilation failed in require at plugins/perl/example.pl line 2.\nBEGIN failed--compilation aborted at plugins/perl/example.pl line 2.\nnbdkit: error: plugins/perl/example.pl: one of the required callbacks 'open', 'get_size' or 'pread' is not defined by this Perl script.  nbdkit requires these callbacks.\n\nPer 'perldoc perlembed', the solution is simple: statically incorporate\nthe DynaLoader module into the embedded interpreter.\n\nSigned-off-by: Eric Blake <eblake@redhat.com>","distinct":true,"url":"https://api.github.com/repos/libguestfs/nbdkit/commits/06f3ea6e360a8b0daafe8950af27db3abc273d85"},{"sha":"d1e69d156745f11383a2ebaf1dbfcc78d2de35c3","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"perl: Expose nbdkit_set_error to perl script\n\nIn addition to calling Perl functions from C, we want to make\nscript writing easier by exposing C functions to perl.  For\nnow, just wrap nbdkit_set_error(), as that will be needed for\nan optimal implementation of a zero() callback.\n\nI intentionally decided to go with a hand-rolled XSUB statically\ncompiled in, rather than a full-blown dynamically loadable Nbdkit\nmodule compatible with CPAN, in part because the machinery to hook\nin a call to xsubcc would be lots of code, and in part because we\nalready document that the user's script is not executable as a\nstand-alone perl script anyways.\n\nPerl is very picky: I found that including <XSUB.h> after <EXTERN.h>,\neven with no other changes in the file, caused the embedded\ninterpreter to segfault during perl_open(); but listing <XSUB.h>\nfirst worked for me (tested on Fedora 25).\n\nSigned-off-by: Eric Blake <eblake@redhat.com>","distinct":true,"url":"https://api.github.com/repos/libguestfs/nbdkit/commits/d1e69d156745f11383a2ebaf1dbfcc78d2de35c3"},{"sha":"974cb04cfce88c0397359bc30f14bf195421d539","author":{"name":"Eric Blake","email":"e61e790737d449e266fd6afd4f899153a9c1e9e9@redhat.com"},"message":"perl: Support zero callback\n\nAdd a perl language binding for the .zero callback, used for\nimplementing NBD_CMD_WRITE_ZEROES.  The caller doesn't have to\nreturn anything, but should use Nbdkit::set_error(POSIX::EOPNOTSUPP)\nto get an automatic fallback to pwrite.\n\nEnhance the example to show the use of the fallback mechanism,\nand to serve as a test of Nbdkit::set_error().\n\nSigned-off-by: Eric Blake <eblake@redhat.com>","distinct":true,"url":"https://api.github.com/repos/libguestfs/nbdkit/commits/974cb04cfce88c0397359bc30f14bf195421d539"}]}
{"actor":{"display_login":"rwmjones"}}