/[winpt]/trunk/Src/wptKeyCache.cpp
ViewVC logotype

Diff of /trunk/Src/wptKeyCache.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 150 by twoaday, Wed Jan 18 11:52:45 2006 UTC revision 164 by twoaday, Fri Jan 20 09:19:15 2006 UTC
# Line 121  parse_attr_list (FILE *fp, const BYTE *d Line 121  parse_attr_list (FILE *fp, const BYTE *d
121  }  }
122    
123    
124    /* Always use the $users temp folder. */
125    static FILE*
126    w32_tmpfile (char *tmp, DWORD tmplen)
127    {
128        char id[16];
129    
130        if (!GetTempPath (tmplen-17, tmp))
131            return NULL;
132        if (tmp[strlen (tmp)-1] != '\\')
133            strcat (tmp, "\\");
134        _snprintf (id, sizeof (id)-1, "%lu", GetTickCount ());
135        strcat (tmp, id);
136        return fopen (tmp, "w+b");
137    }
138    
139    
140  static int  static int
141  parse_attr_data (const char *keyid, attr_list_t *list)  parse_attr_data (const char *keyid, attr_list_t *list)
142  {  {
143      gpgme_error_t err;      gpgme_error_t err;
144      FILE *tmp;      FILE *tmp;
145      char *status;      char *status, tmpnam[MAX_PATH+1];
146      BYTE *data;      BYTE *data;
147      DWORD ndata;      DWORD ndata;
148    
# Line 134  parse_attr_data (const char *keyid, attr Line 150  parse_attr_data (const char *keyid, attr
150      if (err)      if (err)
151          return err;          return err;
152    
153      if (ndata > 0) {      if (ndata > 0 && (tmp = w32_tmpfile (tmpnam, MAX_PATH)) != NULL) {
         tmp = tmpfile ();  
154          fwrite (status, 1, strlen (status), tmp);          fwrite (status, 1, strlen (status), tmp);
155          fflush (tmp);          fflush (tmp);
156          rewind (tmp);          rewind (tmp);
157    
158          ndata = parse_attr_list (tmp, data, ndata, list);          ndata = parse_attr_list (tmp, data, ndata, list);
159          fclose (tmp);          fclose (tmp);
160            DeleteFile (tmpnam);
161      }      }
162      else      else
163          *list = NULL;          *list = NULL;

Legend:
Removed from v.150  
changed lines
  Added in v.164

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26