1010 char* copy = NEW_RESOURCE_ARRAY(char, buffer_pos+1);
1011 strncpy(copy, buffer, buffer_pos);
1012 copy[buffer_pos] = 0; // terminating null
1013 return copy;
1014 }
1015
1016 bufferedStream::~bufferedStream() {
1017 if (!buffer_fixed) {
1018 FREE_C_HEAP_ARRAY(char, buffer);
1019 }
1020 }
1021
1022 #ifndef PRODUCT
1023
1024 #if defined(SOLARIS) || defined(LINUX) || defined(AIX) || defined(_ALLBSD_SOURCE)
1025 #include <sys/types.h>
1026 #include <sys/socket.h>
1027 #include <netinet/in.h>
1028 #include <arpa/inet.h>
1029 #endif
1030
1031 // Network access
1032 networkStream::networkStream() : bufferedStream(1024*10, 1024*10) {
1033
1034 _socket = -1;
1035
1036 int result = os::socket(AF_INET, SOCK_STREAM, 0);
1037 if (result <= 0) {
1038 assert(false, "Socket could not be created!");
1039 } else {
1040 _socket = result;
1041 }
1042 }
1043
1044 int networkStream::read(char *buf, size_t len) {
1045 return os::recv(_socket, buf, (int)len, 0);
1046 }
1047
1048 void networkStream::flush() {
|
1010 char* copy = NEW_RESOURCE_ARRAY(char, buffer_pos+1);
1011 strncpy(copy, buffer, buffer_pos);
1012 copy[buffer_pos] = 0; // terminating null
1013 return copy;
1014 }
1015
1016 bufferedStream::~bufferedStream() {
1017 if (!buffer_fixed) {
1018 FREE_C_HEAP_ARRAY(char, buffer);
1019 }
1020 }
1021
1022 #ifndef PRODUCT
1023
1024 #if defined(SOLARIS) || defined(LINUX) || defined(AIX) || defined(_ALLBSD_SOURCE)
1025 #include <sys/types.h>
1026 #include <sys/socket.h>
1027 #include <netinet/in.h>
1028 #include <arpa/inet.h>
1029 #endif
1030 #if defined(_WINDOWS)
1031 #include <winsock2.h>
1032 #endif
1033
1034 // Network access
1035 networkStream::networkStream() : bufferedStream(1024*10, 1024*10) {
1036
1037 _socket = -1;
1038
1039 int result = os::socket(AF_INET, SOCK_STREAM, 0);
1040 if (result <= 0) {
1041 assert(false, "Socket could not be created!");
1042 } else {
1043 _socket = result;
1044 }
1045 }
1046
1047 int networkStream::read(char *buf, size_t len) {
1048 return os::recv(_socket, buf, (int)len, 0);
1049 }
1050
1051 void networkStream::flush() {
|