Guest User

Untitled

a guest
May 27th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include "MessageChannel.h"
  2.  
  3. using namespace Passenger;
  4. using namespace oxt;
  5. using namespace boost::this_thread;
  6.  
  7. extern "C" int
  8. send_file_descriptor(int socket, int fd, char *error, unsigned int errorSize) {
  9. try {
  10. disable_syscall_interruption dsi;
  11. MessageChannel(socket).writeFileDescriptor(fd);
  12. return 1;
  13. } catch (SystemException &e) {
  14. strncpy(error, e.what(), errorSize - 1);
  15. error[errorSize - 1] = '\0';
  16. return 0;
  17. } catch (...) {
  18. strncpy(error, "Unknown exception occurred", errorSize - 1);
  19. error[errorSize - 1] = '\0';
  20. return 0;
  21. }
  22. }
  23.  
  24. extern "C" int
  25. read_file_descriptor(int socket, char *error, unsigned int errorSize) {
  26. try {
  27. disable_syscall_interruption dsi;
  28. return MessageChannel(socket).readFileDescriptor();
  29. } catch (IOException &e) {
  30. strncpy(error, e.what(), errorSize - 1);
  31. error[errorSize - 1] = '\0';
  32. return -1;
  33. } catch (SystemException &e) {
  34. strncpy(error, e.what(), errorSize - 1);
  35. error[errorSize - 1] = '\0';
  36. return -1;
  37. } catch (...) {
  38. strncpy(error, "Unknown exception occurred", errorSize - 1);
  39. error[errorSize - 1] = '\0';
  40. return -1;
  41. }
  42. }
  43.  
  44. extern "C" int
  45. get_errno() {
  46. return errno;
  47. }
Add Comment
Please, Sign In to add comment