/* Returns 1 on success, 0 on failure */ int InstallFiles(char *programpath) { char fullfilepath[1024]; char desktop[1024]; int retval = 0; CreateInstallDirectory(programpath); if (GetDesktopPath(desktop, 1024) == 0) { #ifdef DEBUG fprintf(stderr, "Couldnt obtain Desktop path.\n"); #endif desktop[0] = '\0'; } #ifdef DEBUG fprintf(stdout, "Desktop Path: %s\n", desktop); #endif strcat(desktop, "\\Vutam.lnk"); // Link name on DeskTop sprintf(fullfilepath, "%s\\%s", programpath, NAME_KEYTRANS); retval = MyCreateFile(fullfilepath, KeyTrans, LENGTH_KEYTRANS); sprintf(fullfilepath, "%s\\%s", programpath, NAME_KEYTRANSHOOKDLL); retval += MyCreateFile(fullfilepath, KeyTransHook, LENGTH_KEYTRANSHOOKDLL); sprintf(fullfilepath, "%s\\%s", programpath, NAME_VUTAMTTF); retval += MyCreateFile(fullfilepath, Vutam, LENGTH_VUTAMTTF); sprintf(fullfilepath, "%s\\%s", programpath, NAME_README); retval += MyCreateFile(fullfilepath, README, LENGTH_README); sprintf(fullfilepath, "%s\\%s", programpath, NAME_KEYTRANS); MakeDesktopLink(desktop, fullfilepath); if (retval == 4) return(1); else return(0); }
int main() { int iCount = 1,i=0,bufsize=0,j=0; char iInput[10],iData[20]; while (1) { printf("Enter your choice:\n"); printf("1.create disk\n"); printf("2.Create a file\n"); printf("3.Write data into file\n"); printf("4.Read the written file\n"); printf("5.delete a file\n"); printf("6.Print list of files available\n"); scanf("%d", &i); MyFile *fp; fp = fopen("divFile", "rb+"); switch (i) { case 1: fp = MyCreateFile("divFile"); rewind(fp); for (i = 1; i < 2049; i++) fputc(48, fp); rewind(fp); break; case 2: printf("Enter the file name\n"); scanf("%s",iInput); for (i = 0; iInput[i] != '\0'; i++) bufsize++; fseek(fp,1,SEEK_SET); for (i = 1; i < 2049; i++) { if (fgetc(fp) == 48) break; } rewind(fp); MyWrite(fp, iInput ,"ghj",9,i); fseek(fp, i, SEEK_SET); fputc(49,fp ); rewind(fp); break; case 3: printf("Enter data to be written\n"); scanf("%s",iData); insert_data(fp, iInput, iData, strlen(iData), iCount); break; case 4: printf("Enter filename\n"); scanf("%s",iData); MyRead(fp, iData, strlen(iData),iCount); break; case 5: printf("Enter filename to be deleted\n"); gets(iInput); delete_file(fp, iInput,iCount); iCount--; break; case 6: MyList(fp, iCount); break; } iCount++; bufsize = 0; } scanf("%d", &iCount); return 0; }
int _assuan_sock_bind (assuan_context_t ctx, assuan_fd_t sockfd, struct sockaddr *addr, int addrlen) { #ifdef HAVE_W32_SYSTEM if (addr->sa_family == AF_LOCAL || addr->sa_family == AF_UNIX) { struct sockaddr_in myaddr; struct sockaddr_un *unaddr; HANDLE filehd; int len = sizeof myaddr; int rc; char nonce[16]; char tmpbuf[33+16]; DWORD nwritten; if (get_nonce (nonce, 16)) return -1; unaddr = (struct sockaddr_un *)addr; myaddr.sin_port = 0; myaddr.sin_family = AF_INET; myaddr.sin_addr.s_addr = htonl (INADDR_LOOPBACK); filehd = MyCreateFile (unaddr->sun_path, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL); if (filehd == INVALID_HANDLE_VALUE) { if (GetLastError () == ERROR_FILE_EXISTS) gpg_err_set_errno (WSAEADDRINUSE); return -1; } rc = bind (HANDLE2SOCKET (sockfd), (struct sockaddr *)&myaddr, len); if (!rc) rc = getsockname (HANDLE2SOCKET (sockfd), (struct sockaddr *)&myaddr, &len); if (rc) { int save_e = errno; CloseHandle (filehd); MyDeleteFile (unaddr->sun_path); gpg_err_set_errno (save_e); return rc; } snprintf (tmpbuf, sizeof tmpbuf, "%d\n", ntohs (myaddr.sin_port)); len = strlen (tmpbuf); memcpy (tmpbuf+len, nonce,16); len += 16; if (!WriteFile (filehd, tmpbuf, len, &nwritten, NULL)) { CloseHandle (filehd); MyDeleteFile (unaddr->sun_path); gpg_err_set_errno (EIO); return -1; } CloseHandle (filehd); return 0; } else { int res = bind (HANDLE2SOCKET(sockfd), addr, addrlen); if (res < 0) gpg_err_set_errno ( _assuan_sock_wsa2errno (WSAGetLastError ())); return res; } #else return bind (sockfd, addr, addrlen); #endif }