1 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 ; 47 import java.io.InputStream ; 48 import java.net.InetAddress ; 49 import java.net.InetSocketAddress ; 50 import java.net.Socket ; 51 import java.util.HashMap ; 52 import java.util.Map ; 53 import java.util.logging.Logger ; 54 55 58 public class SocketModule extends AbstractQuercusModule { 59 private static final L10N L = new L10N(SocketModule.class); 60 private static final Logger 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 <String ,Value> _constMap 199 = new HashMap <String ,Value>(); 200 201 204 public Map <String ,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 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 (), 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 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 []addresses = InetAddress.getAllByName(address.toString()); 256 257 if (addresses == null || addresses.length < 1) { 258 return false; 260 } 261 262 InetSocketAddress socketAddress = 263 new InetSocketAddress (addresses[0], port); 264 265 socket.bind(socketAddress); 266 267 return true; 268 } catch (IOException 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 []addresses = InetAddress.getAllByName(address.toString()); 283 284 if (addresses == null || addresses.length < 1) { 285 return false; 287 } 288 289 InetSocketAddress socketAddress = 290 new InetSocketAddress (addresses[0], port); 291 292 socket.connect(socketAddress); 293 294 return true; 295 } catch (IOException 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 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 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 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 |