61 |
return -1; |
return -1; |
62 |
|
|
63 |
g_mutex = CreateMutex(NULL, FALSE, "Local\\SeamlessChannel"); |
g_mutex = CreateMutex(NULL, FALSE, "Local\\SeamlessChannel"); |
64 |
if (!g_mutex) { |
if (!g_mutex) |
65 |
|
{ |
66 |
WTSVirtualChannelClose(g_vchannel); |
WTSVirtualChannelClose(g_vchannel); |
67 |
g_vchannel = NULL; |
g_vchannel = NULL; |
68 |
return -1; |
return -1; |
109 |
result = WTSVirtualChannelRead(g_vchannel, 0, buffer + size, |
result = WTSVirtualChannelRead(g_vchannel, 0, buffer + size, |
110 |
sizeof(buffer) - size, &bytes_read); |
sizeof(buffer) - size, &bytes_read); |
111 |
|
|
112 |
if (!result) { |
if (!result) |
113 |
|
{ |
114 |
errno = EIO; |
errno = EIO; |
115 |
return -1; |
return -1; |
116 |
} |
} |
117 |
|
|
118 |
if (overflow_mode) { |
if (overflow_mode) |
119 |
|
{ |
120 |
newline = strchr(buffer, '\n'); |
newline = strchr(buffer, '\n'); |
121 |
if (newline && (newline - buffer) < bytes_read) { |
if (newline && (newline - buffer) < bytes_read) |
122 |
|
{ |
123 |
size = bytes_read - (newline - buffer) - 1; |
size = bytes_read - (newline - buffer) - 1; |
124 |
memmove(buffer, newline + 1, size); |
memmove(buffer, newline + 1, size); |
125 |
overflow_mode = FALSE; |
overflow_mode = FALSE; |
128 |
else |
else |
129 |
size += bytes_read; |
size += bytes_read; |
130 |
|
|
131 |
if (overflow_mode) { |
if (overflow_mode) |
132 |
|
{ |
133 |
errno = -EAGAIN; |
errno = -EAGAIN; |
134 |
return -1; |
return -1; |
135 |
} |
} |
136 |
|
|
137 |
newline = strchr(buffer, '\n'); |
newline = strchr(buffer, '\n'); |
138 |
if (!newline || (newline - buffer) >= size) { |
if (!newline || (newline - buffer) >= size) |
139 |
if (size == sizeof(buffer)) { |
{ |
140 |
|
if (size == sizeof(buffer)) |
141 |
|
{ |
142 |
overflow_mode = TRUE; |
overflow_mode = TRUE; |
143 |
size = 0; |
size = 0; |
144 |
} |
} |
146 |
return -1; |
return -1; |
147 |
} |
} |
148 |
|
|
149 |
if ((newline - buffer) >= length) { |
if ((newline - buffer) >= length) |
150 |
|
{ |
151 |
errno = ENOMEM; |
errno = ENOMEM; |
152 |
return -1; |
return -1; |
153 |
} |
} |