sint32_t NetUDPPrintf(pal_socket_t sock, char *out, sint32_t ol, char *Format, ...) { va_list argp; char Data[1024]; va_start(argp, Format); pal_vsnprintf(Data, sizeof Data, Format, argp); va_end(argp); return NetUDPReadWrite(sock, Data, pal_strlen(Data), out, ol); }
sint32_t ask(char *question, ...) { va_list ap; char *buf; sint32_t c; sint32_t ret; #ifdef WIN32 enable_console_input(); #endif if ( (buf = malloc(sizeof(char) * 1024)) == NULL ) { Display(LOG_LEVEL_1, ELError, "ask", STR_GEN_MALLOC_ERROR); return 0; } va_start(ap, question); pal_vsnprintf(buf, 1024, question, ap); va_end(ap); ask_again: printf("%s? (Y/N) ", buf); c = fgetc(stdin); /* empty stdin */ fflush(stdin); c = tolower(c); if ((char)c == 'y') ret = 1; else if ((char)c == 'n') ret = 0; else goto ask_again; free(buf); #ifdef WIN32 disable_console_input(); #endif return ret; }
ssize_t NetTCP6Printf( pal_socket_t sock, char *out, size_t pl, char *Format, ... ) { va_list argp; size_t Length; char Data[1024]; va_start(argp, Format); pal_vsnprintf(Data, sizeof Data, Format, argp); va_end(argp); Length = pal_strlen(Data); if( NetTCP6Write(sock, Data, pal_strlen(Data)) != Length ) { return 0; } return NetTCP6Read(sock, out, pl); }