KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > caucho > quercus > lib > file > SocketModule


1 /*
2  * Copyright (c) 1998-2006 Caucho Technology -- all rights reserved
3  *
4  * This file is part of Resin(R) Open Source
5  *
6  * Each copy or derived work must preserve the copyright notice and this
7  * notice unmodified.
8  *
9  * Resin Open Source 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  * Resin Open Source 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, or any warranty
17  * of NON-INFRINGEMENT. See the GNU General Public License for more
18  * details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with Resin Open Source; if not, write to the
22  *
23  * Free Software Foundation, Inc.
24  * 59 Temple Place, Suite 330
25  * Boston, MA 02111-1307 USA
26  *
27  * @author Scott Ferguson
28  */

29
30 package com.caucho.quercus.lib.file;
31
32 import com.caucho.quercus.annotation.NotNull;
33 import com.caucho.quercus.annotation.Optional;
34 import com.caucho.quercus.annotation.ReturnNullAsFalse;
35 import com.caucho.quercus.env.BinaryBuilderValue;
36 import com.caucho.quercus.env.BooleanValue;
37 import com.caucho.quercus.env.Env;
38 import com.caucho.quercus.env.LongValue;
39 import com.caucho.quercus.env.StringValue;
40 import com.caucho.quercus.env.Value;
41 import com.caucho.quercus.module.AbstractQuercusModule;
42 import com.caucho.util.L10N;
43 import com.caucho.vfs.TempBuffer;
44 import com.caucho.vfs.TempCharBuffer;
45
46 import java.io.IOException JavaDoc;
47 import java.io.InputStream JavaDoc;
48 import java.net.InetAddress JavaDoc;
49 import java.net.InetSocketAddress JavaDoc;
50 import java.net.Socket JavaDoc;
51 import java.util.HashMap JavaDoc;
52 import java.util.Map JavaDoc;
53 import java.util.logging.Logger JavaDoc;
54
55 /**
56  * Information and actions for about sockets
57  */

58 public class SocketModule extends AbstractQuercusModule {
59   private static final L10N L = new L10N(SocketModule.class);
60   private static final Logger JavaDoc log
61     = Logger.getLogger(SocketModule.class.getName());
62
63   private static final int AF_UNIX = 1;
64   private static final int AF_INET = 2;
65   private static final int AF_INET6 = 10;
66   private static final int SOCK_STREAM = 1;
67   private static final int SOCK_DGRAM = 2;
68   private static final int SOCK_RAW = 3;
69   private static final int SOCK_SEQPACKET = 5;
70   private static final int SOCK_RDM = 4;
71   private static final int MSG_OOB = 1;
72   private static final int MSG_WAITALL = 256;
73   private static final int MSG_PEEK = 2;
74   private static final int MSG_DONTROUTE = 4;
75   private static final int SO_DEBUG = 1;
76   private static final int SO_REUSEADDR = 2;
77   private static final int SO_KEEPALIVE = 9;
78   private static final int SO_DONTROUTE = 5;
79   private static final int SO_LINGER = 13;
80   private static final int SO_BROADCAST = 6;
81   private static final int SO_OOBINLINE = 10;
82   private static final int SO_SNDBUF = 7;
83   private static final int SO_RCVBUF = 8;
84   private static final int SO_SNDLOWAT = 19;
85   private static final int SO_RCVLOWAT = 18;
86   private static final int SO_SNDTIMEO = 21;
87   private static final int SO_RCVTIMEO = 20;
88   private static final int SO_TYPE = 3;
89   private static final int SO_ERROR = 4;
90   private static final int SOL_SOCKET = 1;
91   private static final int SOMAXCONN = 128;
92   private static final int PHP_NORMAL_READ = 1;
93   private static final int PHP_BINARY_READ = 2;
94   private static final int SOCKET_EPERM = 1;
95   private static final int SOCKET_ENOENT = 2;
96   private static final int SOCKET_EINTR = 4;
97   private static final int SOCKET_EIO = 5;
98   private static final int SOCKET_ENXIO = 6;
99   private static final int SOCKET_E2BIG = 7;
100   private static final int SOCKET_EBADF = 9;
101   private static final int SOCKET_EAGAIN = 11;
102   private static final int SOCKET_ENOMEM = 12;
103   private static final int SOCKET_EACCES = 13;
104   private static final int SOCKET_EFAULT = 14;
105   private static final int SOCKET_ENOTBLK = 15;
106   private static final int SOCKET_EBUSY = 16;
107   private static final int SOCKET_EEXIST = 17;
108   private static final int SOCKET_EXDEV = 18;
109   private static final int SOCKET_ENODEV = 19;
110   private static final int SOCKET_ENOTDIR = 20;
111   private static final int SOCKET_EISDIR = 21;
112   private static final int SOCKET_EINVAL = 22;
113   private static final int SOCKET_ENFILE = 23;
114   private static final int SOCKET_EMFILE = 24;
115   private static final int SOCKET_ENOTTY = 25;
116   private static final int SOCKET_ENOSPC = 28;
117   private static final int SOCKET_ESPIPE = 29;
118   private static final int SOCKET_EROFS = 30;
119   private static final int SOCKET_EMLINK = 31;
120   private static final int SOCKET_EPIPE = 32;
121   private static final int SOCKET_ENAMETOOLONG = 36;
122   private static final int SOCKET_ENOLCK = 37;
123   private static final int SOCKET_ENOSYS = 38;
124   private static final int SOCKET_ENOTEMPTY = 39;
125   private static final int SOCKET_ELOOP = 40;
126   private static final int SOCKET_EWOULDBLOCK = 11;
127   private static final int SOCKET_ENOMSG = 42;
128   private static final int SOCKET_EIDRM = 43;
129   private static final int SOCKET_ECHRNG = 44;
130   private static final int SOCKET_EL2NSYNC = 45;
131   private static final int SOCKET_EL3HLT = 46;
132   private static final int SOCKET_EL3RST = 47;
133   private static final int SOCKET_ELNRNG = 48;
134   private static final int SOCKET_EUNATCH = 49;
135   private static final int SOCKET_ENOCSI = 50;
136   private static final int SOCKET_EL2HLT = 51;
137   private static final int SOCKET_EBADE = 52;
138   private static final int SOCKET_EBADR = 53;
139   private static final int SOCKET_EXFULL = 54;
140   private static final int SOCKET_ENOANO = 55;
141   private static final int SOCKET_EBADRQC = 56;
142   private static final int SOCKET_EBADSLT = 57;
143   private static final int SOCKET_ENOSTR = 60;
144   private static final int SOCKET_ENODATA = 61;
145   private static final int SOCKET_ETIME = 62;
146   private static final int SOCKET_ENOSR = 63;
147   private static final int SOCKET_ENONET = 64;
148   private static final int SOCKET_EREMOTE = 66;
149   private static final int SOCKET_ENOLINK = 67;
150   private static final int SOCKET_EADV = 68;
151   private static final int SOCKET_ESRMNT = 69;
152   private static final int SOCKET_ECOMM = 70;
153   private static final int SOCKET_EPROTO = 71;
154   private static final int SOCKET_EMULTIHOP = 72;
155   private static final int SOCKET_EBADMSG = 74;
156   private static final int SOCKET_ENOTUNIQ = 76;
157   private static final int SOCKET_EBADFD = 77;
158   private static final int SOCKET_EREMCHG = 78;
159   private static final int SOCKET_ERESTART = 85;
160   private static final int SOCKET_ESTRPIPE = 86;
161   private static final int SOCKET_EUSERS = 87;
162   private static final int SOCKET_ENOTSOCK = 88;
163   private static final int SOCKET_EDESTADDRREQ = 89;
164   private static final int SOCKET_EMSGSIZE = 90;
165   private static final int SOCKET_EPROTOTYPE = 91;
166   private static final int SOCKET_ENOPROTOOPT = 92;
167   private static final int SOCKET_EPROTONOSUPPORT = 93;
168   private static final int SOCKET_ESOCKTNOSUPPORT = 94;
169   private static final int SOCKET_EOPNOTSUPP = 95;
170   private static final int SOCKET_EPFNOSUPPORT = 96;
171   private static final int SOCKET_EAFNOSUPPORT = 97;
172   private static final int SOCKET_EADDRINUSE = 98;
173   private static final int SOCKET_EADDRNOTAVAIL = 99;
174   private static final int SOCKET_ENETDOWN = 100;
175   private static final int SOCKET_ENETUNREACH = 101;
176   private static final int SOCKET_ENETRESET = 102;
177   private static final int SOCKET_ECONNABORTED = 103;
178   private static final int SOCKET_ECONNRESET = 104;
179   private static final int SOCKET_ENOBUFS = 105;
180   private static final int SOCKET_EISCONN = 106;
181   private static final int SOCKET_ENOTCONN = 107;
182   private static final int SOCKET_ESHUTDOWN = 108;
183   private static final int SOCKET_ETOOMANYREFS = 109;
184   private static final int SOCKET_ETIMEDOUT = 110;
185   private static final int SOCKET_ECONNREFUSED = 111;
186   private static final int SOCKET_EHOSTDOWN = 112;
187   private static final int SOCKET_EHOSTUNREACH = 113;
188   private static final int SOCKET_EALREADY = 114;
189   private static final int SOCKET_EINPROGRESS = 115;
190   private static final int SOCKET_EISNAM = 120;
191   private static final int SOCKET_EREMOTEIO = 121;
192   private static final int SOCKET_EDQUOT = 122;
193   private static final int SOCKET_ENOMEDIUM = 123;
194   private static final int SOCKET_EMEDIUMTYPE = 124;
195   private static final int SOL_TCP = 6;
196   private static final int SOL_UDP = 17;
197
198   private static final HashMap JavaDoc<String JavaDoc,Value> _constMap
199     = new HashMap JavaDoc<String JavaDoc,Value>();
200
201   /**
202    * Returns the constants defined by this module.
203    */

204   public Map JavaDoc<String JavaDoc,Value> getConstMap()
205   {
206     return _constMap;
207   }
208  
209   @ReturnNullAsFalse
210   public static SocketReadWrite socket_create(Env env,
211                                               int domain,
212                                               int type,
213                                               int protocol)
214   {
215     try {
216       InetAddress JavaDoc local = null;
217
218       SocketReadWrite.Domain socketDomain = SocketReadWrite.Domain.AF_INET;
219
220       switch (domain) {
221         case AF_INET:
222           socketDomain = SocketReadWrite.Domain.AF_INET;
223           break;
224         case AF_INET6:
225           socketDomain = SocketReadWrite.Domain.AF_INET6;
226           break;
227         case AF_UNIX:
228           env.warning(L.l("Unix sockets not supported"));
229           return null;
230         default:
231           env.warning(L.l("Unknown domain: {0}", domain));
232           return null;
233       }
234
235       switch (type) {
236         case SOCK_STREAM:
237           return new SocketReadWrite(env, new Socket JavaDoc(), socketDomain);
238         case SOCK_DGRAM:
239           env.warning(L.l("Datagrams not supported"));
240           return null;
241         default:
242           return null;
243       }
244
245     } catch (Exception JavaDoc e) {
246       return null;
247     }
248   }
249
250   public static boolean socket_bind(Env env, @NotNull SocketReadWrite socket,
251                                     StringValue address,
252                                     @Optional("0") int port)
253   {
254     try {
255       InetAddress JavaDoc []addresses = InetAddress.getAllByName(address.toString());
256
257       if (addresses == null || addresses.length < 1) {
258         //XXX: socket.setError();
259
return false;
260       }
261
262       InetSocketAddress JavaDoc socketAddress =
263         new InetSocketAddress JavaDoc(addresses[0], port);
264
265       socket.bind(socketAddress);
266
267       return true;
268     } catch (IOException JavaDoc e) {
269       return false;
270     }
271   }
272
273   public static void socket_close(Env env, @NotNull SocketReadWrite socket)
274   {
275     socket.close();
276   }
277
278   public static boolean socket_connect(Env env, @NotNull SocketReadWrite socket,
279                                        StringValue address, @Optional int port)
280   {
281     try {
282       InetAddress JavaDoc []addresses = InetAddress.getAllByName(address.toString());
283
284       if (addresses == null || addresses.length < 1) {
285         //XXX: socket.setError();
286
return false;
287       }
288
289       InetSocketAddress JavaDoc socketAddress =
290         new InetSocketAddress JavaDoc(addresses[0], port);
291
292       socket.connect(socketAddress);
293
294       return true;
295     } catch (IOException JavaDoc e) {
296       return false;
297     }
298   }
299
300   public static Value socket_get_status(Env env, BinaryStream stream)
301   {
302     return StreamModule.stream_get_meta_data(env, stream);
303   }
304
305   public static Value socket_read(Env env, @NotNull SocketReadWrite socket,
306                                   int length, @Optional int type)
307   {
308     TempBuffer tempBuffer = null;
309     TempCharBuffer tempCharBuffer = null;
310
311     try {
312       if (type == PHP_NORMAL_READ) {
313         return socket.readLine(length);
314       } else {
315         tempBuffer = TempBuffer.allocate();
316
317         if (length > tempBuffer.getCapacity())
318           length = tempBuffer.getCapacity();
319
320         byte []buffer = tempBuffer.getBuffer();
321
322         length = socket.read(buffer, 0, length);
323
324         if (length > 0) {
325           BinaryBuilderValue sb = new BinaryBuilderValue(buffer, 0, length);
326           return sb;
327         } else
328           return BooleanValue.FALSE;
329       }
330     } catch (IOException JavaDoc e) {
331       env.warning(e);
332
333       return BooleanValue.FALSE;
334     } finally {
335       if (tempCharBuffer != null)
336         TempCharBuffer.free(tempCharBuffer);
337
338       if (tempBuffer != null)
339         TempBuffer.free(tempBuffer);
340     }
341   }
342
343   public static boolean socket_set_timeout(Env env,
344                                            @NotNull Value stream,
345                                            int seconds,
346                                            @Optional("-1") int milliseconds)
347   {
348     return StreamModule.stream_set_timeout(env, stream, seconds, milliseconds);
349   }
350
351   public static Value socket_write(Env env, @NotNull SocketReadWrite socket,
352                                    @NotNull InputStream JavaDoc is,
353                                    @Optional("-1") int length)
354   {
355     if (is == null)
356       return BooleanValue.FALSE;
357     
358     int result = socket.write(is, length);
359
360     if (result < 0)
361       return BooleanValue.FALSE;
362     else
363       return LongValue.create(result);
364   }
365
366   /**
367    * Closes a socket.
368    *
369    * @param how 0 = read, 1 = write, 2 = both
370    */

371   public boolean socket_shutdown(Env env,
372                  @NotNull SocketReadWrite file,
373                  int how)
374   {
375     if (file == null)
376       return false;
377
378     switch (how) {
379     case 0:
380       file.closeRead();
381       return true;
382       
383     case 1:
384       file.closeWrite();
385       return true;
386       
387     case 2:
388       file.close();
389       return true;
390       
391     default:
392       return false;
393     }
394   }
395
396   static {
397     _constMap.put("AF_UNIX", LongValue.create(AF_UNIX));
398     _constMap.put("AF_INET", LongValue.create(AF_INET));
399     _constMap.put("AF_INET6", LongValue.create(AF_INET6));
400
401     _constMap.put("SOCK_STREAM", LongValue.create(SOCK_STREAM));
402     _constMap.put("SOCK_DGRAM", LongValue.create(SOCK_DGRAM));
403     _constMap.put("SOCK_RAW", LongValue.create(SOCK_RAW));
404     _constMap.put("SOCK_SEQPACKET", LongValue.create(SOCK_SEQPACKET));
405     _constMap.put("SOCK_RDM", LongValue.create(SOCK_RDM));
406
407     _constMap.put("MSG_OOB", LongValue.create(MSG_OOB));
408     _constMap.put("MSG_WAITALL", LongValue.create(MSG_WAITALL));
409     _constMap.put("MSG_PEEK", LongValue.create(MSG_PEEK));
410     _constMap.put("MSG_DONTROUTE", LongValue.create(MSG_DONTROUTE));
411
412     _constMap.put("SO_DEBUG", LongValue.create(SO_DEBUG));
413     _constMap.put("SO_REUSEADDR", LongValue.create(SO_REUSEADDR));
414     _constMap.put("SO_KEEPALIVE", LongValue.create(SO_KEEPALIVE));
415     _constMap.put("SO_DONTROUTE", LongValue.create(SO_DONTROUTE));
416     _constMap.put("SO_LINGER", LongValue.create(SO_LINGER));
417     _constMap.put("SO_BROADCAST", LongValue.create(SO_BROADCAST));
418     _constMap.put("SO_OOBINLINE", LongValue.create(SO_OOBINLINE));
419     _constMap.put("SO_SNDBUF", LongValue.create(SO_SNDBUF));
420     _constMap.put("SO_RCVBUF", LongValue.create(SO_RCVBUF));
421     _constMap.put("SO_SNDLOWAT", LongValue.create(SO_SNDLOWAT));
422     _constMap.put("SO_RCVLOWAT", LongValue.create(SO_RCVLOWAT));
423     _constMap.put("SO_SNDTIMEO", LongValue.create(SO_SNDTIMEO));
424     _constMap.put("SO_RCVTIMEO", LongValue.create(SO_RCVTIMEO));
425     _constMap.put("SO_TYPE", LongValue.create(SO_TYPE));
426     _constMap.put("SO_ERROR", LongValue.create(SO_ERROR));
427
428     _constMap.put("SOL_SOCKET", LongValue.create(SOL_SOCKET));
429
430     _constMap.put("SOMAXCONN", LongValue.create(SOMAXCONN));
431
432     _constMap.put("PHP_NORMAL_READ", LongValue.create(PHP_NORMAL_READ));
433     _constMap.put("PHP_BINARY_READ", LongValue.create(PHP_BINARY_READ));
434     
435     _constMap.put("SOCKET_EPERM", LongValue.create(SOCKET_EPERM));
436     _constMap.put("SOCKET_ENOENT", LongValue.create(SOCKET_ENOENT));
437     _constMap.put("SOCKET_EINTR", LongValue.create(SOCKET_EINTR));
438     _constMap.put("SOCKET_EIO", LongValue.create(SOCKET_EIO));
439     _constMap.put("SOCKET_ENXIO", LongValue.create(SOCKET_ENXIO));
440     _constMap.put("SOCKET_E2BIG", LongValue.create(SOCKET_E2BIG));
441     _constMap.put("SOCKET_EBADF", LongValue.create(SOCKET_EBADF));
442     _constMap.put("SOCKET_EAGAIN", LongValue.create(SOCKET_EAGAIN));
443     _constMap.put("SOCKET_ENOMEM", LongValue.create(SOCKET_ENOMEM));
444     _constMap.put("SOCKET_EACCES", LongValue.create(SOCKET_EACCES));
445     _constMap.put("SOCKET_EFAULT", LongValue.create(SOCKET_EFAULT));
446     _constMap.put("SOCKET_ENOTBLK", LongValue.create(SOCKET_ENOTBLK));
447     _constMap.put("SOCKET_EBUSY", LongValue.create(SOCKET_EBUSY));
448     _constMap.put("SOCKET_EEXIST", LongValue.create(SOCKET_EEXIST));
449     _constMap.put("SOCKET_EXDEV", LongValue.create(SOCKET_EXDEV));
450     _constMap.put("SOCKET_ENODEV", LongValue.create(SOCKET_ENODEV));
451     _constMap.put("SOCKET_ENOTDIR", LongValue.create(SOCKET_ENOTDIR));
452     _constMap.put("SOCKET_EISDIR", LongValue.create(SOCKET_EISDIR));
453     _constMap.put("SOCKET_EINVAL", LongValue.create(SOCKET_EINVAL));
454     _constMap.put("SOCKET_ENFILE", LongValue.create(SOCKET_ENFILE));
455     _constMap.put("SOCKET_EMFILE", LongValue.create(SOCKET_EMFILE));
456     _constMap.put("SOCKET_ENOTTY", LongValue.create(SOCKET_ENOTTY));
457     _constMap.put("SOCKET_ENOSPC", LongValue.create(SOCKET_ENOSPC));
458     _constMap.put("SOCKET_ESPIPE", LongValue.create(SOCKET_ESPIPE));
459     _constMap.put("SOCKET_EROFS", LongValue.create(SOCKET_EROFS));
460     _constMap.put("SOCKET_EMLINK", LongValue.create(SOCKET_EMLINK));
461     _constMap.put("SOCKET_EPIPE", LongValue.create(SOCKET_EPIPE));
462     _constMap.put("SOCKET_ENAMETOOLONG", LongValue.create(SOCKET_ENAMETOOLONG));
463     _constMap.put("SOCKET_ENOLCK", LongValue.create(SOCKET_ENOLCK));
464     _constMap.put("SOCKET_ENOSYS", LongValue.create(SOCKET_ENOSYS));
465     _constMap.put("SOCKET_ENOTEMPTY", LongValue.create(SOCKET_ENOTEMPTY));
466     _constMap.put("SOCKET_ELOOP", LongValue.create(SOCKET_ELOOP));
467     _constMap.put("SOCKET_EWOULDBLOCK", LongValue.create(SOCKET_EWOULDBLOCK));
468     _constMap.put("SOCKET_ENOMSG", LongValue.create(SOCKET_ENOMSG));
469     _constMap.put("SOCKET_EIDRM", LongValue.create(SOCKET_EIDRM));
470     _constMap.put("SOCKET_ECHRNG", LongValue.create(SOCKET_ECHRNG));
471     _constMap.put("SOCKET_EL2NSYNC", LongValue.create(SOCKET_EL2NSYNC));
472     _constMap.put("SOCKET_EL3HLT", LongValue.create(SOCKET_EL3HLT));
473     _constMap.put("SOCKET_EL3RST", LongValue.create(SOCKET_EL3RST));
474     _constMap.put("SOCKET_ELNRNG", LongValue.create(SOCKET_ELNRNG));
475     _constMap.put("SOCKET_EUNATCH", LongValue.create(SOCKET_EUNATCH));
476     _constMap.put("SOCKET_ENOCSI", LongValue.create(SOCKET_ENOCSI));
477     _constMap.put("SOCKET_EL2HLT", LongValue.create(SOCKET_EL2HLT));
478     _constMap.put("SOCKET_EBADE", LongValue.create(SOCKET_EBADE));
479     _constMap.put("SOCKET_EBADR", LongValue.create(SOCKET_EBADR));
480     _constMap.put("SOCKET_EXFULL", LongValue.create(SOCKET_EXFULL));
481     _constMap.put("SOCKET_ENOANO", LongValue.create(SOCKET_ENOANO));
482     _constMap.put("SOCKET_EBADRQC", LongValue.create(SOCKET_EBADRQC));
483     _constMap.put("SOCKET_EBADSLT", LongValue.create(SOCKET_EBADSLT));
484     _constMap.put("SOCKET_ENOSTR", LongValue.create(SOCKET_ENOSTR));
485     _constMap.put("SOCKET_ENODATA", LongValue.create(SOCKET_ENODATA));
486     _constMap.put("SOCKET_ETIME", LongValue.create(SOCKET_ETIME));
487     _constMap.put("SOCKET_ENOSR", LongValue.create(SOCKET_ENOSR));
488     _constMap.put("SOCKET_ENONET", LongValue.create(SOCKET_ENONET));
489     _constMap.put("SOCKET_EREMOTE", LongValue.create(SOCKET_EREMOTE));
490     _constMap.put("SOCKET_ENOLINK", LongValue.create(SOCKET_ENOLINK));
491     _constMap.put("SOCKET_EADV", LongValue.create(SOCKET_EADV));
492     _constMap.put("SOCKET_ESRMNT", LongValue.create(SOCKET_ESRMNT));
493     _constMap.put("SOCKET_ECOMM", LongValue.create(SOCKET_ECOMM));
494     _constMap.put("SOCKET_EPROTO", LongValue.create(SOCKET_EPROTO));
495     _constMap.put("SOCKET_EMULTIHOP", LongValue.create(SOCKET_EMULTIHOP));
496     _constMap.put("SOCKET_EBADMSG", LongValue.create(SOCKET_EBADMSG));
497     _constMap.put("SOCKET_ENOTUNIQ", LongValue.create(SOCKET_ENOTUNIQ));
498     _constMap.put("SOCKET_EBADFD", LongValue.create(SOCKET_EBADFD));
499     _constMap.put("SOCKET_EREMCHG", LongValue.create(SOCKET_EREMCHG));
500     _constMap.put("SOCKET_ERESTART", LongValue.create(SOCKET_ERESTART));
501     _constMap.put("SOCKET_ESTRPIPE", LongValue.create(SOCKET_ESTRPIPE));
502     _constMap.put("SOCKET_EUSERS", LongValue.create(SOCKET_EUSERS));
503     _constMap.put("SOCKET_ENOTSOCK", LongValue.create(SOCKET_ENOTSOCK));
504     _constMap.put("SOCKET_EDESTADDRREQ", LongValue.create(SOCKET_EDESTADDRREQ));
505     _constMap.put("SOCKET_EMSGSIZE", LongValue.create(SOCKET_EMSGSIZE));
506     _constMap.put("SOCKET_EPROTOTYPE", LongValue.create(SOCKET_EPROTOTYPE));
507     _constMap.put("SOCKET_ENOPROTOOPT", LongValue.create(SOCKET_ENOPROTOOPT));
508     _constMap.put("SOCKET_EPROTONOSUPPORT",
509         LongValue.create(SOCKET_EPROTONOSUPPORT));
510     _constMap.put("SOCKET_ESOCKTNOSUPPORT",
511         LongValue.create(SOCKET_ESOCKTNOSUPPORT));
512     _constMap.put("SOCKET_EOPNOTSUPP", LongValue.create(SOCKET_EOPNOTSUPP));
513     _constMap.put("SOCKET_EPFNOSUPPORT", LongValue.create(SOCKET_EPFNOSUPPORT));
514     _constMap.put("SOCKET_EAFNOSUPPORT", LongValue.create(SOCKET_EAFNOSUPPORT));
515     _constMap.put("SOCKET_EADDRINUSE", LongValue.create(SOCKET_EADDRINUSE));
516     _constMap.put("SOCKET_EADDRNOTAVAIL",
517         LongValue.create(SOCKET_EADDRNOTAVAIL));
518     _constMap.put("SOCKET_ENETDOWN", LongValue.create(SOCKET_ENETDOWN));
519     _constMap.put("SOCKET_ENETUNREACH", LongValue.create(SOCKET_ENETUNREACH));
520     _constMap.put("SOCKET_ENETRESET", LongValue.create(SOCKET_ENETRESET));
521     _constMap.put("SOCKET_ECONNABORTED", LongValue.create(SOCKET_ECONNABORTED));
522     _constMap.put("SOCKET_ECONNRESET", LongValue.create(SOCKET_ECONNRESET));
523     _constMap.put("SOCKET_ENOBUFS", LongValue.create(SOCKET_ENOBUFS));
524     _constMap.put("SOCKET_EISCONN", LongValue.create(SOCKET_EISCONN));
525     _constMap.put("SOCKET_ENOTCONN", LongValue.create(SOCKET_ENOTCONN));
526     _constMap.put("SOCKET_ESHUTDOWN", LongValue.create(SOCKET_ESHUTDOWN));
527     _constMap.put("SOCKET_ETOOMANYREFS", LongValue.create(SOCKET_ETOOMANYREFS));
528     _constMap.put("SOCKET_ETIMEDOUT", LongValue.create(SOCKET_ETIMEDOUT));
529     _constMap.put("SOCKET_ECONNREFUSED", LongValue.create(SOCKET_ECONNREFUSED));
530     _constMap.put("SOCKET_EHOSTDOWN", LongValue.create(SOCKET_EHOSTDOWN));
531     _constMap.put("SOCKET_EHOSTUNREACH", LongValue.create(SOCKET_EHOSTUNREACH));
532     _constMap.put("SOCKET_EALREADY", LongValue.create(SOCKET_EALREADY));
533     _constMap.put("SOCKET_EINPROGRESS", LongValue.create(SOCKET_EINPROGRESS));
534     _constMap.put("SOCKET_EISNAM", LongValue.create(SOCKET_EISNAM));
535     _constMap.put("SOCKET_EREMOTEIO", LongValue.create(SOCKET_EREMOTEIO));
536     _constMap.put("SOCKET_EDQUOT", LongValue.create(SOCKET_EDQUOT));
537     _constMap.put("SOCKET_ENOMEDIUM", LongValue.create(SOCKET_ENOMEDIUM));
538     _constMap.put("SOCKET_EMEDIUMTYPE", LongValue.create(SOCKET_EMEDIUMTYPE));
539
540     _constMap.put("SOL_TCP", LongValue.create(SOL_TCP));
541     _constMap.put("SOL_UDP", LongValue.create(SOL_UDP));
542   }
543 }
544
545
Popular Tags