5 #include "prototypes.h"
9 int checkRecv(SOCKET s
);
11 int checkRecv(SOCKET s
)
15 struct timeval timeout
;
22 testVal
= select(0, &sSet
, NULL
, NULL
, &timeout
);
24 if (testVal
== SOCKET_ERROR
)
25 fprintf(stderr
, "Socket Error");
30 void blkfree(char **av0
)
32 register char **av
= av0
;
38 char **glob(register char *v
)
48 int herror(char *string
)
54 int gettimeofday(struct timeval
*timenow
,
55 struct timezone
*zone
)
62 timenow
->tv_sec
= t
/ CLK_TCK
;
67 int fgetcSocket(int s
)
74 c
= recv(s
, buffer
, 1, 0);
77 printf("%c", buffer
[0]);
80 if (c
== INVALID_SOCKET
)
91 int fgetcSocket(int s
)
95 static char buffer
[4096];
100 total
= recv(s
, buffer
, sizeof(buffer
), 0);
102 if (total
== SOCKET_ERROR
)
111 return buffer
[index
++];
116 const char *fprintfSocket(int s
, const char *format
, ...)
121 va_start(argptr
, format
);
122 vsprintf(buffer
, format
, argptr
);
125 send(s
, buffer
, strlen(buffer
), 0);
130 const char *fputsSocket(const char *format
, int s
)
132 send(s
, format
, strlen(format
), 0);
137 int fputcSocket(int s
, char putChar
)
144 if(SOCKET_ERROR
==send(s
, buffer
, 1, 0)) {
145 int iret
=WSAGetLastError ();
146 fprintf(stdout
,"fputcSocket: %d\n",iret
);
153 int fputSocket(int s
, char *buffer
, int len
)
157 if(SOCKET_ERROR
==(iret
=send(s
, buffer
, len
, 0)))
159 iret
=WSAGetLastError ();
160 fprintf(stdout
,"fputcSocket: %d\n",iret
);
170 char *fgetsSocket(int s
, char *string
)
172 char buffer
[2] = {0};
175 for (i
= 0, count
= 1; count
!= 0 && buffer
[0] != '\n'; i
++)
179 count
= recv(s
, buffer
, 1, 0);
181 if (count
== SOCKET_ERROR
)
183 printf("Error in fgetssocket");
189 string
[i
] = buffer
[0];
191 if (i
== MAX_ASCII
- 3)
205 string
[i
+ 1] = '\0'; // This is risky
215 printf("%s", string
);
222 char *getpass(const char *prompt
)
224 static char string
[64];
226 printf("%s", prompt
);
233 char *getpass (const char * prompt
)
235 static char input
[256];
240 in
= GetStdHandle (STD_INPUT_HANDLE
);
241 err
= GetStdHandle (STD_ERROR_HANDLE
);
243 if (in
== INVALID_HANDLE_VALUE
|| err
== INVALID_HANDLE_VALUE
)
246 if (WriteFile (err
, prompt
, strlen (prompt
), &count
, NULL
))
248 int istty
= (GetFileType (in
) == FILE_TYPE_CHAR
);
254 if (GetConsoleMode (in
, &old_flags
))
255 SetConsoleMode (in
, ENABLE_LINE_INPUT
| ENABLE_PROCESSED_INPUT
);
259 /* Need to read line one byte at time to avoid blocking, if not a
260 tty, so always do it this way. */
267 rc
= ReadFile (in
, &one_char
, 1, &dummy
, NULL
);
270 if (one_char
== '\r')
272 /* CR is always followed by LF if reading from tty. */
278 if (one_char
== '\n')
280 /* Silently truncate password string if overly long. */
281 if (count
< sizeof (input
) - 1)
282 input
[count
++] = one_char
;
286 WriteFile (err
, "\r\n", 2, &count
, NULL
);
288 SetConsoleMode (in
, old_flags
);
297 // Stubbed out here. Should be changed in Source code...
298 int access(const char *filename
, int accessmethod
)
305 #define EPOCHFILETIME (116444736000000000i64)
307 #define EPOCHFILETIME (116444736000000000LL)
310 int gettimeofday(struct timeval
*tv
, struct timezone
*tz
)
319 GetSystemTimeAsFileTime(&ft
);
320 li
.LowPart
= ft
.dwLowDateTime
;
321 li
.HighPart
= ft
.dwHighDateTime
;
322 t
= li
.QuadPart
; /* In 100-nanosecond intervals */
323 t
-= EPOCHFILETIME
; /* Offset to the Epoch time */
324 t
/= 10; /* In microseconds */
325 tv
->tv_sec
= (long)(t
/ 1000000);
326 tv
->tv_usec
= (long)(t
% 1000000);
336 tz
->tz_minuteswest
= _timezone
/ 60;
337 tz
->tz_dsttime
= _daylight
;