BOOL sstp_sendonly(const OEMCHAR *msg) { WSAData lwsadata; SOCKET lSocket; sockaddr_in s_in; char msgstr[0x1000]; BOOL ret = FAILURE; if ((np2oscfg.sstp) && (check_sakura()) && (!WSAStartup(0x0101, &lwsadata))) { if ((lSocket = socket(AF_INET, SOCK_STREAM, 0)) != INVALID_SOCKET) { s_in.sin_family = AF_INET; *(DWORD *)(&s_in.sin_addr) = 0x0100007f; s_in.sin_port = htons(np2oscfg.sstpport); if (connect(lSocket, (sockaddr *)&s_in, sizeof(s_in)) != SOCKET_ERROR) { #if defined(OSLANG_UTF8) || defined(OSLANG_UCS2) OEMCHAR oem[0x1000]; OEMSPRINTF(oem, sendermes, msg); oemtext_oemtosjis(msgstr, NELEMENTS(msgstr), oem, -1); #else OEMSPRINTF(msgstr, sendermes, msg); #endif send(lSocket, msgstr, (int)strlen(msgstr), 0); ret = SUCCESS; } closesocket(lSocket); } WSACleanup(); } return(ret); }
BOOL sstp_send(const OEMCHAR *msg, void (*proc)(HWND hWnd, char *msg)) { sockaddr_in s_in; if (hSocket != INVALID_SOCKET) { sstp_stat = SSTP_BUSY; return(FAILURE); } if ((!np2oscfg.sstp) || (scrnmng_isfullscreen()) || (!check_sakura())) { sstp_stat = SSTP_NOSEND; return(FAILURE); } if ((!sstphwnd) || (WSAStartup(0x0101, &wsadata))) { sstp_stat = SSTP_ERROR; return(FAILURE); } #if defined(OSLANG_UTF8) || defined(OSLANG_UCS2) OEMCHAR oem[0x1000]; OEMSPRINTF(oem, sendermes, msg); oemtext_oemtosjis(sstpstr, NELEMENTS(sstpstr), oem, -1); #else OEMSPRINTF(sstpstr, sendermes, msg); #endif sstprcv[0] = 0; sstppos = 0; hSocket = socket(AF_INET, SOCK_STREAM, 0); if (hSocket == INVALID_SOCKET) { goto sstp_senderror; } if (WSAAsyncSelect(hSocket, sstphwnd, WM_SSTP, FD_CONNECT + FD_READ + FD_WRITE + FD_CLOSE)) { goto sstp_senderror; } s_in.sin_family = AF_INET; *(DWORD *)(&s_in.sin_addr) = 0x0100007f; s_in.sin_port = htons(np2oscfg.sstpport); if (connect(hSocket, (sockaddr *)&s_in, sizeof(s_in)) == SOCKET_ERROR) { if (WSAGetLastError() != WSAEWOULDBLOCK) { goto sstp_senderror; } } sstp_stat = SSTP_SENDING; sstpproc = proc; return(SUCCESS); sstp_senderror:; if (hSocket != INVALID_SOCKET) { closesocket(hSocket); hSocket = INVALID_SOCKET; } WSACleanup(); sstp_stat = SSTP_ERROR; return(FAILURE); }
static void setoutstr(const OEMCHAR *str) { #if defined(OSLANG_UCS2) oemtext_oemtosjis(np2sysp.outstr, sizeof(np2sysp.outstr), str, -1); #else milstr_ncpy(np2sysp.outstr, str, sizeof(np2sysp.outstr)); #endif np2sysp.outpos = 0; }
void newdisk_fdd(const OEMCHAR *fname, REG8 type, const OEMCHAR *label) { _D88HEAD d88head; FILEH fh; ZeroMemory(&d88head, sizeof(d88head)); STOREINTELDWORD(d88head.fd_size, sizeof(d88head)); #if defined(OSLANG_UTF8) || defined(OSLANG_UCS2) oemtext_oemtosjis((char *)d88head.fd_name, NELEMENTS(d88head.fd_name), label, (UINT)-1); #else milstr_ncpy((char *)d88head.fd_name, label, NELEMENTS(d88head.fd_name)); #endif d88head.fd_type = type; fh = file_create(fname); if (fh != FILEH_INVALID) { file_write(fh, &d88head, sizeof(d88head)); file_close(fh); } }