eventmachine 0.7.0 → 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. data/COPYING +44 -265
  2. data/GNU +281 -0
  3. data/LEGAL +25 -0
  4. data/README +5 -3
  5. data/RELEASE_NOTES +7 -2
  6. data/ext/binder.cpp +8 -15
  7. data/ext/binder.h +8 -15
  8. data/ext/cmain.cpp +29 -15
  9. data/ext/ed.cpp +36 -43
  10. data/ext/ed.h +8 -15
  11. data/ext/em.cpp +116 -21
  12. data/ext/em.h +11 -16
  13. data/ext/emwin.cpp +9 -16
  14. data/ext/emwin.h +9 -16
  15. data/ext/eventmachine.h +9 -14
  16. data/ext/extconf.rb +9 -17
  17. data/ext/files.cpp +7 -14
  18. data/ext/files.h +7 -14
  19. data/ext/page.cpp +8 -15
  20. data/ext/page.h +8 -15
  21. data/ext/project.h +15 -15
  22. data/ext/rubymain.cpp +37 -16
  23. data/ext/sigs.cpp +8 -15
  24. data/ext/sigs.h +8 -15
  25. data/ext/ssl.cpp +8 -15
  26. data/ext/ssl.h +8 -15
  27. data/lib/em/deferrable.rb +40 -27
  28. data/lib/em/eventable.rb +12 -23
  29. data/lib/em/future.rb +62 -0
  30. data/lib/eventmachine.rb +156 -66
  31. data/lib/eventmachine_version.rb +12 -23
  32. data/lib/evma.rb +15 -18
  33. data/lib/evma/callback.rb +16 -19
  34. data/lib/evma/container.rb +17 -19
  35. data/lib/evma/factory.rb +16 -19
  36. data/lib/evma/protocol.rb +17 -19
  37. data/lib/evma/reactor.rb +17 -19
  38. data/lib/pr_eventmachine.rb +12 -23
  39. data/lib/protocols/buftok.rb +121 -0
  40. data/lib/protocols/header_and_content.rb +12 -23
  41. data/lib/protocols/httpclient.rb +44 -31
  42. data/lib/protocols/line_and_text.rb +97 -118
  43. data/lib/protocols/tcptest.rb +12 -22
  44. data/tests/test_basic.rb +14 -24
  45. data/tests/test_eventables.rb +14 -24
  46. data/tests/test_exc.rb +57 -0
  47. data/tests/test_futures.rb +136 -0
  48. data/tests/test_hc.rb +14 -24
  49. data/tests/test_httpclient.rb +106 -25
  50. data/tests/test_ltp.rb +14 -23
  51. data/tests/test_timers.rb +109 -0
  52. data/tests/test_ud.rb +14 -24
  53. metadata +11 -2
data/ext/em.h CHANGED
@@ -1,26 +1,19 @@
1
1
  /*****************************************************************************
2
2
 
3
- $Id: em.h 264 2006-10-05 16:33:22Z blackhedd $
3
+ $Id: em.h 318 2007-05-22 22:06:24Z blackhedd $
4
4
 
5
- File: ed.h
5
+ File: em.h
6
6
  Date: 06Apr06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat20
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
15
 
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -72,6 +65,7 @@ class EventMachine_t
72
65
  void SignalLoopBreaker();
73
66
  const char *InstallOneshotTimer (int);
74
67
  const char *ConnectToServer (const char *, int);
68
+ const char *ConnectToUnixServer (const char *);
75
69
  const char *CreateTcpServer (const char *, int);
76
70
  const char *OpenDatagramSocket (const char *, int);
77
71
  const char *CreateUnixDomainServer (const char*);
@@ -80,6 +74,7 @@ class EventMachine_t
80
74
  void Add (EventableDescriptor*);
81
75
 
82
76
  void SetTimerQuantum (int);
77
+ static void SetuidString (const char*);
83
78
 
84
79
  public:
85
80
  enum { // Event names
@@ -101,7 +96,7 @@ class EventMachine_t
101
96
 
102
97
  private:
103
98
  enum {
104
- MaxOutstandingTimers = 40,
99
+ MaxOutstandingTimers = 1000,
105
100
  HeartbeatInterval = 2
106
101
  };
107
102
  void (*EventCallback)(const char*, int, const char*, int);
@@ -1,26 +1,19 @@
1
1
  /*****************************************************************************
2
2
 
3
- $Id: emwin.cpp 47 2006-05-15 21:42:38Z blackhedd $
3
+ $Id: emwin.cpp 318 2007-05-22 22:06:24Z blackhedd $
4
4
 
5
- File: edwin.cpp
5
+ File: emwin.cpp
6
6
  Date: 05May06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat10
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
15
-
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
+
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -1,26 +1,19 @@
1
1
  /*****************************************************************************
2
2
 
3
- $Id: emwin.h 209 2006-07-16 23:32:16Z blackhedd $
3
+ $Id: emwin.h 318 2007-05-22 22:06:24Z blackhedd $
4
4
 
5
- File: edwin.h
5
+ File: emwin.h
6
6
  Date: 05May06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat10
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
15
-
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
+
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -1,26 +1,19 @@
1
1
  /*****************************************************************************
2
2
 
3
- $Id: eventmachine.h 265 2006-10-05 19:07:45Z blackhedd $
3
+ $Id: eventmachine.h 318 2007-05-22 22:06:24Z blackhedd $
4
4
 
5
5
  File: eventmachine.h
6
6
  Date: 15Apr06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat10
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
15
 
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -36,6 +29,7 @@ extern "C" {
36
29
  void evma_release_library();
37
30
  const char *evma_install_oneshot_timer (int seconds);
38
31
  const char *evma_connect_to_server (const char *server, int port);
32
+ const char *evma_connect_to_unix_server (const char *server);
39
33
  const char *evma_create_tcp_server (const char *address, int port);
40
34
  const char *evma_create_unix_domain_server (const char *filename);
41
35
  const char *evma_open_datagram_socket (const char *server, int port);
@@ -48,6 +42,7 @@ extern "C" {
48
42
  void evma_close_connection (const char *binding, int after_writing);
49
43
  void evma_signal_loopbreak();
50
44
  void evma_set_timer_quantum (int);
45
+ void evma_setuid_string (const char *username);
51
46
  void evma_stop_machine();
52
47
 
53
48
  const char *evma__write_file (const char *filename);
@@ -1,24 +1,16 @@
1
- # $Id: extconf.rb 63 2006-05-17 06:03:18Z blackhedd $
1
+ # $Id: extconf.rb 318 2007-05-22 22:06:24Z blackhedd $
2
2
  #
3
3
  #----------------------------------------------------------------------------
4
4
  #
5
- # Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
6
- #
7
- # Gmail: garbagecat20
8
- #
5
+ # Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
6
+ # Gmail: blackhedd
7
+ #
9
8
  # This program is free software; you can redistribute it and/or modify
10
- # it under the terms of the GNU General Public License as published by
11
- # the Free Software Foundation; either version 2 of the License, or
12
- # (at your option) any later version.
13
- #
14
- # This program is distributed in the hope that it will be useful,
15
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
- # GNU General Public License for more details.
18
- #
19
- # You should have received a copy of the GNU General Public License
20
- # along with this program; if not, write to the Free Software
21
- # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
9
+ # it under the terms of either: 1) the GNU General Public License
10
+ # as published by the Free Software Foundation; either version 2 of the
11
+ # License, or (at your option) any later version; or 2) Ruby's License.
12
+ #
13
+ # See the file COPYING for complete licensing information.
22
14
  #
23
15
  #---------------------------------------------------------------------------
24
16
  #
@@ -5,22 +5,15 @@ $Id: ed.cpp 250 2006-08-25 02:17:58Z blackhedd $
5
5
  File: files.cpp
6
6
  Date: 26Aug06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat20
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
15
-
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
+
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -5,22 +5,15 @@ $Id: ed.h 243 2006-08-23 02:00:10Z blackhedd $
5
5
  File: files.h
6
6
  Date: 26Aug06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat20
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
15
-
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
+
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -1,26 +1,19 @@
1
1
  /*****************************************************************************
2
2
 
3
- $Id: page.cpp 47 2006-05-15 21:42:38Z blackhedd $
3
+ $Id: page.cpp 318 2007-05-22 22:06:24Z blackhedd $
4
4
 
5
5
  File: page.cpp
6
6
  Date: 30Apr06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat20
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
15
-
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
+
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
data/ext/page.h CHANGED
@@ -1,26 +1,19 @@
1
1
  /*****************************************************************************
2
2
 
3
- $Id: page.h 47 2006-05-15 21:42:38Z blackhedd $
3
+ $Id: page.h 318 2007-05-22 22:06:24Z blackhedd $
4
4
 
5
5
  File: page.h
6
6
  Date: 30Apr06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat20
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
15
-
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
+
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -1,26 +1,19 @@
1
1
  /*****************************************************************************
2
2
 
3
- $Id: project.h 265 2006-10-05 19:07:45Z blackhedd $
3
+ $Id: project.h 318 2007-05-22 22:06:24Z blackhedd $
4
4
 
5
5
  File: project.h
6
6
  Date: 06Apr06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat20
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
15
 
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -55,12 +48,19 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
55
48
  #include <netinet/in.h>
56
49
  #include <netinet/tcp.h>
57
50
  #include <arpa/inet.h>
51
+ #include <pwd.h>
58
52
  typedef int SOCKET;
59
53
  #define closesocket close
60
54
  #define INVALID_SOCKET -1
61
55
  #define SOCKET_ERROR -1
62
56
  #ifdef OS_SOLARIS8
63
- #define INADDR_NONE ((unsigned long)-1)
57
+ #include <strings.h>
58
+ #include <sys/un.h>
59
+ #ifndef AF_LOCAL
60
+ #define AF_LOCAL AF_UNIX
61
+ #endif
62
+ // The ff is superfluous on Solaris > 7. Thanks to Brett Eisenberg.
63
+ //#define INADDR_NONE ((unsigned long)-1)
64
64
  #endif
65
65
  #endif
66
66
 
@@ -1,26 +1,19 @@
1
1
  /*****************************************************************************
2
2
 
3
- $Id: rubymain.cpp 265 2006-10-05 19:07:45Z blackhedd $
3
+ $Id: rubymain.cpp 318 2007-05-22 22:06:24Z blackhedd $
4
4
 
5
- File: libmain.cpp
5
+ File: rubymain.cpp
6
6
  Date: 06Apr06
7
7
 
8
- Copyright (C) 2006 by Francis Cianfrocca. All Rights Reserved.
9
- Gmail: garbagecat20
8
+ Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
9
+ Gmail: blackhedd
10
10
 
11
11
  This program is free software; you can redistribute it and/or modify
12
- it under the terms of the GNU General Public License as published by
13
- the Free Software Foundation; either version 2 of the License, or
14
- (at your option) any later version.
12
+ it under the terms of either: 1) the GNU General Public License
13
+ as published by the Free Software Foundation; either version 2 of the
14
+ License, or (at your option) any later version; or 2) Ruby's License.
15
15
 
16
- This program is distributed in the hope that it will be useful,
17
- but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- GNU General Public License for more details.
20
-
21
- You should have received a copy of the GNU General Public License
22
- along with this program; if not, write to the Free Software
23
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16
+ See the file COPYING for complete licensing information.
24
17
 
25
18
  *****************************************************************************/
26
19
 
@@ -200,7 +193,23 @@ t_connect_server
200
193
 
201
194
  static VALUE t_connect_server (VALUE self, VALUE server, VALUE port)
202
195
  {
203
- const char *f = evma_connect_to_server (StringValuePtr(server), FIX2INT(port));
196
+ // Avoid FIX2INT in this case, because it doesn't deal with type errors properly.
197
+ // Specifically, if the value of port comes in as a string rather than an integer,
198
+ // NUM2INT will throw a type error, but FIX2INT will generate garbage.
199
+
200
+ const char *f = evma_connect_to_server (StringValuePtr(server), NUM2INT(port));
201
+ if (!f || !*f)
202
+ rb_raise (rb_eRuntimeError, "no connection");
203
+ return rb_str_new2 (f);
204
+ }
205
+
206
+ /*********************
207
+ t_connect_unix_server
208
+ *********************/
209
+
210
+ static VALUE t_connect_unix_server (VALUE self, VALUE serversocket)
211
+ {
212
+ const char *f = evma_connect_to_unix_server (StringValuePtr(serversocket));
204
213
  if (!f || !*f)
205
214
  rb_raise (rb_eRuntimeError, "no connection");
206
215
  return rb_str_new2 (f);
@@ -272,6 +281,16 @@ static VALUE t_set_timer_quantum (VALUE self, VALUE interval)
272
281
  return Qnil;
273
282
  }
274
283
 
284
+ /***************
285
+ t_setuid_string
286
+ ***************/
287
+
288
+ static VALUE t_setuid_string (VALUE self, VALUE username)
289
+ {
290
+ evma_setuid_string (StringValuePtr (username));
291
+ return Qnil;
292
+ }
293
+
275
294
 
276
295
 
277
296
  /*************
@@ -308,12 +327,14 @@ extern "C" void Init_rubyeventmachine()
308
327
  rb_define_module_function (EmModule, "send_datagram", (VALUE(*)(...))t_send_datagram, 5);
309
328
  rb_define_module_function (EmModule, "close_connection", (VALUE(*)(...))t_close_connection, 2);
310
329
  rb_define_module_function (EmModule, "connect_server", (VALUE(*)(...))t_connect_server, 2);
330
+ rb_define_module_function (EmModule, "connect_unix_server", (VALUE(*)(...))t_connect_unix_server, 1);
311
331
  rb_define_module_function (EmModule, "open_udp_socket", (VALUE(*)(...))t_open_udp_socket, 2);
312
332
  rb_define_module_function (EmModule, "release_machine", (VALUE(*)(...))t_release_machine, 0);
313
333
  rb_define_module_function (EmModule, "stop", (VALUE(*)(...))t_stop, 0);
314
334
  rb_define_module_function (EmModule, "signal_loopbreak", (VALUE(*)(...))t_signal_loopbreak, 0);
315
335
  rb_define_module_function (EmModule, "library_type", (VALUE(*)(...))t_library_type, 0);
316
336
  rb_define_module_function (EmModule, "set_timer_quantum", (VALUE(*)(...))t_set_timer_quantum, 1);
337
+ rb_define_module_function (EmModule, "setuid_string", (VALUE(*)(...))t_setuid_string, 1);
317
338
 
318
339
  // Provisional:
319
340
  rb_define_module_function (EmModule, "_write_file", (VALUE(*)(...))t__write_file, 1);